From 24c825d13788f28874b9e439ad908f160cdc77b6 Mon Sep 17 00:00:00 2001 From: "kean.yang" Date: Wed, 18 Oct 2023 04:32:13 +0800 Subject: [PATCH] feat: bitgetWallet support (#1919) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat:add @web3-onboard/bitget packages * dosc:bitget Wallet * feat:Upgrade npm package * feat:Change package name * feat:Change package name * Update packages/bitkeep/package.json * Update packages/bitget-wallet/package.json * Format code * Add CI * Rename bitget * delete wrong type * Test and remove type file for bitkeep * Import deps dynamically * Add bitkeep and bitget to docs site --------- Co-authored-by: kean Co-authored-by: Adam Carpenter --- .circleci/config.yml | 36 ++++++++++ .../+page.md | 0 .../{[...9]gnosis => [...11]gnosis}/+page.md | 0 .../+page.md | 0 .../+page.md | 0 .../+page.md | 0 .../+page.md | 0 .../{[...14]ledger => [...16]ledger}/+page.md | 0 .../{[...15]magic => [...17]magic}/+page.md | 0 .../{[...16]mew => [...18]mew}/+page.md | 0 .../+page.md | 0 .../+page.md | 0 .../{[...19]portis => [...21]portis}/+page.md | 0 .../{[...20]taho => [...22]taho}/+page.md | 0 .../+page.md | 0 .../{[...22]torus => [...24]torus}/+page.md | 0 .../{[...23]trezor => [...25]trezor}/+page.md | 0 .../{[...24]uauth => [...26]uauth}/+page.md | 0 .../{[...25]venly => [...27]venly}/+page.md | 0 .../+page.md | 0 .../+page.md | 0 .../docs/[...4]wallets/[...2]bitget/+page.md | 48 +++++++++++++ .../+page.md | 0 .../{[...29]xdefi => [...31]xdefi}/+page.md | 0 .../{[...30]zeal => [...32]zeal}/+page.md | 0 .../docs/[...4]wallets/[...3]bitkeep/+page.md | 48 +++++++++++++ .../{[...2]blocto => [...4]blocto}/+page.md | 0 .../+page.md | 0 .../{[...4]dcent => [...6]dcent}/+page.md | 0 .../{[...5]enkrypt => [...7]enkrypt}/+page.md | 0 .../+page.md | 0 .../{[...7]frame => [...9]frame}/+page.md | 0 packages/bitget/README.md | 33 +++++++++ packages/bitget/package.json | 67 +++++++++++++++++++ packages/bitget/src/index.ts | 51 ++++++++++++++ packages/bitget/tsconfig.json | 15 +++++ packages/bitkeep/README.md | 33 +++++++++ packages/bitkeep/package.json | 67 +++++++++++++++++++ packages/bitkeep/src/index.ts | 51 ++++++++++++++ packages/bitkeep/tsconfig.json | 15 +++++ packages/demo/package.json | 2 + packages/demo/src/App.svelte | 6 ++ packages/injected/src/types.ts | 6 +- yarn.lock | 59 ++++++++++++++++ 44 files changed, 534 insertions(+), 3 deletions(-) rename docs/src/routes/docs/[...4]wallets/{[...8]frontier => [...10]frontier}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...9]gnosis => [...11]gnosis}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...10]infinitywallet => [...12]infinitywallet}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...11]injected => [...13]injected}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...12]keepkey => [...14]keepkey}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...13]keystone => [...15]keystone}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...14]ledger => [...16]ledger}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...15]magic => [...17]magic}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...16]mew => [...18]mew}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...17]mewwallet => [...19]mewwallet}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...18]phantom => [...20]phantom}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...19]portis => [...21]portis}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...20]taho => [...22]taho}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...21]tallyho => [...23]tallyho}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...22]torus => [...24]torus}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...23]trezor => [...25]trezor}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...24]uauth => [...26]uauth}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...25]venly => [...27]venly}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...26]walletconnect => [...28]walletconnect}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...27]walletlink => [...29]walletlink}/+page.md (100%) create mode 100644 docs/src/routes/docs/[...4]wallets/[...2]bitget/+page.md rename docs/src/routes/docs/[...4]wallets/{[...28]web3auth => [...30]web3auth}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...29]xdefi => [...31]xdefi}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...30]zeal => [...32]zeal}/+page.md (100%) create mode 100644 docs/src/routes/docs/[...4]wallets/[...3]bitkeep/+page.md rename docs/src/routes/docs/[...4]wallets/{[...2]blocto => [...4]blocto}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...3]coinbase => [...5]coinbase}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...4]dcent => [...6]dcent}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...5]enkrypt => [...7]enkrypt}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...6]fortmatic => [...8]fortmatic}/+page.md (100%) rename docs/src/routes/docs/[...4]wallets/{[...7]frame => [...9]frame}/+page.md (100%) create mode 100644 packages/bitget/README.md create mode 100644 packages/bitget/package.json create mode 100644 packages/bitget/src/index.ts create mode 100644 packages/bitget/tsconfig.json create mode 100644 packages/bitkeep/README.md create mode 100644 packages/bitkeep/package.json create mode 100644 packages/bitkeep/src/index.ts create mode 100644 packages/bitkeep/tsconfig.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 87d46ef60..44271810e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -413,6 +413,18 @@ jobs: working_directory: ~/web3-onboard-monorepo/packages/venly steps: - node-build-steps + build-bitget: + docker: + - image: cimg/node:16.13.1 + working_directory: ~/web3-onboard-monorepo/packages/bitget + steps: + - node-build-steps + build-bitkeep: + docker: + - image: cimg/node:16.13.1 + working_directory: ~/web3-onboard-monorepo/packages/bitkeep + steps: + - node-build-steps # Build staging/Alpha releases build-staging-core: @@ -661,6 +673,18 @@ jobs: working_directory: ~/web3-onboard-monorepo/packages/venly steps: - node-staging-build-steps + build-staging-bitget: + docker: + - image: cimg/node:16.13.1 + working_directory: ~/web3-onboard-monorepo/packages/bitget + steps: + - node-staging-build-steps + build-staging-bitkeep: + docker: + - image: cimg/node:16.13.1 + working_directory: ~/web3-onboard-monorepo/packages/bitkeep + steps: + - node-staging-build-steps workflows: version: 2 @@ -911,3 +935,15 @@ workflows: <<: *deploy_production_filters - build-staging-venly: <<: *deploy_staging_filters + bitget: + jobs: + - build-bitget: + <<: *deploy_production_filters + - build-staging-bitget: + <<: *deploy_staging_filters + bitkeep: + jobs: + - build-bitkeep: + <<: *deploy_production_filters + - build-staging-bitkeep: + <<: *deploy_staging_filters diff --git a/docs/src/routes/docs/[...4]wallets/[...8]frontier/+page.md b/docs/src/routes/docs/[...4]wallets/[...10]frontier/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...8]frontier/+page.md rename to docs/src/routes/docs/[...4]wallets/[...10]frontier/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...9]gnosis/+page.md b/docs/src/routes/docs/[...4]wallets/[...11]gnosis/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...9]gnosis/+page.md rename to docs/src/routes/docs/[...4]wallets/[...11]gnosis/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...10]infinitywallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...12]infinitywallet/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...10]infinitywallet/+page.md rename to docs/src/routes/docs/[...4]wallets/[...12]infinitywallet/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...11]injected/+page.md b/docs/src/routes/docs/[...4]wallets/[...13]injected/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...11]injected/+page.md rename to docs/src/routes/docs/[...4]wallets/[...13]injected/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...12]keepkey/+page.md b/docs/src/routes/docs/[...4]wallets/[...14]keepkey/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...12]keepkey/+page.md rename to docs/src/routes/docs/[...4]wallets/[...14]keepkey/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...13]keystone/+page.md b/docs/src/routes/docs/[...4]wallets/[...15]keystone/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...13]keystone/+page.md rename to docs/src/routes/docs/[...4]wallets/[...15]keystone/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...14]ledger/+page.md b/docs/src/routes/docs/[...4]wallets/[...16]ledger/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...14]ledger/+page.md rename to docs/src/routes/docs/[...4]wallets/[...16]ledger/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...15]magic/+page.md b/docs/src/routes/docs/[...4]wallets/[...17]magic/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...15]magic/+page.md rename to docs/src/routes/docs/[...4]wallets/[...17]magic/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...16]mew/+page.md b/docs/src/routes/docs/[...4]wallets/[...18]mew/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...16]mew/+page.md rename to docs/src/routes/docs/[...4]wallets/[...18]mew/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...17]mewwallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...19]mewwallet/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...17]mewwallet/+page.md rename to docs/src/routes/docs/[...4]wallets/[...19]mewwallet/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...18]phantom/+page.md b/docs/src/routes/docs/[...4]wallets/[...20]phantom/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...18]phantom/+page.md rename to docs/src/routes/docs/[...4]wallets/[...20]phantom/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...19]portis/+page.md b/docs/src/routes/docs/[...4]wallets/[...21]portis/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...19]portis/+page.md rename to docs/src/routes/docs/[...4]wallets/[...21]portis/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...20]taho/+page.md b/docs/src/routes/docs/[...4]wallets/[...22]taho/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...20]taho/+page.md rename to docs/src/routes/docs/[...4]wallets/[...22]taho/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...21]tallyho/+page.md b/docs/src/routes/docs/[...4]wallets/[...23]tallyho/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...21]tallyho/+page.md rename to docs/src/routes/docs/[...4]wallets/[...23]tallyho/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...22]torus/+page.md b/docs/src/routes/docs/[...4]wallets/[...24]torus/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...22]torus/+page.md rename to docs/src/routes/docs/[...4]wallets/[...24]torus/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...23]trezor/+page.md b/docs/src/routes/docs/[...4]wallets/[...25]trezor/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...23]trezor/+page.md rename to docs/src/routes/docs/[...4]wallets/[...25]trezor/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...24]uauth/+page.md b/docs/src/routes/docs/[...4]wallets/[...26]uauth/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...24]uauth/+page.md rename to docs/src/routes/docs/[...4]wallets/[...26]uauth/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...25]venly/+page.md b/docs/src/routes/docs/[...4]wallets/[...27]venly/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...25]venly/+page.md rename to docs/src/routes/docs/[...4]wallets/[...27]venly/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...26]walletconnect/+page.md b/docs/src/routes/docs/[...4]wallets/[...28]walletconnect/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...26]walletconnect/+page.md rename to docs/src/routes/docs/[...4]wallets/[...28]walletconnect/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...27]walletlink/+page.md b/docs/src/routes/docs/[...4]wallets/[...29]walletlink/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...27]walletlink/+page.md rename to docs/src/routes/docs/[...4]wallets/[...29]walletlink/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...2]bitget/+page.md b/docs/src/routes/docs/[...4]wallets/[...2]bitget/+page.md new file mode 100644 index 000000000..8ba3bf23a --- /dev/null +++ b/docs/src/routes/docs/[...4]wallets/[...2]bitget/+page.md @@ -0,0 +1,48 @@ +--- +title: Bitget +--- + +# {$frontmatter.title} + +## Wallet module for connecting Bitget Wallet through web3-onboard + +Bitget 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 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 + + + + +```sh copy +yarn add @web3-onboard/bitget +``` + + + + +```sh copy +npm install @web3-onboard/bitget +``` + + + + +## Usage + +```typescript +import Onboard from '@web3-onboard/core' +import bitgetWalletModule from '@web3-onboard/bitget' + +const bitgetWallet = bitgetWalletModule() + +const onboard = Onboard({ + // ... other Onboard options + wallets: [ + bitgetWallet() + //... other wallets + ] +}) + +const connectedWallets = await onboard.connectWallet() +console.log(connectedWallets) +``` diff --git a/docs/src/routes/docs/[...4]wallets/[...28]web3auth/+page.md b/docs/src/routes/docs/[...4]wallets/[...30]web3auth/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...28]web3auth/+page.md rename to docs/src/routes/docs/[...4]wallets/[...30]web3auth/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...29]xdefi/+page.md b/docs/src/routes/docs/[...4]wallets/[...31]xdefi/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...29]xdefi/+page.md rename to docs/src/routes/docs/[...4]wallets/[...31]xdefi/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...30]zeal/+page.md b/docs/src/routes/docs/[...4]wallets/[...32]zeal/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...30]zeal/+page.md rename to docs/src/routes/docs/[...4]wallets/[...32]zeal/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...3]bitkeep/+page.md b/docs/src/routes/docs/[...4]wallets/[...3]bitkeep/+page.md new file mode 100644 index 000000000..e13da46c5 --- /dev/null +++ b/docs/src/routes/docs/[...4]wallets/[...3]bitkeep/+page.md @@ -0,0 +1,48 @@ +--- +title: BitKeep +--- + +# {$frontmatter.title} + +## Wallet module for connecting BitKeep Wallet through web3-onboard + +BitKeep 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 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 + + + + +```sh copy +yarn add @web3-onboard/bitkeep +``` + + + + +```sh copy +npm install @web3-onboard/bitkeep +``` + + + + +## Usage + +```typescript +import Onboard from '@web3-onboard/core' +import bitKeepWalletModule from '@web3-onboard/bitkeep' + +const bitKeepWallet = bitKeepWalletModule() + +const onboard = Onboard({ + // ... other Onboard options + wallets: [ + bitKeepWallet() + //... other wallets + ] +}) + +const connectedWallets = await onboard.connectWallet() +console.log(connectedWallets) +``` diff --git a/docs/src/routes/docs/[...4]wallets/[...2]blocto/+page.md b/docs/src/routes/docs/[...4]wallets/[...4]blocto/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...2]blocto/+page.md rename to docs/src/routes/docs/[...4]wallets/[...4]blocto/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...3]coinbase/+page.md b/docs/src/routes/docs/[...4]wallets/[...5]coinbase/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...3]coinbase/+page.md rename to docs/src/routes/docs/[...4]wallets/[...5]coinbase/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...4]dcent/+page.md b/docs/src/routes/docs/[...4]wallets/[...6]dcent/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...4]dcent/+page.md rename to docs/src/routes/docs/[...4]wallets/[...6]dcent/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...5]enkrypt/+page.md b/docs/src/routes/docs/[...4]wallets/[...7]enkrypt/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...5]enkrypt/+page.md rename to docs/src/routes/docs/[...4]wallets/[...7]enkrypt/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...6]fortmatic/+page.md b/docs/src/routes/docs/[...4]wallets/[...8]fortmatic/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...6]fortmatic/+page.md rename to docs/src/routes/docs/[...4]wallets/[...8]fortmatic/+page.md diff --git a/docs/src/routes/docs/[...4]wallets/[...7]frame/+page.md b/docs/src/routes/docs/[...4]wallets/[...9]frame/+page.md similarity index 100% rename from docs/src/routes/docs/[...4]wallets/[...7]frame/+page.md rename to docs/src/routes/docs/[...4]wallets/[...9]frame/+page.md diff --git a/packages/bitget/README.md b/packages/bitget/README.md new file mode 100644 index 000000000..a9690c31b --- /dev/null +++ b/packages/bitget/README.md @@ -0,0 +1,33 @@ +# @web3-onboard/bitget + +## Wallet module for connecting Bitget Wallet through web3-onboard + +Bitget 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 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/bitget` + +**Yarn** +`yarn add @web3-onboard/core @web3-onboard/bitget` + +## Usage + +```typescript +import Onboard from '@web3-onboard/core' +import bitgetWalletModule from '@web3-onboard/bitget' + +const bitgetWallet = bitgetWalletModule() + +const onboard = Onboard({ + // ... other Onboard options + wallets: [ + bitgetWallet() + //... other wallets + ] +}) + +const connectedWallets = await onboard.connectWallet() +console.log(connectedWallets) +``` diff --git a/packages/bitget/package.json b/packages/bitget/package.json new file mode 100644 index 000000000..d6c1efb3e --- /dev/null +++ b/packages/bitget/package.json @@ -0,0 +1,67 @@ +{ + "name": "@web3-onboard/bitget", + "version": "2.0.0-alpha.1", + "description": "bitget-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 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", + "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", + "bitgetWallet" + ], + "repository": { + "type": "git", + "url": "https://github.com/blocknative/web3-onboard.git", + "directory": "packages/bitget-wallet" + }, + "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": { + "@bitget-wallet/web3-sdk": "^0.0.6", + "@web3-onboard/common": "^2.3.3" + } +} diff --git a/packages/bitget/src/index.ts b/packages/bitget/src/index.ts new file mode 100644 index 000000000..27efed8a2 --- /dev/null +++ b/packages/bitget/src/index.ts @@ -0,0 +1,51 @@ +import type { WalletInit, EIP1193Provider } from '@web3-onboard/common' + +let bitgetDependencies: any = null +let bitgetAdapter: any = null + +const loadBitgetDependencies = async (getAdapter?: boolean) => { + if (!bitgetDependencies) { + bitgetDependencies = await import('@bitget-wallet/web3-sdk') + } + if (getAdapter && !bitgetAdapter) { + bitgetAdapter = new bitgetDependencies.LegacyEip1193Adapter() + return bitgetAdapter + } + if (getAdapter) { + return bitgetAdapter + } + return bitgetDependencies +} + +function bitget(): WalletInit { + if (typeof window === 'undefined') return () => null + + return () => { + return { + label: 'Bitget', + getIcon: async () => { + const sdkAdapter = await loadBitgetDependencies(true) + return sdkAdapter.getLogo() + }, + getInterface: async () => { + const { + currentProvider, + getIsInstall, + getDownload, + installWalletMessage + } = await loadBitgetDependencies() + + let provider: EIP1193Provider + if (getIsInstall()) { + provider = currentProvider() + } else { + window.open(getDownload(), '_blank') + throw new Error(installWalletMessage) + } + return { provider } + } + } + } +} + +export default bitget diff --git a/packages/bitget/tsconfig.json b/packages/bitget/tsconfig.json new file mode 100644 index 000000000..09ae989f9 --- /dev/null +++ b/packages/bitget/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 diff --git a/packages/bitkeep/README.md b/packages/bitkeep/README.md new file mode 100644 index 000000000..8de401043 --- /dev/null +++ b/packages/bitkeep/README.md @@ -0,0 +1,33 @@ +# @web3-onboard/bitkeep + +## Wallet module for connecting Bitkeep Wallet through web3-onboard + +Bitkeep 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 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/bitkeep` + +**Yarn** +`yarn add @web3-onboard/core @web3-onboard/bitkeep` + +## Usage + +```typescript +import Onboard from '@web3-onboard/core' +import bitkeepModule from '@web3-onboard/bitkeep' + +const bitKeep = bitkeepModule() + +const onboard = Onboard({ + // ... other Onboard options + wallets: [ + bitKeep() + //... other wallets + ] +}) + +const connectedWallets = await onboard.connectWallet() +console.log(connectedWallets) +``` diff --git a/packages/bitkeep/package.json b/packages/bitkeep/package.json new file mode 100644 index 000000000..377cea495 --- /dev/null +++ b/packages/bitkeep/package.json @@ -0,0 +1,67 @@ +{ + "name": "@web3-onboard/bitkeep", + "version": "2.0.0-alpha.1", + "description": "Bitkeep 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 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", + "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", + "bitkeep" + ], + "repository": { + "type": "git", + "url": "https://github.com/blocknative/web3-onboard.git", + "directory": "packages/bitkeep" + }, + "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": { + "@bitget-wallet/web3-sdk": "^0.0.6", + "@web3-onboard/common": "^2.3.3" + } +} diff --git a/packages/bitkeep/src/index.ts b/packages/bitkeep/src/index.ts new file mode 100644 index 000000000..681408296 --- /dev/null +++ b/packages/bitkeep/src/index.ts @@ -0,0 +1,51 @@ +import type { WalletInit, EIP1193Provider } from '@web3-onboard/common' + +let bitKeepDependencies: any = null +let bitKeepAdapter: any = null + +const loadBitKeepDependencies = async (getAdapter?: boolean) => { + if (!bitKeepDependencies) { + bitKeepDependencies = await import('@bitget-wallet/web3-sdk') + } + if (getAdapter && !bitKeepAdapter) { + bitKeepAdapter = new bitKeepDependencies.LegacyEip1193Adapter() + return bitKeepAdapter + } + if (getAdapter) { + return bitKeepAdapter + } + return bitKeepDependencies +} + +function bitKeep(): WalletInit { + if (typeof window === 'undefined') return () => null + + return () => { + return { + label: 'BitKeep', + getIcon: async () => { + const sdkAdapter = await loadBitKeepDependencies(true) + return sdkAdapter.getLogo() + }, + getInterface: async () => { + const { + currentProvider, + getIsInstall, + getDownload, + installWalletMessage + } = await loadBitKeepDependencies() + + let provider: EIP1193Provider + if (getIsInstall()) { + provider = currentProvider() + } else { + window.open(getDownload(), '_blank') + throw new Error(installWalletMessage) + } + return { provider } + } + } + } +} + +export default bitKeep diff --git a/packages/bitkeep/tsconfig.json b/packages/bitkeep/tsconfig.json new file mode 100644 index 000000000..09ae989f9 --- /dev/null +++ b/packages/bitkeep/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 diff --git a/packages/demo/package.json b/packages/demo/package.json index c317eb667..24a54498e 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -28,6 +28,8 @@ "@safe-global/safe-apps-provider": "^0.18.0", "@safe-global/safe-apps-sdk": "^8.1.0", "@web3-onboard/arcana-auth": "^2.0.0", + "@web3-onboard/bitkeep": "2.0.0-alpha.1", + "@web3-onboard/bitget": "2.0.0-alpha.1", "@web3-onboard/blocto": "2.0.0", "@web3-onboard/cede-store": "^2.1.0", "@web3-onboard/coinbase": "^2.2.6", diff --git a/packages/demo/src/App.svelte b/packages/demo/src/App.svelte index 72dd78ded..4fcae88a6 100644 --- a/packages/demo/src/App.svelte +++ b/packages/demo/src/App.svelte @@ -32,6 +32,8 @@ import cedeStoreModule from '@web3-onboard/cede-store' import arcanaAuthModule from '@web3-onboard/arcana-auth' import venlyModule from '@web3-onboard/venly' + import bitkeepModule from '@web3-onboard/bitkeep' + import bitgetModule from '@web3-onboard/bitget' import { recoverAddress, arrayify, @@ -177,6 +179,8 @@ }) const dcent = dcentModule() + const bitkeep = bitkeepModule() + const bitget = bitgetModule() const frameWallet = frameModule() const sequence = sequenceModule() const enkrypt = enkryptModule() @@ -200,6 +204,8 @@ safe, trust, tallyho, + bitget, + bitkeep, enkrypt, infinityWallet, mewWallet, diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts index 924542547..8a35aa6ae 100644 --- a/packages/injected/src/types.ts +++ b/packages/injected/src/types.ts @@ -80,9 +80,9 @@ export enum ProviderIdentityFlag { */ export enum ProviderExternalUrl { Binance = 'https://www.bnbchain.org/ru/blog/binance-extension-wallet/', - BitKeep = 'https://bitkeep.com/en/download?type=0', - Coinbase = 'https://go.cb-w.com/dapp', - MetaMask = 'https://metamask.app.link/dapp/', + BitKeep = 'https://web3.bitget.com/en/wallet-download', + Coinbase = 'https://www.coinbase.com/wallet/downloads', + MetaMask = 'https://metamask.io/download/', OKXWallet = 'https://okx.com/download', Phantom = 'https://phantom.app/ul/v1/connect', Talisman = 'https://www.talisman.xyz/', diff --git a/yarn.lock b/yarn.lock index 277b2aae4..3eab9cb60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -356,6 +356,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.22.6": + version "7.23.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d" + integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.5.5": version "7.17.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" @@ -405,6 +412,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@bitget-wallet/web3-sdk@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@bitget-wallet/web3-sdk/-/web3-sdk-0.0.6.tgz#f30f7fbdeb804ddc98b175ed977340bc856011ed" + integrity sha512-UfMxJGmIAyqJBIY90nS1IrhFZvOzAvvcPt2/QhsfRQBYya8PoIwXEBofIfFeMgyVD00E7oq130DheAwFUduadA== + dependencies: + "@metamask/safe-event-emitter" "^3.0.0" + "@solana/web3.js" "^1.78.0" + eventemitter3 "^5.0.1" + "@blocto/dappauth@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@blocto/dappauth/-/dappauth-2.1.0.tgz#7154292bac4af1f021312ebffc921c7c893a1f36" @@ -1891,6 +1907,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== +"@noble/hashes@^1.3.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@noble/hashes@~1.1.1": version "1.1.4" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.4.tgz#2611ebf5764c1bf754da7c7794de4fb30512336d" @@ -2358,6 +2379,27 @@ rpc-websockets "^7.5.1" superstruct "^0.14.2" +"@solana/web3.js@^1.78.0": + version "1.78.5" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.78.5.tgz#591cd47423cdb0b5e5cb7e8dc4dc70b2abe02f80" + integrity sha512-2ZHsDNqkKdglJQrIvJ3p2DmgS3cGnary3VJyqt9C1SPrpAtLYzcElr3xyXJOznyQTU/8AMw+GoF11lFoKbicKg== + dependencies: + "@babel/runtime" "^7.22.6" + "@noble/curves" "^1.0.0" + "@noble/hashes" "^1.3.1" + "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.3.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.0" + node-fetch "^2.6.12" + rpc-websockets "^7.5.1" + superstruct "^0.14.2" + "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -4686,6 +4728,13 @@ agentkeepalive@^4.2.1: depd "^2.0.0" humanize-ms "^1.2.1" +agentkeepalive@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -7440,6 +7489,11 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@3.3.0, events@^3.0.0, events@^3.1.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -10925,6 +10979,11 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regexp.prototype.flags@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"