diff --git a/.circleci/config.yml b/.circleci/config.yml
index 93dd73fc8..87a9334c7 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -395,6 +395,10 @@ jobs:
working_directory: ~/web3-onboard-monorepo/packages/cede-store
steps:
- node-build-steps
+ build-arcana-auth:
+ docker:
+ - image: cimg/node:16.13.1
+ working_directory: ~/web3-onboard-monorepo/packages/arcana-auth
build-blocto:
docker:
- image: cimg/node:16.13.1
@@ -637,6 +641,10 @@ jobs:
working_directory: ~/web3-onboard-monorepo/packages/cede-store
steps:
- node-staging-build-steps
+ build-staging-arcana-auth:
+ docker:
+ - image: cimg/node:16.13.1
+ working_directory: ~/web3-onboard-monorepo/packages/arcana-auth
build-staging-blocto:
docker:
- image: cimg/node:16.13.1
@@ -881,6 +889,12 @@ workflows:
<<: *deploy_production_filters
- build-staging-cede-store:
<<: *deploy_staging_filters
+ arcana-auth:
+ jobs:
+ - build-arcana-auth:
+ <<: *deploy_production_filters
+ - build-staging-arcana-auth:
+ <<: *deploy_staging_filters
blocto:
jobs:
- build-blocto:
diff --git a/README.md b/README.md
index 677acdc62..5f4ed6410 100644
--- a/README.md
+++ b/README.md
@@ -87,6 +87,7 @@ For full documentation, check out the README.md for each package or the [docs pa
**SDK Wallets**
+- [Arcana](packages/arcana-auth/README.md)
- [Coinbase](packages/coinbase/README.md)
- [Trust](packages/trust/README.md)
- [WalletConnect](packages/walletconnect/README.md)
diff --git a/docs/package.json b/docs/package.json
index 724579674..36f861043 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -49,6 +49,7 @@
},
"type": "module",
"dependencies": {
+ "@web3-onboard/arcana-auth": "^2.0.0-alpha.1",
"@web3-onboard/blocto": "^2.0.0",
"@web3-onboard/cede-store": "^2.1.0-alpha.1",
"@web3-onboard/coinbase": "^2.2.5-alpha.1",
diff --git a/docs/src/lib/services/onboard.js b/docs/src/lib/services/onboard.js
index 811c45ce3..fd34e272f 100644
--- a/docs/src/lib/services/onboard.js
+++ b/docs/src/lib/services/onboard.js
@@ -53,12 +53,16 @@ const intiOnboard = async (theme) => {
const { default: xdefiModule } = await import('@web3-onboard/xdefi')
const { default: cedeModule } = await import('@web3-onboard/cede-store')
const { default: frameModule } = await import('@web3-onboard/frame')
+ const { default: arcanaModule } = await import('@web3-onboard/arcana-auth')
const { default: bloctoModule } = await import('@web3-onboard/blocto')
const { default: venlyModule } = await import('@web3-onboard/venly')
const INFURA_ID = '8b60d52405694345a99bcb82e722e0af'
const injected = injectedModule()
const infinityWallet = infinityWalletModule()
+ const arcanaWallet = arcanaModule({
+ clientID: 'xar_test_c9c3bc702eb13255c58dab0e74cfa859711c13cb'
+ })
const coinbase = coinbaseModule()
const dcent = dcentModule()
const walletConnect = walletConnectModule({
@@ -119,6 +123,7 @@ const intiOnboard = async (theme) => {
wallets: [
injected,
walletConnect,
+ arcanaWallet,
coinbase,
ledger,
trezor,
diff --git a/docs/src/routes/docs/[...1]overview/[...1]introduction/+page.md b/docs/src/routes/docs/[...1]overview/[...1]introduction/+page.md
index 499d75d21..7de759328 100644
--- a/docs/src/routes/docs/[...1]overview/[...1]introduction/+page.md
+++ b/docs/src/routes/docs/[...1]overview/[...1]introduction/+page.md
@@ -148,24 +148,25 @@ We recommend you add the [Core Repo](../../modules/core.md#install) and consider
**SDK Wallets**
+- [Arcana Auth](../../wallets/arcana.md#install)
+- [Blocto](../../docs/wallets/blocto.md#install)
- [Coinbase](../../wallets/coinbase.md#install)
-- [WalletConnect](../../wallets/walletconnect.md#install)
+- [Fortmatic](../../wallets/fortmatic.md#install)
+- [Frame](../../wallets/frame.md#install)
- [Gnosis](../../wallets/gnosis.md#install)
- [Magic](../../wallets/magic.md#login-options)
-- [Fortmatic](../../wallets/fortmatic.md#install)
- [MEW](../../wallets/mewwallet.md#install)
- [Portis](../../wallets/portis.md#install)
- [Web3Auth](../../wallets/web3auth.md#install)
-- [Frame](../../wallets/frame.md#install)
-- [Blocto](../../docs/wallets/blocto.md#install)
+- [WalletConnect](../../wallets/walletconnect.md#install)
**Hardware Wallets**
-- [Ledger](../../wallets/ledger.md#install)
-- [Trezor](../../wallets/trezor.md#install)
+- [D'cent](../../wallets/dcent.md#install)
- [Keystone](../../wallets/keystone.md#install)
- [KeepKey](../../wallets/keepkey.md#install)
-- [D'cent](../../wallets/dcent.md#install)
+- [Ledger](../../wallets/ledger.md#install)
+- [Trezor](../../wallets/trezor.md#install)
**Frameworks**
diff --git a/docs/src/routes/docs/[...3]modules/[...1]core/+page.md b/docs/src/routes/docs/[...3]modules/[...1]core/+page.md
index d1ed41801..ae6556ca9 100644
--- a/docs/src/routes/docs/[...3]modules/[...1]core/+page.md
+++ b/docs/src/routes/docs/[...3]modules/[...1]core/+page.md
@@ -64,14 +64,14 @@ If you would like to support all wallets, then you can install all of the wallet
```sh copy
-yarn add @web3-onboard/coinbase @web3-onboard/fortmatic @web3-onboard/gnosis @web3-onboard/injected-wallets @web3-onboard/keepkey @web3-onboard/keystone @web3-onboard/ledger @web3-onboard/magic @web3-onboard/portis @web3-onboard/react @web3-onboard/torus @web3-onboard/trezor @web3-onboard/walletconnect @web3-onboard/web3auth @web3-onboard/dcent @web3-onboard/sequence @web3-onboard/enkrypt @web3-onboard/mew-wallet @web3-onboard/uauth @web3-onboard/zeal @web3-onboard/frontier
+yarn add @web3-onboard/coinbase @web3-onboard/fortmatic @web3-onboard/gnosis @web3-onboard/injected-wallets @web3-onboard/arcana-auth @web3-onboard/keepkey @web3-onboard/keystone @web3-onboard/ledger @web3-onboard/magic @web3-onboard/portis @web3-onboard/react @web3-onboard/torus @web3-onboard/trezor @web3-onboard/walletconnect @web3-onboard/web3auth @web3-onboard/dcent @web3-onboard/sequence @web3-onboard/enkrypt @web3-onboard/mew-wallet @web3-onboard/uauth @web3-onboard/zeal @web3-onboard/frontier
```
```sh copy
-npm install @web3-onboard/coinbase @web3-onboard/fortmatic @web3-onboard/gnosis @web3-onboard/injected-wallets @web3-onboard/keepkey @web3-onboard/keystone @web3-onboard/ledger @web3-onboard/magic @web3-onboard/portis @web3-onboard/react @web3-onboard/torus @web3-onboard/trezor @web3-onboard/walletconnect @web3-onboard/web3auth @web3-onboard/dcent @web3-onboard/sequence @web3-onboard/enkrypt @web3-onboard/mew-wallet @web3-onboard/uauth @web3-onboard/zeal @web3-onboard/frontier
+npm install @web3-onboard/coinbase @web3-onboard/fortmatic @web3-onboard/gnosis @web3-onboard/injected-wallets @web3-onboard/arcana-auth @web3-onboard/keepkey @web3-onboard/keystone @web3-onboard/ledger @web3-onboard/magic @web3-onboard/portis @web3-onboard/react @web3-onboard/torus @web3-onboard/trezor @web3-onboard/walletconnect @web3-onboard/web3auth @web3-onboard/dcent @web3-onboard/sequence @web3-onboard/enkrypt @web3-onboard/mew-wallet @web3-onboard/uauth @web3-onboard/zeal @web3-onboard/frontier
```
diff --git a/docs/src/routes/docs/[...4]wallets/[...9]infinitywallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...10]infinitywallet/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...9]infinitywallet/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...10]infinitywallet/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...10]injected/+page.md b/docs/src/routes/docs/[...4]wallets/[...11]injected/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...10]injected/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...11]injected/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...11]keepkey/+page.md b/docs/src/routes/docs/[...4]wallets/[...12]keepkey/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...11]keepkey/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...12]keepkey/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...12]keystone/+page.md b/docs/src/routes/docs/[...4]wallets/[...13]keystone/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...12]keystone/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...13]keystone/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...13]ledger/+page.md b/docs/src/routes/docs/[...4]wallets/[...14]ledger/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...13]ledger/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...14]ledger/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...14]magic/+page.md b/docs/src/routes/docs/[...4]wallets/[...15]magic/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...14]magic/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...15]magic/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...15]mew/+page.md b/docs/src/routes/docs/[...4]wallets/[...16]mew/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...15]mew/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...16]mew/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...16]mewwallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...17]mewwallet/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...16]mewwallet/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...17]mewwallet/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...17]phantom/+page.md b/docs/src/routes/docs/[...4]wallets/[...18]phantom/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...17]phantom/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...18]phantom/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...18]portis/+page.md b/docs/src/routes/docs/[...4]wallets/[...19]portis/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...18]portis/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...19]portis/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...1]arcana/+page.md b/docs/src/routes/docs/[...4]wallets/[...1]arcana/+page.md
new file mode 100644
index 000000000..d516948c3
--- /dev/null
+++ b/docs/src/routes/docs/[...4]wallets/[...1]arcana/+page.md
@@ -0,0 +1,59 @@
+---
+title: Arcana Auth
+---
+
+# {$frontmatter.title}
+
+:::admonition type=warning
+To ensure proper functionality of the embedded Arcana wallet in the Arcana Auth SDK, it may be necessary to disable certain other wallets that operate as browser extensions.
+:::
+
+:::admonition type=tip
+To enable the Arcana wallet in Web3 apps, developers must register and configure the authentication providers with the [Arcana Network](https://arcana.network) through the [Arcana Dashboard](https://dashboard.arcana.network) and obtain a unique client ID. Install and integrate the Auth SDK with the app using the registered client ID. Use the built-in plug-and-play login feature or plug in any custom UI to onboard users. Once the users authenticate, the Arcana wallet is accessible in the app's context to sign blockchain transactions and perform other Web3 wallet operations.
+
+For details, see [Quick Start Guide](https://docs.arcana.network/auth-quick-start.html).
+:::
+
+[Web3-Onboard](https://onboard.blocknative.com/) is an open-source, framework-agnostic JavaScript library to onboard users to web3 apps. This package can be used to integrate [Arcana Wallet](https://docs.arcana.network/concepts/anwallet/index.html) support into Web3-Onboard's "Connect Wallet" modal. With this module, the Arcana wallet option will be shown for any app that integrates with the Arcana Auth SDK and uses it to onboard users. There is no need to download any browser extension. For more information on how to use the Arcana Wallet, please refer to the [Arcana Wallet User Guide](https://docs.arcana.network/user-guides/wallet-ui/index.html).
+
+### Install
+
+
+
+
+```sh copy
+yarn add @web3-onboard/core @web3-onboard/arcana-auth
+```
+
+
+
+
+```sh copy
+npm install @web3-onboard/core @web3-onboard/arcana-auth
+```
+
+
+
+
+## Usage
+
+```typescript
+import Onboard from '@web3-onboard/core'
+import arcanaAuthModule from '@web3-onboard/arcana-auth'
+
+// initialize the module
+const arcanaAuth = arcanaAuthModule({
+ clientID: ''
+})
+
+const onboard = Onboard({
+ // ... other Onboard options
+ wallets: [
+ arcanaAuth,
+ //... other wallets
+ ]
+})
+
+const connectedWallets = await onboard.connectWallet()
+console.log(connectedWallets)
+```
diff --git a/docs/src/routes/docs/[...4]wallets/[...19]taho/+page.md b/docs/src/routes/docs/[...4]wallets/[...20]taho/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...19]taho/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...20]taho/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...20]tallyho/+page.md b/docs/src/routes/docs/[...4]wallets/[...21]tallyho/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...20]tallyho/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...21]tallyho/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...21]torus/+page.md b/docs/src/routes/docs/[...4]wallets/[...22]torus/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...21]torus/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...22]torus/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...22]trezor/+page.md b/docs/src/routes/docs/[...4]wallets/[...23]trezor/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...22]trezor/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...23]trezor/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...23]uauth/+page.md b/docs/src/routes/docs/[...4]wallets/[...24]uauth/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...23]uauth/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...24]uauth/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...23]venly/+page.md b/docs/src/routes/docs/[...4]wallets/[...25]venly/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...23]venly/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...25]venly/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...24]walletconnect/+page.md b/docs/src/routes/docs/[...4]wallets/[...26]walletconnect/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...24]walletconnect/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...26]walletconnect/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...25]walletlink/+page.md b/docs/src/routes/docs/[...4]wallets/[...27]walletlink/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...25]walletlink/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...27]walletlink/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...26]web3auth/+page.md b/docs/src/routes/docs/[...4]wallets/[...28]web3auth/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...26]web3auth/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...28]web3auth/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...27]xdefi/+page.md b/docs/src/routes/docs/[...4]wallets/[...29]xdefi/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...27]xdefi/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...29]xdefi/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...1]blocto/+page.md b/docs/src/routes/docs/[...4]wallets/[...2]blocto/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...1]blocto/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...2]blocto/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...28]zeal/+page.md b/docs/src/routes/docs/[...4]wallets/[...30]zeal/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...28]zeal/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...30]zeal/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...2]coinbase/+page.md b/docs/src/routes/docs/[...4]wallets/[...3]coinbase/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...2]coinbase/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...3]coinbase/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...3]dcent/+page.md b/docs/src/routes/docs/[...4]wallets/[...4]dcent/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...3]dcent/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...4]dcent/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...4]enkrypt/+page.md b/docs/src/routes/docs/[...4]wallets/[...5]enkrypt/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...4]enkrypt/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...5]enkrypt/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...5]fortmatic/+page.md b/docs/src/routes/docs/[...4]wallets/[...6]fortmatic/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...5]fortmatic/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...6]fortmatic/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...6]frame/+page.md b/docs/src/routes/docs/[...4]wallets/[...7]frame/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...6]frame/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...7]frame/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...7]frontier/+page.md b/docs/src/routes/docs/[...4]wallets/[...8]frontier/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...7]frontier/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...8]frontier/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...8]gnosis/+page.md b/docs/src/routes/docs/[...4]wallets/[...9]gnosis/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...8]gnosis/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...9]gnosis/+page.md
diff --git a/packages/arcana-auth/README.md b/packages/arcana-auth/README.md
new file mode 100644
index 000000000..ad8e0ad86
--- /dev/null
+++ b/packages/arcana-auth/README.md
@@ -0,0 +1,36 @@
+# @web3-onboard/arcana-auth
+
+## Wallet module for connecting Arcana Wallet SDK to web3-onboard
+
+[Web3-Onboard](https://onboard.blocknative.com/) is an open-source, framework-agnostic JavaScript library to onboard users to web3 apps. This package can be used to integrate [Arcana Wallet](https://docs.arcana.network/concepts/anwallet/index.html) support into Web3-Onboard's "Connect Wallet" modal. With this module, the Arcana wallet option will be shown for any app that integrates with the Arcana Auth SDK and uses it to onboard users. There is no need to download any browser extension. For more information on how to use the Arcana Wallet, please refer to the [Arcana Wallet User Guide](https://docs.arcana.network/user-guides/wallet-ui/index.html). Web3 app developers can refer to the [Arcana Wallet Developer Docs](https://docs.arcana.network/auth-quick-start.html)
+
+**Note**
+
+To ensure proper functionality of the embedded Arcana wallet in the Arcana Auth SDK, it may be necessary to disable certain other wallets that operate as browser extensions.
+
+### Install
+
+`npm install @web3-onboard/core @web3-onboard/arcana-auth`
+
+## Usage
+
+```typescript
+import Onboard from '@web3-onboard/core'
+import arcanaAuthModule from '@web3-onboard/arcana-auth'
+
+// initialize the module
+const arcanaAuth = arcanaAuthModule({
+ clientID: 'xar_test_c9c3bc702eb13255c58dab0e74cfa859711c13cb'
+})
+
+const onboard = Onboard({
+ // ... other Onboard options
+ wallets: [
+ arcanaAuth,
+ //... other wallets
+ ]
+})
+
+const connectedWallets = await onboard.connectWallet()
+console.log(connectedWallets)
+```
diff --git a/packages/arcana-auth/package.json b/packages/arcana-auth/package.json
new file mode 100644
index 000000000..a08d207a0
--- /dev/null
+++ b/packages/arcana-auth/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@web3-onboard/arcana-auth",
+ "version": "2.0.0-alpha.1",
+ "license": "MIT",
+ "description": "Arcana wallet is a built-in, secure Web3 wallet that users can access instantly when logging into an app integrated with the Arcana Auth SDK. It offers a customizable interface that can be branded to match the app's style. Users don't need to generate or manage cryptographic keys or remember passphrases. The wallet uses advanced distributed key generation, giving users full control over their wallets while onboarding Web3 apps using familiar Web2 authentication methods. It is user-friendly, secure, and puts users in control of their Web3 experience.",
+ "private": false,
+ "module": "dist/index.js",
+ "browser": "dist/index.js",
+ "main": "dist/index.js",
+ "scripts": {
+ "build": "tsc",
+ "dev": "tsc -w",
+ "type-check": "tsc --noEmit"
+ },
+ "dependencies": {
+ "@arcana/auth": "^1.0.6"
+ },
+ "devDependencies": {
+ "typescript": "^5.1.6"
+ }
+}
diff --git a/packages/arcana-auth/src/icon.ts b/packages/arcana-auth/src/icon.ts
new file mode 100644
index 000000000..b36ae647d
--- /dev/null
+++ b/packages/arcana-auth/src/icon.ts
@@ -0,0 +1,38 @@
+export default "\n" +
+"\n"
diff --git a/packages/arcana-auth/src/index.ts b/packages/arcana-auth/src/index.ts
new file mode 100644
index 000000000..a37c48536
--- /dev/null
+++ b/packages/arcana-auth/src/index.ts
@@ -0,0 +1,30 @@
+import { createEIP1193Provider, WalletInit } from '@web3-onboard/common'
+import icon from './icon'
+import type { ConstructorParams } from '@arcana/auth/types'
+
+export default function (opts: {
+ clientID: string
+ params?: ConstructorParams
+}): WalletInit {
+ return () => ({
+ label: 'Arcana Auth',
+ async getIcon() {
+ return icon
+ },
+ async getInterface() {
+ const { AuthProvider } = await import('@arcana/auth')
+
+ const instance = new AuthProvider(opts.clientID, opts.params)
+ await instance.init()
+ return new Promise((resolve, reject) => {
+ instance.provider.once('connect', () => {
+ resolve({
+ provider: createEIP1193Provider(instance.provider),
+ instance
+ })
+ })
+ instance.connect().catch(reject)
+ })
+ }
+ })
+}
diff --git a/packages/arcana-auth/tsconfig.json b/packages/arcana-auth/tsconfig.json
new file mode 100644
index 000000000..592d71e8f
--- /dev/null
+++ b/packages/arcana-auth/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*"],
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src",
+ "declarationDir": "dist",
+ "paths": {
+ "*": ["./src/*", "./node_modules/*"]
+ },
+ "typeRoots": ["node_modules/@types"],
+ "strict": false,
+ "allowSyntheticDefaultImports": true
+ }
+}
diff --git a/packages/demo/package.json b/packages/demo/package.json
index 2ece2d750..51988c22a 100644
--- a/packages/demo/package.json
+++ b/packages/demo/package.json
@@ -24,6 +24,7 @@
"webpack-dev-server": "4.7.4"
},
"dependencies": {
+ "@web3-onboard/arcana-auth": "^2.0.0-alpha.1",
"@web3-onboard/cede-store": "^2.1.0",
"@web3-onboard/blocto": "2.0.0",
"@web3-onboard/coinbase": "^2.2.5",
diff --git a/packages/demo/src/App.svelte b/packages/demo/src/App.svelte
index ab804192d..04227bc3b 100644
--- a/packages/demo/src/App.svelte
+++ b/packages/demo/src/App.svelte
@@ -30,6 +30,7 @@
import frontierModule from '@web3-onboard/frontier'
import bloctoModule from '@web3-onboard/blocto'
import cedeStoreModule from '@web3-onboard/cede-store'
+ import arcanaAuthModule from '@web3-onboard/arcana-auth'
import venlyModule from '@web3-onboard/venly'
import {
recoverAddress,
@@ -131,6 +132,10 @@
'DJuUOKvmNnlzy6ruVgeWYWIMKLRyYtjYa9Y10VCeJzWZcygDlrYLyXsBQjpJ2hxlBO9dnl8t9GmAC2qOP5vnIGo'
})
+ const arcanaAuth = arcanaAuthModule({
+ clientID: 'xar_test_c9c3bc702eb13255c58dab0e74cfa859711c13cb'
+ })
+
const torus = torusModule()
const infinityWallet = infinityWalletModule()
const ledger = ledgerModule({ projectId: 'f6bd6e2911b56f5ac3bc8b2d0e2d7ad5' })
@@ -212,6 +217,7 @@
xdefi,
frameWallet,
cedeStore,
+ arcanaAuth,
blocto,
venly
],
@@ -247,7 +253,7 @@
id: '0x5',
token: 'ETH',
label: 'Goerli',
- rpcUrl: `https://goerli.infura.io/v3/${infura_key}`
+ rpcUrl: 'https://ethereum-goerli.publicnode.com'
},
{
id: '0x13881',
diff --git a/yarn.lock b/yarn.lock
index 3c02c1c68..ef7fb13e5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -154,6 +154,15 @@
resolved "https://registry.yarnpkg.com/@apocentre/alias-sampling/-/alias-sampling-0.5.3.tgz#897ff181b48ad7b2bcb4ecf29400214888244f08"
integrity sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA==
+"@arcana/auth@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@arcana/auth/-/auth-1.0.3.tgz#10008e95e9c43b5bafaf9a35ae8261c028975619"
+ integrity sha512-Ab6UoxqlsruzWZ3XPBL8jdfrW2GmU7F4dec7Qic/L6jePQTxjOkSkXqrTnZ8Zo4Ew3A/6r6j/8HcjbgFAyBoBQ==
+ dependencies:
+ "@metamask/safe-event-emitter" "^2.0.0"
+ eth-rpc-errors "^4.0.3"
+ penpal "^6.0.1"
+
"@babel/code-frame@7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -9939,6 +9948,11 @@ penpal@3.0.7:
resolved "https://registry.yarnpkg.com/penpal/-/penpal-3.0.7.tgz#d252711ed93b30f1d867eb82342785b3a95f5f75"
integrity sha512-WSXiq5HnEvzvY05SHhaXcsviUmCvh4Ze8AiIZzvmdzaaYAAx4rx8c6Xq6+MaVDG/Nfve3VmGD8HyRP3CkPvPbQ==
+penpal@^6.0.1:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/penpal/-/penpal-6.2.2.tgz#20a0a0592881a959e8c87116d854f9528b1aa601"
+ integrity sha512-RQD7hTx14/LY7QoS3tQYO3/fzVtwvZI+JeS5udgsu7FPaEDjlvfK9HBcme9/ipzSPKnrxSgacI9PI7154W62YQ==
+
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -12145,6 +12159,11 @@ typescript@^4.6.2:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9"
integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==
+typescript@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
+ integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
+
uint8arrays@^3.0.0, uint8arrays@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0"