@polkahub/wallet-connect 0.1.0-pre.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/provider.js +2 -2
- package/dist/provider.js.map +1 -1
- package/package.json +5 -5
package/dist/provider.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { localStorageProvider, persistedState } from '@polkahub/plugin';
|
|
1
|
+
import { localStorageProvider, persistedState, addrEq } from '@polkahub/plugin';
|
|
2
2
|
import { state, withDefault } from '@react-rxjs/core';
|
|
3
3
|
import { createSignal } from '@react-rxjs/utils';
|
|
4
4
|
import { defineChain } from '@reown/appkit/networks';
|
|
@@ -261,7 +261,7 @@ const createWalletConnectProvider = (projectId, networks, opts) => {
|
|
|
261
261
|
deserialize: (account) => firstValueFrom(
|
|
262
262
|
accounts$.pipe(
|
|
263
263
|
map(
|
|
264
|
-
(accounts) => accounts.find((acc) => acc.address
|
|
264
|
+
(accounts) => accounts.find((acc) => addrEq(acc.address, account.address)) ?? null
|
|
265
265
|
)
|
|
266
266
|
)
|
|
267
267
|
),
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":["../src/provider.ts"],"sourcesContent":["import {\n Account,\n localStorageProvider,\n persistedState,\n PersistenceProvider,\n Plugin,\n} from \"@polkahub/plugin\";\nimport { DefaultedStateObservable, state, withDefault } from \"@react-rxjs/core\";\nimport { createSignal } from \"@react-rxjs/utils\";\nimport type { CaipNetwork } from \"@reown/appkit/core\";\nimport { defineChain } from \"@reown/appkit/networks\";\nimport type { SessionTypes } from \"@walletconnect/types\";\nimport { getPolkadotSignerFromPjs } from \"polkadot-api/pjs-signer\";\nimport {\n catchError,\n combineLatest,\n defer,\n EMPTY,\n filter,\n finalize,\n firstValueFrom,\n from,\n fromEventPattern,\n ignoreElements,\n map,\n Observable,\n of,\n scan,\n shareReplay,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from \"rxjs\";\n\nexport const walletConnectProviderId = \"walletconnect\";\nexport interface WalletConnectAccount extends Account {\n provider: \"walletconnect\";\n}\n\ntype WalletConnectStatus =\n | {\n type: \"disconnected\";\n }\n | {\n type: \"connecting\";\n }\n | {\n type: \"connected\";\n session: SessionTypes.Struct;\n };\n\nexport interface WalletConnectProvider extends Plugin<WalletConnectAccount> {\n id: \"walletconnect\";\n accounts$: DefaultedStateObservable<WalletConnectAccount[]>;\n\n toggleWalletConnect: () => void;\n walletConnectStatus$: DefaultedStateObservable<WalletConnectStatus>;\n}\n\n// https://docs.reown.com/appkit/upgrade/wcm#polkadot\n// https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-13.md\nexport const createPolkadotChain = (\n name: string,\n genesis: string,\n nativeCurrency: CaipNetwork[\"nativeCurrency\"],\n rpcUrl: string,\n subscanUrl?: string\n) => {\n const id = genesis.startsWith(\"0x\")\n ? genesis.slice(2, 34)\n : genesis.slice(0, 32);\n return defineChain({\n id,\n name,\n nativeCurrency,\n rpcUrls: {\n default: {\n http: [rpcUrl.replace(/^ws/, \"http\")],\n wss: rpcUrl.replace(/^http/, \"ws\"),\n },\n },\n blockExplorers: subscanUrl\n ? {\n default: {\n name: \"Subscan\",\n url: `https://${subscanUrl}/`,\n },\n }\n : undefined,\n chainNamespace: \"polkadot\",\n caipNetworkId: `polkadot:${id}`,\n });\n};\n\nexport { defineChain as createGenericChain };\n\nexport const knownCurrencies = {\n DOT: { name: \"Polkadot\", symbol: \"DOT\", decimals: 10 },\n KSM: { name: \"Kusama\", symbol: \"KSM\", decimals: 12 },\n PAS: { name: \"Paseo\", symbol: \"PAS\", decimals: 12 },\n};\nexport const knownChains = {\n polkadot: createPolkadotChain(\n \"Polkadot\",\n \"91b171bb158e2d3848fa23a9f1c25182\",\n knownCurrencies.DOT,\n \"wss://rpc.polkadot.io\",\n \"https://polkadot.subscan.io/\"\n ),\n polkadotAh: createPolkadotChain(\n \"Polkadot AssetHub\",\n \"0x68d56f15f85d3136970ec16946040bc1\",\n knownCurrencies.DOT,\n \"wss://asset-hub-polkadot-rpc.dwellir.com\",\n \"https://assethub-polkadot.subscan.io/\"\n ),\n kusama: createPolkadotChain(\n \"Kusama\",\n \"0xb0a8d493285c2df73290dfb7e61f870f\",\n knownCurrencies.KSM,\n \"wss://kusama-rpc.dwellir.com\",\n \"https://kusama.subscan.io/\"\n ),\n kusamaAh: createPolkadotChain(\n \"Kusama AssetHub\",\n \"0x68d56f15f85d3136970ec16946040bc1\",\n knownCurrencies.KSM,\n \"wss://kusama-asset-hub-rpc.polkadot.io\",\n \"https://assethub-kusama.subscan.io/\"\n ),\n paseo: createPolkadotChain(\n \"paseo\",\n \"0x77afd6190f1554ad45fd0d31aee62aac\",\n knownCurrencies.PAS,\n \"wss://paseo-rpc.dwellir.com\",\n \"https://paseo.subscan.io/\"\n ),\n paseoAh: createPolkadotChain(\n \"paseo AssetHub\",\n \"0xd6eec26135305a8ad257a20d00335728\",\n knownCurrencies.PAS,\n \"wss://asset-hub-paseo-rpc.dwellir.com\",\n \"https://assethub-paseo.subscan.io/\"\n ),\n};\n\nexport const createWalletConnectProvider = (\n projectId: string,\n networks: [CaipNetwork, ...CaipNetwork[]],\n opts?: Partial<{\n persist: PersistenceProvider;\n relayUrl: string;\n }>\n): WalletConnectProvider => {\n const { persist, relayUrl } = {\n persist: localStorageProvider(\"walletconnect-plugin\"),\n relayUrl: \"wss://relay.walletconnect.com\",\n ...opts,\n };\n\n const provider$ = defer(() =>\n import(\"@walletconnect/universal-provider\").then((mod) =>\n mod.default.init({\n projectId,\n relayUrl,\n })\n )\n ).pipe(shareReplay(1));\n\n const walletConnectModal$ = combineLatest([\n provider$,\n defer(() =>\n import(\"@reown/appkit/core\").then(({ createAppKit }) => createAppKit)\n ),\n ]).pipe(\n map(([universalProvider, createAppKit]) =>\n createAppKit({\n projectId,\n universalProvider,\n networks,\n manualWCControl: true,\n })\n ),\n shareReplay(1)\n );\n\n interface InitializedSession {\n uri?: string;\n approval: () => Promise<SessionTypes.Struct>;\n }\n\n const chains = networks.map((chain) => chain.caipNetworkId);\n\n const initializeSession$ = () =>\n provider$.pipe(\n switchMap(\n (provider): Promise<InitializedSession> =>\n provider.client.connect({\n requiredNamespaces: {\n polkadot: {\n methods: [\"polkadot_signTransaction\", \"polkadot_signMessage\"],\n chains,\n events: [\"chainChanged\", \"accountsChanged\"],\n },\n },\n })\n )\n );\n\n const connect$ = combineLatest([\n defer(initializeSession$),\n walletConnectModal$,\n ]).pipe(\n switchMap(([{ uri, approval }, modal]) => {\n if (!uri) return approval();\n\n modal.open({ uri });\n const modal$ = fromEventPattern<{ open: boolean }>(\n (handler) => modal.subscribeState(handler),\n (_, fn) => fn()\n );\n const closed$ = modal$.pipe(filter(({ open }) => !open));\n\n return from(approval()).pipe(\n takeUntil(closed$),\n finalize(() => modal.close())\n );\n }),\n map((session): WalletConnectStatus => ({ type: \"connected\", session })),\n catchError((err) => {\n console.log(\"connect WalletConnect error\", err);\n return of(EMPTY) as unknown as Observable<WalletConnectStatus>;\n }),\n startWith({ type: \"connecting\" } satisfies WalletConnectStatus)\n );\n const disconnect$ = combineLatest([\n provider$,\n import(\"@walletconnect/utils\").then(({ getSdkError }) => getSdkError),\n ]).pipe(\n take(1),\n switchMap(([provider, getSdkError]) =>\n provider.session\n ? provider.client.disconnect({\n topic: provider.session.topic,\n reason: getSdkError(\"USER_DISCONNECTED\"),\n })\n : EMPTY\n ),\n ignoreElements(),\n startWith({\n type: \"disconnected\",\n } satisfies WalletConnectStatus)\n );\n\n const [toggleConnect$, toggleWalletConnect] = createSignal<void>();\n\n const [session$, setSession] = persistedState<SessionTypes.Struct | null>(\n persist,\n null\n );\n\n const walletConnectStatus$ = state<WalletConnectStatus>(\n session$.pipe(\n take(1),\n switchMap((session): Observable<WalletConnectStatus> => {\n const connectState$ = toggleConnect$.pipe(\n scan((acc) => !acc, !!session),\n switchMap((connect) =>\n connect\n ? connect$.pipe(\n tapOnLast((v) => {\n // hack! if connect$ didn't actually complete, toggle it off\n if (v?.type !== \"connected\") {\n toggleWalletConnect();\n }\n })\n )\n : disconnect$\n ),\n tap((v) => {\n if (v.type === \"connected\") {\n setSession(v.session);\n } else {\n setSession(null);\n }\n })\n );\n\n return connectState$.pipe(\n startWith(\n (session\n ? {\n type: \"connected\",\n session,\n }\n : {\n type: \"disconnected\",\n }) satisfies WalletConnectStatus\n )\n );\n })\n ),\n {\n type: \"disconnected\",\n }\n );\n\n const getAccounts = (session: SessionTypes.Struct) =>\n Object.values(session.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n // Format: `polkadot:{genesis_hash}:{account_id}`\n .map((wcAccount) => wcAccount.split(\":\")[2]);\n\n const getSigner = (session: SessionTypes.Struct, address: string) =>\n getPolkadotSignerFromPjs(\n address,\n async (transactionPayload) => {\n const provider = await firstValueFrom(provider$);\n\n return provider.client.request({\n topic: session.topic,\n chainId: `polkadot:${transactionPayload.genesisHash.substring(\n 2,\n 34\n )}`,\n request: {\n method: \"polkadot_signTransaction\",\n params: {\n address,\n transactionPayload,\n },\n },\n });\n },\n async ({ address, data }) => {\n const provider = await firstValueFrom(provider$);\n\n // const chainId = provider.session.topic.split(\":\")[1];\n const chainId = session.topic.split(\":\")[1];\n\n return provider.client.request({\n topic: session.topic,\n chainId: `polkadot:${chainId}`,\n request: {\n method: \"polkadot_signMessage\",\n params: {\n address,\n message: data,\n },\n },\n });\n }\n );\n\n const getSignersFromSession = (\n session: SessionTypes.Struct\n ): WalletConnectAccount[] => {\n const accounts = getAccounts(session);\n return accounts.map((address) => ({\n provider: walletConnectProviderId,\n address,\n signer: getSigner(session, address),\n }));\n };\n\n const accounts$ = walletConnectStatus$.pipeState(\n map((status): WalletConnectAccount[] =>\n status.type === \"connected\" ? getSignersFromSession(status.session) : []\n ),\n withDefault([] as WalletConnectAccount[])\n );\n\n return {\n id: walletConnectProviderId,\n deserialize: (account) =>\n firstValueFrom(\n accounts$.pipe(\n map(\n (accounts) =>\n accounts.find((acc) => acc.address === account.address) ?? null\n )\n )\n ),\n accounts$,\n toggleWalletConnect,\n walletConnectStatus$,\n };\n};\n\nconst tapOnLast =\n <T>(onLast: (value: T | null) => void) =>\n (source$: Observable<T>) =>\n defer(() => {\n let value: T | null = null;\n return source$.pipe(\n tap({\n next(v) {\n value = v;\n },\n complete() {\n onLast(value);\n },\n })\n );\n });\n"],"names":["address"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../src/provider.ts"],"sourcesContent":["import {\n Account,\n addrEq,\n localStorageProvider,\n persistedState,\n PersistenceProvider,\n Plugin,\n} from \"@polkahub/plugin\";\nimport { DefaultedStateObservable, state, withDefault } from \"@react-rxjs/core\";\nimport { createSignal } from \"@react-rxjs/utils\";\nimport type { CaipNetwork } from \"@reown/appkit/core\";\nimport { defineChain } from \"@reown/appkit/networks\";\nimport type { SessionTypes } from \"@walletconnect/types\";\nimport { getPolkadotSignerFromPjs } from \"polkadot-api/pjs-signer\";\nimport {\n catchError,\n combineLatest,\n defer,\n EMPTY,\n filter,\n finalize,\n firstValueFrom,\n from,\n fromEventPattern,\n ignoreElements,\n map,\n Observable,\n of,\n scan,\n shareReplay,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from \"rxjs\";\n\nexport const walletConnectProviderId = \"walletconnect\";\nexport interface WalletConnectAccount extends Account {\n provider: \"walletconnect\";\n}\n\ntype WalletConnectStatus =\n | {\n type: \"disconnected\";\n }\n | {\n type: \"connecting\";\n }\n | {\n type: \"connected\";\n session: SessionTypes.Struct;\n };\n\nexport interface WalletConnectProvider extends Plugin<WalletConnectAccount> {\n id: \"walletconnect\";\n accounts$: DefaultedStateObservable<WalletConnectAccount[]>;\n\n toggleWalletConnect: () => void;\n walletConnectStatus$: DefaultedStateObservable<WalletConnectStatus>;\n}\n\n// https://docs.reown.com/appkit/upgrade/wcm#polkadot\n// https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-13.md\nexport const createPolkadotChain = (\n name: string,\n genesis: string,\n nativeCurrency: CaipNetwork[\"nativeCurrency\"],\n rpcUrl: string,\n subscanUrl?: string\n) => {\n const id = genesis.startsWith(\"0x\")\n ? genesis.slice(2, 34)\n : genesis.slice(0, 32);\n return defineChain({\n id,\n name,\n nativeCurrency,\n rpcUrls: {\n default: {\n http: [rpcUrl.replace(/^ws/, \"http\")],\n wss: rpcUrl.replace(/^http/, \"ws\"),\n },\n },\n blockExplorers: subscanUrl\n ? {\n default: {\n name: \"Subscan\",\n url: `https://${subscanUrl}/`,\n },\n }\n : undefined,\n chainNamespace: \"polkadot\",\n caipNetworkId: `polkadot:${id}`,\n });\n};\n\nexport { defineChain as createGenericChain };\n\nexport const knownCurrencies = {\n DOT: { name: \"Polkadot\", symbol: \"DOT\", decimals: 10 },\n KSM: { name: \"Kusama\", symbol: \"KSM\", decimals: 12 },\n PAS: { name: \"Paseo\", symbol: \"PAS\", decimals: 12 },\n};\nexport const knownChains = {\n polkadot: createPolkadotChain(\n \"Polkadot\",\n \"91b171bb158e2d3848fa23a9f1c25182\",\n knownCurrencies.DOT,\n \"wss://rpc.polkadot.io\",\n \"https://polkadot.subscan.io/\"\n ),\n polkadotAh: createPolkadotChain(\n \"Polkadot AssetHub\",\n \"0x68d56f15f85d3136970ec16946040bc1\",\n knownCurrencies.DOT,\n \"wss://asset-hub-polkadot-rpc.dwellir.com\",\n \"https://assethub-polkadot.subscan.io/\"\n ),\n kusama: createPolkadotChain(\n \"Kusama\",\n \"0xb0a8d493285c2df73290dfb7e61f870f\",\n knownCurrencies.KSM,\n \"wss://kusama-rpc.dwellir.com\",\n \"https://kusama.subscan.io/\"\n ),\n kusamaAh: createPolkadotChain(\n \"Kusama AssetHub\",\n \"0x68d56f15f85d3136970ec16946040bc1\",\n knownCurrencies.KSM,\n \"wss://kusama-asset-hub-rpc.polkadot.io\",\n \"https://assethub-kusama.subscan.io/\"\n ),\n paseo: createPolkadotChain(\n \"paseo\",\n \"0x77afd6190f1554ad45fd0d31aee62aac\",\n knownCurrencies.PAS,\n \"wss://paseo-rpc.dwellir.com\",\n \"https://paseo.subscan.io/\"\n ),\n paseoAh: createPolkadotChain(\n \"paseo AssetHub\",\n \"0xd6eec26135305a8ad257a20d00335728\",\n knownCurrencies.PAS,\n \"wss://asset-hub-paseo-rpc.dwellir.com\",\n \"https://assethub-paseo.subscan.io/\"\n ),\n};\n\nexport const createWalletConnectProvider = (\n projectId: string,\n networks: [CaipNetwork, ...CaipNetwork[]],\n opts?: Partial<{\n persist: PersistenceProvider;\n relayUrl: string;\n }>\n): WalletConnectProvider => {\n const { persist, relayUrl } = {\n persist: localStorageProvider(\"walletconnect-plugin\"),\n relayUrl: \"wss://relay.walletconnect.com\",\n ...opts,\n };\n\n const provider$ = defer(() =>\n import(\"@walletconnect/universal-provider\").then((mod) =>\n mod.default.init({\n projectId,\n relayUrl,\n })\n )\n ).pipe(shareReplay(1));\n\n const walletConnectModal$ = combineLatest([\n provider$,\n defer(() =>\n import(\"@reown/appkit/core\").then(({ createAppKit }) => createAppKit)\n ),\n ]).pipe(\n map(([universalProvider, createAppKit]) =>\n createAppKit({\n projectId,\n universalProvider,\n networks,\n manualWCControl: true,\n })\n ),\n shareReplay(1)\n );\n\n interface InitializedSession {\n uri?: string;\n approval: () => Promise<SessionTypes.Struct>;\n }\n\n const chains = networks.map((chain) => chain.caipNetworkId);\n\n const initializeSession$ = () =>\n provider$.pipe(\n switchMap(\n (provider): Promise<InitializedSession> =>\n provider.client.connect({\n requiredNamespaces: {\n polkadot: {\n methods: [\"polkadot_signTransaction\", \"polkadot_signMessage\"],\n chains,\n events: [\"chainChanged\", \"accountsChanged\"],\n },\n },\n })\n )\n );\n\n const connect$ = combineLatest([\n defer(initializeSession$),\n walletConnectModal$,\n ]).pipe(\n switchMap(([{ uri, approval }, modal]) => {\n if (!uri) return approval();\n\n modal.open({ uri });\n const modal$ = fromEventPattern<{ open: boolean }>(\n (handler) => modal.subscribeState(handler),\n (_, fn) => fn()\n );\n const closed$ = modal$.pipe(filter(({ open }) => !open));\n\n return from(approval()).pipe(\n takeUntil(closed$),\n finalize(() => modal.close())\n );\n }),\n map((session): WalletConnectStatus => ({ type: \"connected\", session })),\n catchError((err) => {\n console.log(\"connect WalletConnect error\", err);\n return of(EMPTY) as unknown as Observable<WalletConnectStatus>;\n }),\n startWith({ type: \"connecting\" } satisfies WalletConnectStatus)\n );\n const disconnect$ = combineLatest([\n provider$,\n import(\"@walletconnect/utils\").then(({ getSdkError }) => getSdkError),\n ]).pipe(\n take(1),\n switchMap(([provider, getSdkError]) =>\n provider.session\n ? provider.client.disconnect({\n topic: provider.session.topic,\n reason: getSdkError(\"USER_DISCONNECTED\"),\n })\n : EMPTY\n ),\n ignoreElements(),\n startWith({\n type: \"disconnected\",\n } satisfies WalletConnectStatus)\n );\n\n const [toggleConnect$, toggleWalletConnect] = createSignal<void>();\n\n const [session$, setSession] = persistedState<SessionTypes.Struct | null>(\n persist,\n null\n );\n\n const walletConnectStatus$ = state<WalletConnectStatus>(\n session$.pipe(\n take(1),\n switchMap((session): Observable<WalletConnectStatus> => {\n const connectState$ = toggleConnect$.pipe(\n scan((acc) => !acc, !!session),\n switchMap((connect) =>\n connect\n ? connect$.pipe(\n tapOnLast((v) => {\n // hack! if connect$ didn't actually complete, toggle it off\n if (v?.type !== \"connected\") {\n toggleWalletConnect();\n }\n })\n )\n : disconnect$\n ),\n tap((v) => {\n if (v.type === \"connected\") {\n setSession(v.session);\n } else {\n setSession(null);\n }\n })\n );\n\n return connectState$.pipe(\n startWith(\n (session\n ? {\n type: \"connected\",\n session,\n }\n : {\n type: \"disconnected\",\n }) satisfies WalletConnectStatus\n )\n );\n })\n ),\n {\n type: \"disconnected\",\n }\n );\n\n const getAccounts = (session: SessionTypes.Struct) =>\n Object.values(session.namespaces)\n .map((namespace) => namespace.accounts)\n .flat()\n // Format: `polkadot:{genesis_hash}:{account_id}`\n .map((wcAccount) => wcAccount.split(\":\")[2]);\n\n const getSigner = (session: SessionTypes.Struct, address: string) =>\n getPolkadotSignerFromPjs(\n address,\n async (transactionPayload) => {\n const provider = await firstValueFrom(provider$);\n\n return provider.client.request({\n topic: session.topic,\n chainId: `polkadot:${transactionPayload.genesisHash.substring(\n 2,\n 34\n )}`,\n request: {\n method: \"polkadot_signTransaction\",\n params: {\n address,\n transactionPayload,\n },\n },\n });\n },\n async ({ address, data }) => {\n const provider = await firstValueFrom(provider$);\n\n // const chainId = provider.session.topic.split(\":\")[1];\n const chainId = session.topic.split(\":\")[1];\n\n return provider.client.request({\n topic: session.topic,\n chainId: `polkadot:${chainId}`,\n request: {\n method: \"polkadot_signMessage\",\n params: {\n address,\n message: data,\n },\n },\n });\n }\n );\n\n const getSignersFromSession = (\n session: SessionTypes.Struct\n ): WalletConnectAccount[] => {\n const accounts = getAccounts(session);\n return accounts.map((address) => ({\n provider: walletConnectProviderId,\n address,\n signer: getSigner(session, address),\n }));\n };\n\n const accounts$ = walletConnectStatus$.pipeState(\n map((status): WalletConnectAccount[] =>\n status.type === \"connected\" ? getSignersFromSession(status.session) : []\n ),\n withDefault([] as WalletConnectAccount[])\n );\n\n return {\n id: walletConnectProviderId,\n deserialize: (account) =>\n firstValueFrom(\n accounts$.pipe(\n map(\n (accounts) =>\n accounts.find((acc) => addrEq(acc.address, account.address)) ??\n null\n )\n )\n ),\n accounts$,\n toggleWalletConnect,\n walletConnectStatus$,\n };\n};\n\nconst tapOnLast =\n <T>(onLast: (value: T | null) => void) =>\n (source$: Observable<T>) =>\n defer(() => {\n let value: T | null = null;\n return source$.pipe(\n tap({\n next(v) {\n value = v;\n },\n complete() {\n onLast(value);\n },\n })\n );\n });\n"],"names":["address"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polkahub/wallet-connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"@walletconnect/utils": "2.22.4",
|
|
31
31
|
"polkadot-api": "^1.20.1",
|
|
32
32
|
"rxjs": "^7.8.2",
|
|
33
|
-
"@polkahub/
|
|
34
|
-
"@polkahub/plugin": "0.
|
|
35
|
-
"@polkahub/
|
|
36
|
-
"@polkahub/
|
|
33
|
+
"@polkahub/ui-components": "0.2.0",
|
|
34
|
+
"@polkahub/plugin": "0.2.0",
|
|
35
|
+
"@polkahub/context": "0.2.0",
|
|
36
|
+
"@polkahub/select-account": "0.2.0"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@types/react": "^19.2.2",
|