From 14bf6944da76f5aca056b85a8e7a831be1b845e5 Mon Sep 17 00:00:00 2001 From: Ryan Lee Date: Fri, 12 Jul 2024 11:35:31 -0400 Subject: [PATCH] [TESTING]: support @substrate/discovery --- package.json | 1 + packages/extension/package.json | 6 + packages/extension/src/background.ts | 9 + packages/extension/src/constants.ts | 4 + packages/extension/src/content.ts | 6 + packages/extension/src/page.ts | 96 +++++++++ ...e-light-client-extension-helpers-2.0.3.tgz | Bin 0 -> 61876 bytes yarn.lock | 191 +++++++++++++++++- 8 files changed, 309 insertions(+), 4 deletions(-) create mode 100644 packages/extension/src/constants.ts create mode 100644 packages/extension/substrate-light-client-extension-helpers-2.0.3.tgz diff --git a/package.json b/package.json index 0348d2cefc..594825ede9 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@polkadot/util-crypto": "^12.6.2", "@polkadot/x-fetch": "^12.6.2", "safe-buffer": "^5.2.1", + "smoldot": "2.0.29", "typescript": "^5.3.3" } } diff --git a/packages/extension/package.json b/packages/extension/package.json index 6e4952cc68..8306178d86 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -17,10 +17,16 @@ "type": "module", "version": "0.48.3-3-x", "dependencies": { + "@polkadot-api/pjs-signer": "^0.2.1", + "@polkadot-api/utils": "^0.1.0", "@polkadot/api": "^12.0.2", "@polkadot/extension-base": "0.48.3-3-x", "@polkadot/extension-inject": "0.48.3-3-x", "@polkadot/extension-ui": "0.48.3-3-x", + "@substrate/connect-discovery": "^0.0.6", + "@substrate/light-client-extension-helpers": "./substrate-light-client-extension-helpers-2.0.3.tgz", + "@substrate/smoldot-discovery": "^0.0.7", + "smoldot": "^2.0.29", "tslib": "^2.6.2" }, "devDependencies": { diff --git a/packages/extension/src/background.ts b/packages/extension/src/background.ts index 962afcda2b..decdc0dbbc 100644 --- a/packages/extension/src/background.ts +++ b/packages/extension/src/background.ts @@ -9,6 +9,10 @@ import '@polkadot/extension-inject/crossenv'; import type { RequestSignatures, TransportRequestMessage } from '@polkadot/extension-base/background/types'; +import { ksmcc3, polkadot, westend2 } from '@substrate/connect-known-chains'; +import { register } from '@substrate/light-client-extension-helpers/background'; +import { start } from '@substrate/light-client-extension-helpers/smoldot'; + import { handlers, withErrorLog } from '@polkadot/extension-base/background'; import { PORT_CONTENT, PORT_EXTENSION } from '@polkadot/extension-base/defaults'; import { AccountsStore } from '@polkadot/extension-base/stores'; @@ -16,6 +20,11 @@ import { keyring } from '@polkadot/ui-keyring'; import { assert } from '@polkadot/util'; import { cryptoWaitReady } from '@polkadot/util-crypto'; +register({ + getWellKnownChainSpecs: () => Promise.resolve([polkadot, ksmcc3, westend2]), + smoldotClient: start({ maxLogLevel: 4 }) +}); + // setup the notification (same a FF default background, white text) withErrorLog(() => chrome.action.setBadgeBackgroundColor({ color: '#d90000' })); diff --git a/packages/extension/src/constants.ts b/packages/extension/src/constants.ts new file mode 100644 index 0000000000..1e6a71028f --- /dev/null +++ b/packages/extension/src/constants.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2024 @polkadot/extension authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export const CHANNEL_ID = 'polkadot-js-extension'; diff --git a/packages/extension/src/content.ts b/packages/extension/src/content.ts index 9cfb10f241..bb292554a9 100644 --- a/packages/extension/src/content.ts +++ b/packages/extension/src/content.ts @@ -3,9 +3,15 @@ import type { Message } from '@polkadot/extension-base/types'; +import { register } from '@substrate/light-client-extension-helpers/content-script'; + import { MESSAGE_ORIGIN_CONTENT, MESSAGE_ORIGIN_PAGE, PORT_CONTENT } from '@polkadot/extension-base/defaults'; import { chrome } from '@polkadot/extension-inject/chrome'; +import { CHANNEL_ID } from './constants'; + +register(CHANNEL_ID); + // connect to the extension const port = chrome.runtime.connect({ name: PORT_CONTENT }); diff --git a/packages/extension/src/page.ts b/packages/extension/src/page.ts index 7b48812073..8087b61fdc 100644 --- a/packages/extension/src/page.ts +++ b/packages/extension/src/page.ts @@ -1,15 +1,111 @@ // Copyright 2019-2024 @polkadot/extension authors & contributors // SPDX-License-Identifier: Apache-2.0 +import type { Unstable } from '@substrate/connect-discovery'; +import type { SmoldotExtensionProviderDetail } from '@substrate/smoldot-discovery/types'; import type { RequestSignatures, TransportRequestMessage } from '@polkadot/extension-base/background/types'; import type { Message } from '@polkadot/extension-base/types'; +import { createTx } from '@substrate/light-client-extension-helpers/tx-helper'; +import { getLightClientProvider } from '@substrate/light-client-extension-helpers/web-page'; +import { connector } from '@substrate/smoldot-discovery'; + import { MESSAGE_ORIGIN_CONTENT } from '@polkadot/extension-base/defaults'; import { enable, handleResponse, redirectIfPhishing } from '@polkadot/extension-base/page'; import { injectExtension } from '@polkadot/extension-inject'; +import { connectInjectedExtension } from '@polkadot-api/pjs-signer'; +import { fromHex, toHex } from '@polkadot-api/utils'; +import { CHANNEL_ID } from './constants.js'; import { packageInfo } from './packageInfo.js'; +const PROVIDER_INFO = { + icon: "data:image/svg+xml,", + name: 'Polkadot JS Extension', + rdns: 'io.github.paritytech.PolkadotJsExtension', + uuid: crypto.randomUUID() +}; + +const lightClientProviderPromise = getLightClientProvider(CHANNEL_ID); + +// #region Smoldot Discovery Provider +{ + const provider = lightClientProviderPromise + .then((provider) => connector.make({ lightClientProvider: provider })); + + const detail: SmoldotExtensionProviderDetail = Object.freeze({ + info: PROVIDER_INFO, + kind: 'smoldot-v1', + provider + }); + + window.addEventListener( + 'substrateDiscovery:requestProvider', + ({ detail: { onProvider } }) => onProvider(detail) + ); + + window.dispatchEvent( + new CustomEvent('substrateDiscovery:announceProvider', { + detail + }) + ); +} +// #endregion + +// #region Connect Discovery Provider +{ + const provider = lightClientProviderPromise.then((lightClientProvider): Unstable.Provider => ({ + ...lightClientProvider, + async createTx (chainId: string, from: string, callData: string) { + const chains = Object.values(lightClientProvider.getChains()); + const chain = chains.find(({ genesisHash }) => genesisHash === chainId); + + if (!chain) { + throw new Error('unknown chain'); + } + + const injectedExt = await connectInjectedExtension('polkadot-js'); + + const account = injectedExt.getAccounts() + .find((account) => toHex(account.polkadotSigner.publicKey) === from); + + if (!account) { + throw new Error('no account'); + } + + const signer = account.polkadotSigner; + + const tx = await createTx(chain.connect)({ callData: fromHex(callData), signer }); + + return toHex(tx); + }, + async getAccounts (_chainId: string) { + const injectedExt = await connectInjectedExtension('polkadot-js'); + const accounts = injectedExt.getAccounts(); + + return accounts; + } + })); + + const detail: Unstable.SubstrateConnectProviderDetail = Object.freeze({ + info: PROVIDER_INFO, + kind: 'substrate-connect-unstable', + provider + }); + + window.addEventListener( + 'substrateDiscovery:requestProvider', + ({ detail: { onProvider } }) => onProvider(detail) + ); + + window.dispatchEvent( + new CustomEvent('substrateDiscovery:announceProvider', { + detail + }) + ); +} +// #endregion + function inject () { injectExtension(enable, { name: 'polkadot-js', diff --git a/packages/extension/substrate-light-client-extension-helpers-2.0.3.tgz b/packages/extension/substrate-light-client-extension-helpers-2.0.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..98573e6e274cdd7df45a0acc65d4d555c42518bd GIT binary patch literal 61876 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.8.0" + checksum: 10/91b95a06e3ddd477c2489110d7cffdcfaf87a222054b437013c701dc43eac6a5d30438b1ac8fb130166ba039a67808e6199ccb3b2eaac7dcf8d2ef7a835f047b + languageName: node + linkType: hard + +"@polkadot-api/pjs-signer@npm:^0.2.1": + version: 0.2.1 + resolution: "@polkadot-api/pjs-signer@npm:0.2.1" + dependencies: + "@polkadot-api/metadata-builders": "npm:0.3.1" + "@polkadot-api/polkadot-signer": "npm:0.0.2" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/ace9e744b29e4295220a17252a1d652a2d84a671b162fcf644c23af343a4b8038925cb8f409f7720dfab72e0fff0732b8cfa982666b749bee752062b855d573b + languageName: node + linkType: hard + +"@polkadot-api/polkadot-signer@npm:0.0.2": + version: 0.0.2 + resolution: "@polkadot-api/polkadot-signer@npm:0.0.2" + dependencies: + "@polkadot-api/metadata-builders": "npm:0.3.1" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/cfec626b0c5e9a50923ed657431e7bf68c2c06f30786d20b6101ac8757757a9b181a510ec496dd5c4f7d3389e117d493234d3f8a56ac55b4a9cb95efce3bb19c + languageName: node + linkType: hard + +"@polkadot-api/signer@npm:~0.0.2": + version: 0.0.2 + resolution: "@polkadot-api/signer@npm:0.0.2" + dependencies: + "@polkadot-api/polkadot-signer": "npm:0.0.2" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/222f8974bf6ea0ff0939cc499a5c6c0992887262b0bd869fbfa8a57a276762fa6c2653c213352ab604672b3137214a1c73ccb9f9eca72ca7381023e36a82140d + languageName: node + linkType: hard + "@polkadot-api/substrate-bindings@npm:0.0.1": version: 0.0.1 resolution: "@polkadot-api/substrate-bindings@npm:0.0.1" @@ -701,6 +787,18 @@ __metadata: languageName: node linkType: hard +"@polkadot-api/substrate-bindings@npm:0.6.0, @polkadot-api/substrate-bindings@npm:^0.6.0": + version: 0.6.0 + resolution: "@polkadot-api/substrate-bindings@npm:0.6.0" + dependencies: + "@noble/hashes": "npm:^1.3.1" + "@polkadot-api/utils": "npm:0.1.0" + "@scure/base": "npm:^1.1.1" + scale-ts: "npm:^1.6.0" + checksum: 10/01926a9083f608514a55c3d23563ebef139e2963d4adbebe7dcd99b65e1a08f1551fc0e147e787a31c749402767333c96eb1399f85a6c71654cfa1cc9d26e445 + languageName: node + linkType: hard + "@polkadot-api/substrate-client@npm:0.0.1": version: 0.0.1 resolution: "@polkadot-api/substrate-client@npm:0.0.1" @@ -708,6 +806,16 @@ __metadata: languageName: node linkType: hard +"@polkadot-api/substrate-client@npm:^0.1.4": + version: 0.1.4 + resolution: "@polkadot-api/substrate-client@npm:0.1.4" + dependencies: + "@polkadot-api/json-rpc-provider": "npm:0.0.1" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/e7172696db404676d297cd5661b195de110593769f9ce37f32bdb5576ca00c56d32fcb04172a91102986fdda27a13962d909ad9466869a2991611d658ee6ac92 + languageName: node + linkType: hard + "@polkadot-api/utils@npm:0.0.1": version: 0.0.1 resolution: "@polkadot-api/utils@npm:0.0.1" @@ -715,6 +823,13 @@ __metadata: languageName: node linkType: hard +"@polkadot-api/utils@npm:0.1.0, @polkadot-api/utils@npm:^0.1.0": + version: 0.1.0 + resolution: "@polkadot-api/utils@npm:0.1.0" + checksum: 10/c557daea91ddb03e16b93c7c5a75533495c7b77cbbbdc2b4f5e97af0c1e1132a47e434c9c729a08241bd7b3624b6644ac0950f914aa8b29a0f419bf0fd224c7c + languageName: node + linkType: hard + "@polkadot/api-augment@npm:12.0.2": version: 12.0.2 resolution: "@polkadot/api-augment@npm:12.0.2" @@ -1041,11 +1156,16 @@ __metadata: version: 0.0.0-use.local resolution: "@polkadot/extension@workspace:packages/extension" dependencies: + "@polkadot-api/pjs-signer": "npm:^0.2.1" + "@polkadot-api/utils": "npm:^0.1.0" "@polkadot/api": "npm:^12.0.2" "@polkadot/dev": "npm:^0.79.3" "@polkadot/extension-base": "npm:0.48.3-3-x" "@polkadot/extension-inject": "npm:0.48.3-3-x" "@polkadot/extension-ui": "npm:0.48.3-3-x" + "@substrate/connect-discovery": "npm:^0.0.6" + "@substrate/light-client-extension-helpers": ./substrate-light-client-extension-helpers-2.0.3.tgz + "@substrate/smoldot-discovery": "npm:^0.0.7" browser-resolve: "npm:^2.0.0" buffer: "npm:^6.0.3" copy-webpack-plugin: "npm:^11.0.0" @@ -1055,6 +1175,7 @@ __metadata: html-loader: "npm:^4.2.0" path-browserify: "npm:^1.0.1" process: "npm:^0.11.10" + smoldot: "npm:^2.0.29" stream-browserify: "npm:^3.0.0" ts-loader: "npm:^9.5.1" tslib: "npm:^2.6.2" @@ -1850,6 +1971,15 @@ __metadata: languageName: node linkType: hard +"@substrate/connect-discovery@npm:^0.0.6": + version: 0.0.6 + resolution: "@substrate/connect-discovery@npm:0.0.6" + dependencies: + "@substrate/discovery": "npm:^0.0.1" + checksum: 10/d0b8de77291395265a515e0fa415c158a1299801211c6730e99d89024409274490474c4cdfc0d641ad5cfb8c16fdc4b786858d5650dd2b1cd35a09de460caa21 + languageName: node + linkType: hard + "@substrate/connect-extension-protocol@npm:^2.0.0": version: 2.0.0 resolution: "@substrate/connect-extension-protocol@npm:2.0.0" @@ -1864,6 +1994,13 @@ __metadata: languageName: node linkType: hard +"@substrate/connect-known-chains@npm:^1.1.9": + version: 1.1.9 + resolution: "@substrate/connect-known-chains@npm:1.1.9" + checksum: 10/d8c4f2d7b2b8489811c1319bf4e137bf7cce66f285e9906c100caf4e396202107d235bcaabe8025b56bea0b92204e78cfa19488307afb60d0d1015eb34a3077d + languageName: node + linkType: hard + "@substrate/connect@npm:0.8.10": version: 0.8.10 resolution: "@substrate/connect@npm:0.8.10" @@ -1876,6 +2013,41 @@ __metadata: languageName: node linkType: hard +"@substrate/discovery@npm:^0.0.1": + version: 0.0.1 + resolution: "@substrate/discovery@npm:0.0.1" + checksum: 10/8f92261f78f8fba1418f703656cf661fa4fd881571894efdd5d8c70523293699fe59ba7fce234d009a4836fa0af102c1c5ed02d0467066d8b29951127f9a86d5 + languageName: node + linkType: hard + +"@substrate/light-client-extension-helpers@file:./substrate-light-client-extension-helpers-2.0.3.tgz::locator=%40polkadot%2Fextension%40workspace%3Apackages%2Fextension": + version: 2.0.3 + resolution: "@substrate/light-client-extension-helpers@file:./substrate-light-client-extension-helpers-2.0.3.tgz#./substrate-light-client-extension-helpers-2.0.3.tgz::hash=5123fb&locator=%40polkadot%2Fextension%40workspace%3Apackages%2Fextension" + dependencies: + "@polkadot-api/codegen": "npm:^0.6.0" + "@polkadot-api/json-rpc-provider-proxy": "npm:^0.1.0" + "@polkadot-api/metadata-builders": "npm:^0.3.0" + "@polkadot-api/observable-client": "npm:^0.3.1" + "@polkadot-api/signer": "npm:~0.0.2" + "@polkadot-api/substrate-bindings": "npm:^0.6.0" + "@polkadot-api/substrate-client": "npm:^0.1.4" + "@polkadot-api/utils": "npm:^0.1.0" + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.9" + rxjs: "npm:^7.8.1" + peerDependencies: + "@polkadot-api/json-rpc-provider": ~0.0 + "@polkadot-api/polkadot-signer": ~0.0 + smoldot: 2.x + peerDependenciesMeta: + "@polkadot-api/json-rpc-provider": + optional: true + "@polkadot-api/polkadot-signer": + optional: true + checksum: 10/d43b9717b918145e63dc1890a210f390fb8f9b6b1314dc7ce6b64452e91e0ae3e5da664ddaf7ec36e7b879a3e9dcce8501ea1d609cae5f788d8acbcaeeb23961 + languageName: node + linkType: hard + "@substrate/light-client-extension-helpers@npm:^0.0.6": version: 0.0.6 resolution: "@substrate/light-client-extension-helpers@npm:0.0.6" @@ -1893,6 +2065,17 @@ __metadata: languageName: node linkType: hard +"@substrate/smoldot-discovery@npm:^0.0.7": + version: 0.0.7 + resolution: "@substrate/smoldot-discovery@npm:0.0.7" + dependencies: + "@substrate/discovery": "npm:^0.0.1" + peerDependencies: + "@substrate/light-client-extension-helpers": ^2 + checksum: 10/e13be406980cd74c48910285b991acc17411ad0289cdcebec9f073d93dddd11cd65527ba6c518e56e0103e89fa3286f3431b7efca8bd35863be6479faf6a3561 + languageName: node + linkType: hard + "@substrate/ss58-registry@npm:^1.44.0": version: 1.44.0 resolution: "@substrate/ss58-registry@npm:1.44.0" @@ -12126,12 +12309,12 @@ __metadata: languageName: node linkType: hard -"smoldot@npm:2.0.22": - version: 2.0.22 - resolution: "smoldot@npm:2.0.22" +"smoldot@npm:2.0.29": + version: 2.0.29 + resolution: "smoldot@npm:2.0.29" dependencies: ws: "npm:^8.8.1" - checksum: 10/8d63720ff7aee9ff4cbfb3d6952c68781aaaecf49fcb20d8b76919e854975b029071778c4c3bd50a18a4c3e0c96857b2b6daa526bbad4a3bee20f2aad8dfe388 + checksum: 10/428973eead8cc8edeb8ff8e866b09a0ff2bab8f3efe3fab92ea942e24f7f135d3c2476eda8968beec3d125cf74e99acdeef3fb6fd427acbff65dcbd92da7064b languageName: node linkType: hard