Skip to content

Commit

Permalink
[Issue 25] [feature] SubConnect - Support OpenBit Wallet
Browse files Browse the repository at this point in the history
  • Loading branch information
Thiendekaco committed May 30, 2024
1 parent a69178c commit 7fe0ae4
Show file tree
Hide file tree
Showing 12 changed files with 199 additions and 28 deletions.
4 changes: 4 additions & 0 deletions packages/core/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -583,6 +583,10 @@ export async function getBalanceSubstrate({ url, data } : clientAxiosProps){
'Zeal': {
platform: ['Extension'],
namespace: 'zeal'
},
'OpenBit': {
platform: ['Extension'],
namespace: 'OpenBit'
}
}

Expand Down
1 change: 1 addition & 0 deletions packages/demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"@subwallet-connect/talisman": "^1.0.6",
"@subwallet-connect/polkadot-js": "^1.0.6",
"@subwallet-connect/polkadot-vault": "^1.0.6",
"@subwallet-connect/openbit": "^0.0.1",
"@subwallet/chain-list": "^0.2.39",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^12.0.0",
Expand Down
3 changes: 3 additions & 0 deletions packages/demo/src/web3-onboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import subwalletPolkadotModule from '@subwallet-connect/subwallet-polkadot';
import polkadotVaultModule from '@subwallet-connect/polkadot-vault';
import ledgerModule from '@subwallet-connect/ledger';
import walletConnectModule from '@subwallet-connect/walletconnect';
import OpenBitModule from '@subwallet-connect/openBit';
import {TransactionHandlerReturn} from "@subwallet-connect/core/dist/types";
import { SubWallet, LogoSubWallet } from "../assets";

Expand Down Expand Up @@ -53,6 +54,7 @@ const subwalletPolkadotWalet = subwalletPolkadotModule();
const talismanWallet = talismanModule();
const polkadotVaultWallet = polkadotVaultModule();
const ledger = ledgerModule({ projectId : '59b5826141a56b204e9e0a3f7e46641d', walletConnectVersion: 2 })
const openBitWallet = OpenBitModule();
const walletConnect = walletConnectModule({
projectId: '59b5826141a56b204e9e0a3f7e46641d',
dappUrl: 'https://w3o-demo.subwallet.app/'
Expand Down Expand Up @@ -91,6 +93,7 @@ export default init({
ledger,
talismanWallet,
polkadotWallet,
openBitWallet,
polkadotVaultWallet,
injected
],
Expand Down
2 changes: 1 addition & 1 deletion packages/metamask/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"typescript": "^5.2.2"
},
"dependencies": {
"@metamask/sdk": "^0.18.6",
"@metamask/sdk": "^0.20.3",
"@subwallet-connect/common": "^1.0.6"
},
"author": ""
Expand Down
22 changes: 9 additions & 13 deletions packages/metamask/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ function metamask({
type: 'evm',
getIcon: async () => (await import('./icon.js')).default,
getInterface: async ({ appMetadata }) => {
sdk = (window as any).mmsdk || sdk; // Prevent conflict with existing mmsdk instances
sdk = (window as any).mmsdk || sdk // Prevent conflict with existing mmsdk instances

if (sdk) {
// Prevent re-initializing instance as it causes issues with MetaMask sdk mobile provider.
Expand All @@ -58,14 +58,11 @@ function metamask({
const appLogoUrl = `data:image/svg+xml;base64,${base64}`
const imports = await importPromise

if (
!imports?.MetaMaskSDKConstructor ||
!imports?.createEIP1193Provider
) {
if (!imports?.MetaMaskSDKConstructor) {
throw new Error('Error importing and initializing MetaMask SDK')
}

const { createEIP1193Provider, MetaMaskSDKConstructor } = imports
const { MetaMaskSDKConstructor } = imports

sdk = new MetaMaskSDKConstructor({
...options,
Expand All @@ -74,16 +71,15 @@ function metamask({
url: options.dappMetadata?.url || window.location.origin,
base64Icon: appLogoUrl
},
_source: 'web3-onboard'
_source: 'SubConnect-v2'
})

await sdk.init();
const provider = sdk.getProvider();
await sdk.init()
const provider = sdk.getProvider()

const _disconnect = sdk.disconnect
if(provider) {
(provider as any).disconnect = () => {
sdk?.terminate();
if (provider) {
;(provider as any).disconnect = () => {
sdk?.terminate()
}
}

Expand Down
74 changes: 74 additions & 0 deletions packages/openbit/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"name": "@subwallet-connect/openbit",
"version": "0.0.1",
"description": "OpenBit 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",
"SubWallet",
"OpenBit"
],
"repository": {
"type": "git",
"url": "git+https://github.com/blocknative/web3-onboard.git",
"directory": "packages/subwallet"
},
"homepage": "https://www.blocknative.com/onboard",
"bugs": {
"url": "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": {
"@ethersproject/providers": "^5.5.0",
"@types/node": "^17.0.21",
"ts-node": "^10.2.1",
"typescript": "^4.5.5",
"window": "^4.2.7"
},
"dependencies": {
"@polkadot/extension-inject": "^0.46.5",
"@subwallet-connect/common": "^1.0.4"
},
"author": ""
}
4 changes: 4 additions & 0 deletions packages/openbit/src/constant.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@



export const URL_INSTALL = 'https://www.subwallet.app/download.html'
13 changes: 13 additions & 0 deletions packages/openbit/src/icon.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export default `
<svg width="100%" height="100%" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="512" height="512" fill="url(#pattern0_13_2)"/>
<defs>
<pattern id="pattern0_13_2" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_13_2" transform="scale(0.00195312)"/>
</pattern>
<image id="image0_13_2" width="512" height="512" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
`


54 changes: 54 additions & 0 deletions packages/openbit/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import type { WalletInit, EIP1193Provider } from '@subwallet-connect/common'
import {
createEIP1193Provider,
SimpleEventEmitter,
WalletInterface
} from "@subwallet-connect/common";
import { CustomWindow } from "./types.js";
import { URL_INSTALL } from "./constant.js";
declare const window: CustomWindow

function OpenBit (): WalletInit {
if (typeof window === 'undefined') return () => null

return () => {

return {
label: 'OpenBit',
type: 'evm',
getIcon: async () => (await import('./icon.js')).default,
platforms: ['desktop'],
getInterface: async ():Promise<WalletInterface> => {
const openBitExist = window.hasOwnProperty('OpenBit');


if(openBitExist){

const openBitProvider : EIP1193Provider = window.OpenBit as EIP1193Provider

const addListener: SimpleEventEmitter['on'] =
openBitProvider.on.bind(openBitProvider)

openBitProvider.on = (event, func) => {
addListener(event, func)
}
const provider = createEIP1193Provider(openBitProvider)

provider.removeListener = (event, func) => {}

return {
provider
}
}else{
window.open(URL_INSTALL, '_blank')
throw new Error('Please Install SubWallet wallet to use this wallet')
}

},

}
}

}

export default OpenBit
6 changes: 6 additions & 0 deletions packages/openbit/src/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { ExternalProvider } from "@ethersproject/providers";

export interface CustomWindow extends Window {
OpenBit: ExternalProvider

}
16 changes: 16 additions & 0 deletions packages/openbit/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"extends": "../../tsconfig.json",
"include": ["src/**/*"],

"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"allowSyntheticDefaultImports": true,
"declaration": true,
"declarationDir": "dist",
"paths": {
"*": ["./src/*", "./node_modules/*"]
},
"typeRoots": ["node_modules/@types"]
}
}
28 changes: 14 additions & 14 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4141,33 +4141,33 @@
resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.0.0.tgz"
integrity sha512-j6Z47VOmVyGMlnKXZmL0fyvWfEYtKWCA9yGZkU3FCsGZUT5lHGmvaV9JA5F2Y+010y7+ROtR3WMXIkvl/nVzqQ==

"@metamask/sdk-communication-layer@0.18.5":
version "0.18.5"
resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.18.5.tgz#4d153512172e6d0ff940f8ff6c50c2796ba49ceb"
integrity sha512-WMf9oJa3rAimjCXMAaaRVFPD0Q6dfZR0r9037KCpD5g9SlVh+TeMISfdQCEKAyhXP3d4CGxmp/Kib8C3mn2YLw==
"@metamask/sdk-communication-layer@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.20.2.tgz#7f7fd334b2d26abd1a5a1ec1ffadf823a9589344"
integrity sha512-TN+whYbCClFSkx52Ild1RcjoRyz8YZgwNvZeooIcZIvCfBM6U9W5273KGiY7WLc/oO4KKmFk17d7vMO4gNvhhw==
dependencies:
bufferutil "^4.0.8"
date-fns "^2.29.3"
debug "^4.3.4"
utf-8-validate "^6.0.3"
uuid "^8.3.2"

"@metamask/sdk-install-modal-web@0.18.5":
version "0.18.5"
resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.18.5.tgz#f074f0c9a9c4d7272004ebf9792ce816418f13e0"
integrity sha512-Wygc0dgr1PwIA/Sg9WW9QWAsQr4G2GV6iveXt2xw8VKW/9cRORWqYukH1NZLr71hBKzi9AKYBU54Tk5Dfg41zg==
"@metamask/sdk-install-modal-web@0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.20.2.tgz#1cf0eb3c26291de7598190878fa9a893c4eb2d66"
integrity sha512-0QiaZhV15AGdN1zU2jfTI32eC3YkwEpzDfR9+oiZ9bd2G72c6lYBhTsmDGUd01aP6A+bqJR5PjI8Wh2AWtoLeA==
dependencies:
qr-code-styling "^1.6.0-rc.1"

"@metamask/sdk@^0.18.6":
version "0.18.6"
resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.18.6.tgz#ac6cfb80d35b179ee6efd9b2b2f6b67e27422e0a"
integrity sha512-ZT8e4BrcWrm44apLb412WR0fDsgeaS8UlI1c0wKRUPu1w/UntpXuUVO+EaY8WDlnOPAiAsjyqWKey64/DfvbXQ==
"@metamask/sdk@^0.20.3":
version "0.20.3"
resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.20.3.tgz#73851d68ffe5d45c1872c024182922530b187b7a"
integrity sha512-HZ9NwA+LxiXzuy0YWbWsuD4xejQtp85bhcCAf8UgpA/0dOyF3RS4dKDdBBXSyRgk3RWPjeJgHxioaH4CmBmiRA==
dependencies:
"@metamask/onboarding" "^1.0.1"
"@metamask/providers" "^15.0.0"
"@metamask/sdk-communication-layer" "0.18.5"
"@metamask/sdk-install-modal-web" "0.18.5"
"@metamask/sdk-communication-layer" "0.20.2"
"@metamask/sdk-install-modal-web" "0.20.2"
"@types/dom-screen-wake-lock" "^1.0.0"
bowser "^2.9.0"
cross-fetch "^4.0.0"
Expand Down

0 comments on commit 7fe0ae4

Please sign in to comment.