diff --git a/packages/atlas/atlas.config.yml b/packages/atlas/atlas.config.yml index ad4db4cb70..906ac34eec 100644 --- a/packages/atlas/atlas.config.yml +++ b/packages/atlas/atlas.config.yml @@ -276,6 +276,8 @@ features: name: Atlas description: Web3 video streaming platform icons: ['https://dev.gleev.xyz/favicon.ico'] + metamask: + snapId: '$VITE_METAMASK_SNAP_ID' # Snap ID for Metamask - npm:@chainsafe/polkadot-snap or (`local:http://localhost:8081` for local development) playback: playbackRates: [2, 1.5, 1.25, 1, 0.5, 0.25] # Playback rates available in the player comments: diff --git a/packages/atlas/package.json b/packages/atlas/package.json index 23b29b3503..a21c5c357d 100644 --- a/packages/atlas/package.json +++ b/packages/atlas/package.json @@ -33,6 +33,7 @@ }, "dependencies": { "@apollo/client": "3.7.2", + "@chainsafe/metamask-polkadot-adapter": "^0.6.0", "@elastic/apm-rum": "^5.12.0", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", @@ -112,6 +113,7 @@ "zustand": "^3.7.2" }, "devDependencies": { + "@chainsafe/metamask-polkadot-types": "^0.7.0", "@emotion/babel-plugin": "^11.10.5", "@graphql-codegen/cli": "^2.16.1", "@graphql-codegen/introspection": "^2.2.3", diff --git a/packages/atlas/src/.env b/packages/atlas/src/.env index 4ed1ec82cd..48abda15e1 100644 --- a/packages/atlas/src/.env +++ b/packages/atlas/src/.env @@ -18,6 +18,7 @@ VITE_GEOLOCATION_SERVICE_URL=https://geolocation.joystream.org VITE_HCAPTCHA_SITE_KEY=41cae189-7676-4f6b-aa56-635be26d3ceb VITE_CHANGENOW_PUBLIC_API_KEY=0d8a58104f82b860a70e9460bccf62ae1e0fca4a93fd7e0c27c90448187b988f VITE_WALLET_CONNECT_PROJECT_ID=33b2609463e399daee8c51726546c8dd +VITE_METAMASK_SNAP_ID=npm:@chainsafe/polkadot-snap # YPP configuration VITE_GOOGLE_CONSOLE_CLIENT_ID=246331758613-rc1psegmsr9l4e33nqu8rre3gno5dsca.apps.googleusercontent.com @@ -37,6 +38,7 @@ VITE_PRODUCTION_ORION_AUTH_URL=https://auth.gleev.xyz/api/v1 VITE_PRODUCTION_ORION_URL=https://orion.gleev.xyz/graphql VITE_PRODUCTION_QUERY_NODE_SUBSCRIPTION_URL=wss://orion.joystream.org/graphql VITE_PRODUCTION_NODE_URL=wss://rpc.joystream.org:9944 +VITE_PRODUCTION_NODE_HTTP_URL=https://rpc.joystream.org VITE_PRODUCTION_FAUCET_URL=https://faucet.joystream.org/member-faucet/register VITE_PRODUCTION_YPP_FAUCET_URL=https://18.184.136.237.nip.io/membership @@ -45,6 +47,7 @@ VITE_DEVELOPMENT_ORION_AUTH_URL=https://atlas-dev.joystream.org/api/v1 VITE_DEVELOPMENT_ORION_URL=https://atlas-dev.joystream.org/orion-api/graphql VITE_DEVELOPMENT_QUERY_NODE_SUBSCRIPTION_URL=wss://atlas-dev.joystream.org/orion-v2/graphql VITE_DEVELOPMENT_NODE_URL=wss://atlas-dev.joystream.org/ws-rpc +VITE_DEVELOPMENT_NODE_HTTP_URL=https://atlas-dev.joystream.org/http-rpc VITE_DEVELOPMENT_FAUCET_URL=https://atlas-dev.joystream.org/member-faucet/register VITE_DEVELOPMENT_YPP_FAUCET_URL=https://50.19.175.219.nip.io/memberships @@ -53,15 +56,16 @@ VITE_NEXT_ORION_AUTH_URL=https://3.73.121.180.nip.io/api/v1 VITE_NEXT_ORION_URL=https://3.73.121.180.nip.io/orion/graphql VITE_NEXT_QUERY_NODE_SUBSCRIPTION_URL=wss://3.73.121.180.nip.io/orion/graphql VITE_NEXT_NODE_URL=wss://3.73.121.180.nip.io/ws-rpc +VITE_NEXT_NODE_HTTP_URL=https://3.73.121.180.nip.io/http-rpc VITE_NEXT_FAUCET_URL=https://3.73.121.180.nip.io/member-faucet/register VITE_NEXT_YPP_FAUCET_URL=wss://3.73.121.180.nip.io/ws-rpc - # Local development env URLs VITE_LOCAL_ORION_AUTH_URL=http://localhost:4074/api/v1 VITE_LOCAL_ORION_URL=http://localhost:4350/graphql VITE_LOCAL_QUERY_NODE_SUBSCRIPTION_URL=ws://localhost:8081/graphql VITE_LOCAL_NODE_URL=ws://localhost:9944/ws-rpc +VITE_LOCAL_NODE_HTTP_URL=http://localhost:9933/http-rpc VITE_LOCAL_FAUCET_URL=http://localhost:3002/register VITE_LOCAL_YPP_FAUCET_URL=https://52.204.147.11.nip.io/membership diff --git a/packages/atlas/src/config/configSchema.ts b/packages/atlas/src/config/configSchema.ts index 27133b9733..e186a284c6 100644 --- a/packages/atlas/src/config/configSchema.ts +++ b/packages/atlas/src/config/configSchema.ts @@ -130,6 +130,9 @@ export const configSchema = z.object({ icons: z.array(z.string()).nullable(), }), }), + metamask: z.object({ + snapId: z.string().nullable(), + }), playback: z.object({ playbackRates: z.array(z.number()) }), comments: z.object({ reactions: z.array(z.object({ id: z.number(), emoji: z.string(), name: z.string() })), diff --git a/packages/atlas/src/config/env.ts b/packages/atlas/src/config/env.ts index a6ea858da4..7974ac875a 100644 --- a/packages/atlas/src/config/env.ts +++ b/packages/atlas/src/config/env.ts @@ -37,6 +37,7 @@ export const ORION_GRAPHQL_URL = readEnv('ORION_URL') export const ORION_AUTH_URL = readEnv('ORION_AUTH_URL') export const QUERY_NODE_GRAPHQL_SUBSCRIPTION_URL = readEnv('QUERY_NODE_SUBSCRIPTION_URL') export const NODE_URL = readEnv('NODE_URL') +export const NODE_HTTP_URL = readEnv('NODE_HTTP_URL') export const FAUCET_URL = readEnv('FAUCET_URL') export const YPP_FAUCET_URL = readEnv('YPP_FAUCET_URL') diff --git a/packages/atlas/src/joystream-lib/config.ts b/packages/atlas/src/joystream-lib/config.ts index a95001028e..48e7ec5366 100644 --- a/packages/atlas/src/joystream-lib/config.ts +++ b/packages/atlas/src/joystream-lib/config.ts @@ -4,6 +4,7 @@ export const NFT_DEFAULT_EXTENSION_PERIOD = 5 export const PERBILL_ONE_PERCENT = 10_000_000 export const PERMILL_PER_PERCENT = 10_000 export const JOYSTREAM_SS58_PREFIX = 126 -export const HAPI_TO_JOY_RATE = 10 ** 10 +export const JOY_DECIMALS = 10 +export const HAPI_TO_JOY_RATE = 10 ** JOY_DECIMALS export const AMM_DESCO_CURVE_CONST = 0.4522 diff --git a/packages/atlas/src/providers/wallet/tmpwallet/metamask.ts b/packages/atlas/src/providers/wallet/tmpwallet/metamask.ts new file mode 100644 index 0000000000..4f79811c9f --- /dev/null +++ b/packages/atlas/src/providers/wallet/tmpwallet/metamask.ts @@ -0,0 +1,85 @@ +import { enablePolkadotSnap } from '@chainsafe/metamask-polkadot-adapter' +import { MetamaskSnapApi } from '@chainsafe/metamask-polkadot-adapter/build/types' +import { SnapNetworks } from '@chainsafe/metamask-polkadot-types' +import { Signer } from '@polkadot/types/types' +import { BaseDotsamaWallet, SubscriptionFn, WalletAccount } from '@talismn/connect-wallets' + +import { atlasConfig } from '@/config' +import { NODE_HTTP_URL } from '@/config/env' +import { JOY_DECIMALS } from '@/joystream-lib/config' + +import { JOYSTREAM_SS58_PREFIX } from './consts' + +const networkName = 'joystream' as SnapNetworks +const addressPrefix = JOYSTREAM_SS58_PREFIX +const unit = { symbol: atlasConfig.joystream.tokenTicker, decimals: JOY_DECIMALS } + +export class MetamaskWallet extends BaseDotsamaWallet { + protected _snapId: string + protected _snapApi: MetamaskSnapApi | undefined + protected _accounts: WalletAccount[] | undefined + protected _txId = 0 + + public get installed(): boolean { + return !!window.ethereum && '_metamask' in window.ethereum + } + + constructor(snapId: string) { + super() + + this.extensionName = 'Metamask' + this.title = 'Metamask' + this.logo = { src: 'https://metamask.io/images/metamask-logo.png', alt: 'Metamask Logo' } + + this._snapId = snapId + } + + public enable = async (): Promise => { + const snap = await enablePolkadotSnap({ networkName, wsRpcUrl: NODE_HTTP_URL, addressPrefix, unit }, this._snapId) + + this._snapApi = await snap.getMetamaskSnapApi() + const address = await this._snapApi.getAddress() + this._accounts = [ + { + name: 'Metamask account', + address, + source: this.extensionName, + }, + ] + + this._snapApi.signPayloadJSON + } + + public getAccounts = async (): Promise => { + return this._accounts ?? [] + } + + public subscribeAccounts: (callback: SubscriptionFn) => Promise<() => void> = (callback) => { + callback(this._accounts ?? []) + return Promise.resolve(() => undefined) + } + + public get signer(): Signer { + return { + signPayload: async (payload) => { + if (!this._snapApi) { + throw Error('Metamask was accessed before it was enabled') + } + + const signature = (await this._snapApi.signPayloadJSON(payload)) as `0x${string}` + + return { id: this._txId++, signature } + }, + + signRaw: async (raw) => { + if (!this._snapApi) { + throw Error('Metamask was accessed before it was enabled') + } + + const signature = (await this._snapApi.signPayloadRaw(raw)) as `0x${string}` + + return { id: this._txId++, signature } + }, + } + } +} diff --git a/packages/atlas/src/providers/wallet/wallet.helpers.ts b/packages/atlas/src/providers/wallet/wallet.helpers.ts index b25c309248..a80834c934 100644 --- a/packages/atlas/src/providers/wallet/wallet.helpers.ts +++ b/packages/atlas/src/providers/wallet/wallet.helpers.ts @@ -2,6 +2,8 @@ import { BaseDotsamaWallet, Wallet, getWallets } from '@talismn/connect-wallets' import { atlasConfig } from '@/config' +import { MetamaskWallet } from './tmpwallet/metamask' + export const getWalletsList = () => { const supportedWallets = getWallets() const supportedWalletsNames = supportedWallets.map((wallet) => wallet.extensionName) @@ -26,10 +28,13 @@ export const getWalletsList = () => { installed: true, } as Wallet + const metamaskSnapId = atlasConfig.features.metamask.snapId + return [ ...supportedWallets, ...unknownWallets, ...(atlasConfig.features.walletConnect.walletConnectProjectId ? [wcWallet] : []), + ...(metamaskSnapId ? [new MetamaskWallet(metamaskSnapId)] : []), ] } diff --git a/packages/atlas/src/providers/wallet/wallet.provider.tsx b/packages/atlas/src/providers/wallet/wallet.provider.tsx index 4c023d6403..46f91354db 100644 --- a/packages/atlas/src/providers/wallet/wallet.provider.tsx +++ b/packages/atlas/src/providers/wallet/wallet.provider.tsx @@ -99,9 +99,7 @@ export const WalletProvider: FC = ({ children }) => { await selectedWallet.enable(atlasConfig.general.appName) - // taken from https://github.com/TalismanSociety/talisman-connect/blob/47cfefee9f1333326c0605c159d6ee8ebfba3e84/libs/wallets/src/lib/base-dotsama-wallet/index.ts#L98-L107 - // should be part of future talisman-connect release - const accounts = await selectedWallet.extension.accounts.get() + const accounts = await selectedWallet.getAccounts() const accountsWithWallet = accounts .filter(filterUnsupportedAccounts) diff --git a/yarn.lock b/yarn.lock index 72579a0d15..a21b66877c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1679,6 +1679,26 @@ __metadata: languageName: node linkType: hard +"@chainsafe/metamask-polkadot-adapter@npm:^0.6.0": + version: 0.6.0 + resolution: "@chainsafe/metamask-polkadot-adapter@npm:0.6.0" + dependencies: + "@polkadot/api": ^10.9.1 + "@polkadot/extension-inject": ^0.46.5 + "@polkadot/types-augment": ^10.9.1 + checksum: ac8f740b7f57655b03b076b194234c5d2ec3906f1c2cacd8696fa3afc675c5cf19b37e171cef9786b7f8196f8fe88f765f31caf3e359556c6f428978f14a56c6 + languageName: node + linkType: hard + +"@chainsafe/metamask-polkadot-types@npm:^0.7.0": + version: 0.7.0 + resolution: "@chainsafe/metamask-polkadot-types@npm:0.7.0" + dependencies: + "@polkadot/api": ^10.9.1 + checksum: 50078a332d1e4776b7eaacc193180d6c715f2b35c6e49f3e9bf526018383b1d67044839e3f6d074ca27b3081593cc98a01546f0676d535f2c378d5a1344296f1 + languageName: node + linkType: hard + "@cloudflare/workers-types@npm:^4.20221111.1": version: 4.20240502.0 resolution: "@cloudflare/workers-types@npm:4.20240502.0" @@ -3011,6 +3031,8 @@ __metadata: resolution: "@joystream/atlas@workspace:packages/atlas" dependencies: "@apollo/client": 3.7.2 + "@chainsafe/metamask-polkadot-adapter": ^0.6.0 + "@chainsafe/metamask-polkadot-types": ^0.7.0 "@elastic/apm-rum": ^5.12.0 "@emotion/babel-plugin": ^11.10.5 "@emotion/react": ^11.10.5 @@ -3699,7 +3721,7 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.2.0, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:^1.4.0": +"@noble/hashes@npm:1.4.0, @noble/hashes@npm:^1.2.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:^1.4.0": version: 1.4.0 resolution: "@noble/hashes@npm:1.4.0" checksum: 8ba816ae26c90764b8c42493eea383716396096c5f7ba6bea559993194f49d80a73c081f315f4c367e51bd2d5891700bcdfa816b421d24ab45b41cb03e4f3342 @@ -3940,6 +3962,70 @@ __metadata: languageName: node linkType: hard +"@polkadot-api/client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + dependencies: + "@polkadot-api/metadata-builders": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/substrate-bindings": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/substrate-client": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/utils": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + peerDependencies: + rxjs: ">=7.8.0" + checksum: 98529e8088a4cdbc63a02c87b47f4de1373fb5ce7c0231da1b32baf8125256a6125848a90edf12f93db86bb72f61017d9a23cf0697cc97c8568c491ff64e68fc + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider-proxy@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + checksum: 4c47c978806bc62fff1b5788241cd59457d62ebe347b401b0a621d56d301f7b205aeb20ade24b67c2a5d63a497738694cb4030f79d5009460d17a546e8723f81 + languageName: node + linkType: hard + +"@polkadot-api/json-rpc-provider@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + checksum: 00d4e1f7900a1739e1ba7a3b13d399e5540a27d5c026c985aa4afdf865fb37da4aa4029a3a740932615482cdf18e657011ef05e7e61c2de04016f68fbb343ae7 + languageName: node + linkType: hard + +"@polkadot-api/metadata-builders@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/metadata-builders@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + dependencies: + "@polkadot-api/substrate-bindings": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/utils": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + checksum: 7fb6264fbe7a49c8f8848fb36f51fa9882c504fc026b0ac28cf2d83890cfa2c2ce7a3dd8c01aed28b991cb4d4a64910557111afe8792375aea2aba1b2aabe233 + languageName: node + linkType: hard + +"@polkadot-api/substrate-bindings@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/substrate-bindings@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + dependencies: + "@noble/hashes": ^1.3.1 + "@polkadot-api/utils": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@scure/base": ^1.1.1 + scale-ts: ^1.6.0 + checksum: 3640063696c4655522587bdb4f2ca99eb2772ee13236965418bf6e97026a1c52cec8a5996560eedac453365e96b51e35283464b4dda0d28d9deb398fe8c3551c + languageName: node + linkType: hard + +"@polkadot-api/substrate-client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/substrate-client@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + checksum: 3e04f430be68d54173a3b3c1fae33f3cfe2e61c959eb431f89bd306500b9da7e009c02553cf2464a6eb15c5bbe7aa27c45f6ea1371bbfcdddc08519dedcaf4a3 + languageName: node + linkType: hard + +"@polkadot-api/utils@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version: 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + resolution: "@polkadot-api/utils@npm:0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + checksum: 0bf7b078a53f1eaf2f4cec3c41f3e82fc5afb4a347dcbc7b538723aeb1b4893834a2f1aeed425443a25ee0e1a6472c85d8be600e73a6d25ea16a0748d25c00bf + languageName: node + linkType: hard + "@polkadot/api-augment@npm:10.7.1": version: 10.7.1 resolution: "@polkadot/api-augment@npm:10.7.1" @@ -4027,6 +4113,24 @@ __metadata: languageName: node linkType: hard +"@polkadot/extension-inject@npm:^0.46.5": + version: 0.46.9 + resolution: "@polkadot/extension-inject@npm:0.46.9" + dependencies: + "@polkadot/api": ^10.12.4 + "@polkadot/rpc-provider": ^10.12.4 + "@polkadot/types": ^10.12.4 + "@polkadot/util": ^12.6.2 + "@polkadot/util-crypto": ^12.6.2 + "@polkadot/x-global": ^12.6.2 + tslib: ^2.6.2 + peerDependencies: + "@polkadot/api": "*" + "@polkadot/util": "*" + checksum: 1072bdad808375ebd2fd154f087f9b99c9c7c547629967d58c67a8228feaf221351b0612008dd1428d94eddc833a4dad69ffca7f8a04dcc7db128154d3ad0971 + languageName: node + linkType: hard + "@polkadot/keyring@npm:12.6.2": version: 12.6.2 resolution: "@polkadot/keyring@npm:12.6.2" @@ -4103,6 +4207,30 @@ __metadata: languageName: node linkType: hard +"@polkadot/rpc-provider@npm:^10.12.4": + version: 10.13.1 + resolution: "@polkadot/rpc-provider@npm:10.13.1" + dependencies: + "@polkadot/keyring": ^12.6.2 + "@polkadot/types": 10.13.1 + "@polkadot/types-support": 10.13.1 + "@polkadot/util": ^12.6.2 + "@polkadot/util-crypto": ^12.6.2 + "@polkadot/x-fetch": ^12.6.2 + "@polkadot/x-global": ^12.6.2 + "@polkadot/x-ws": ^12.6.2 + "@substrate/connect": 0.8.8 + eventemitter3: ^5.0.1 + mock-socket: ^9.3.1 + nock: ^13.5.0 + tslib: ^2.6.2 + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: ea254d36c5bcc919869851e9c08683a1f63d79ed6903485864f49a4c984dfdd9c2f10cc816036e54b930d64b8e7965a4bf360e6333b9641d1cfeccd829410777 + languageName: node + linkType: hard + "@polkadot/rpc-provider@npm:^9.14.2": version: 9.14.2 resolution: "@polkadot/rpc-provider@npm:9.14.2" @@ -4139,6 +4267,29 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-augment@npm:^10.9.1": + version: 10.13.1 + resolution: "@polkadot/types-augment@npm:10.13.1" + dependencies: + "@polkadot/types": 10.13.1 + "@polkadot/types-codec": 10.13.1 + "@polkadot/util": ^12.6.2 + tslib: ^2.6.2 + checksum: 653ff88c10cc6b6399bd5f54e6fd5c434b7a0e37d3a60d73a7b24a258544aad959907d8d78f347015a2d8006444419d94cd1e5b38c4a20179aba5726407a9998 + languageName: node + linkType: hard + +"@polkadot/types-codec@npm:10.13.1": + version: 10.13.1 + resolution: "@polkadot/types-codec@npm:10.13.1" + dependencies: + "@polkadot/util": ^12.6.2 + "@polkadot/x-bigint": ^12.6.2 + tslib: ^2.6.2 + checksum: 5f5dadd0cde5686c19aab5042180e54bd9496505063bd873014773c6304c57b80903876162a3e87183487570a6a3e69c707b1ca99f4e6272f7c2c1c9588b9b66 + languageName: node + linkType: hard + "@polkadot/types-codec@npm:10.7.1": version: 10.7.1 resolution: "@polkadot/types-codec@npm:10.7.1" @@ -4175,6 +4326,16 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-support@npm:10.13.1": + version: 10.13.1 + resolution: "@polkadot/types-support@npm:10.13.1" + dependencies: + "@polkadot/util": ^12.6.2 + tslib: ^2.6.2 + checksum: c9b14b6c08922292f08f37a46f1c87973383f8fa657b695212595e839681aeff26b92f686dec2a6ae30bd77083e42674283ad2382f713850cdb95823725bd81d + languageName: node + linkType: hard + "@polkadot/types-support@npm:10.7.1": version: 10.7.1 resolution: "@polkadot/types-support@npm:10.7.1" @@ -4326,7 +4487,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-bigint@npm:12.6.2, @polkadot/x-bigint@npm:^12.2.1": +"@polkadot/x-bigint@npm:12.6.2, @polkadot/x-bigint@npm:^12.2.1, @polkadot/x-bigint@npm:^12.6.2": version: 12.6.2 resolution: "@polkadot/x-bigint@npm:12.6.2" dependencies: @@ -5228,7 +5389,7 @@ __metadata: languageName: node linkType: hard -"@scure/base@npm:^1.1.5, @scure/base@npm:~1.1.4": +"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.5, @scure/base@npm:~1.1.4": version: 1.1.6 resolution: "@scure/base@npm:1.1.6" checksum: d6deaae91deba99e87939af9e55d80edba302674983f32bba57f942e22b1726a83c62dc50d8f4370a5d5d35a212dda167fb169f4b0d0c297488d8604608fc3d3 @@ -7832,6 +7993,20 @@ __metadata: 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" + checksum: a7c6ff3fefc0784f28b1d253514c1d2951684fe3d06392dfd70299fa2184fbe040d2bd6e0f113e30a1920920b649d43668aa4565847778ab3334c7e445e880cf + languageName: node + linkType: hard + +"@substrate/connect-known-chains@npm:^1.1.1": + version: 1.1.5 + resolution: "@substrate/connect-known-chains@npm:1.1.5" + checksum: 2f95b18d0a0dd196e67c398d1862d5b84385f017672aa65e537ca8fac3e85883f1ca8357f7622b9fdd42c316ccc39ed9fdea91428f19dc52864d7cc7e7cab078 + languageName: node + linkType: hard + "@substrate/connect@npm:0.7.19": version: 0.7.19 resolution: "@substrate/connect@npm:0.7.19" @@ -7854,6 +8029,35 @@ __metadata: languageName: node linkType: hard +"@substrate/connect@npm:0.8.8": + version: 0.8.8 + resolution: "@substrate/connect@npm:0.8.8" + dependencies: + "@substrate/connect-extension-protocol": ^2.0.0 + "@substrate/connect-known-chains": ^1.1.1 + "@substrate/light-client-extension-helpers": ^0.0.4 + smoldot: 2.0.22 + checksum: c70e8be2a121278af6adbace1060d8f1063c898cbc43b34ce454154cca23cd056e2e8d84407fe49e1c347ff221de9b8e74fbaa18f8145a7e65fb20cd06000368 + languageName: node + linkType: hard + +"@substrate/light-client-extension-helpers@npm:^0.0.4": + version: 0.0.4 + resolution: "@substrate/light-client-extension-helpers@npm:0.0.4" + dependencies: + "@polkadot-api/client": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/json-rpc-provider": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/json-rpc-provider-proxy": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@polkadot-api/substrate-client": 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 + "@substrate/connect-extension-protocol": ^2.0.0 + "@substrate/connect-known-chains": ^1.1.1 + rxjs: ^7.8.1 + peerDependencies: + smoldot: 2.x + checksum: 7ec22cbc13d6acd29e40d716f717942be6cfa0af896fccb6ad797b37908d21a6a56398d8ece6b1b79b956c61dc50978594fbc1e660cbfeb127cd60d58203e043 + languageName: node + linkType: hard + "@substrate/smoldot-light@npm:0.7.9": version: 0.7.9 resolution: "@substrate/smoldot-light@npm:0.7.9" @@ -17647,7 +17851,7 @@ __metadata: languageName: node linkType: hard -"mock-socket@npm:^9.2.1": +"mock-socket@npm:^9.2.1, mock-socket@npm:^9.3.1": version: 9.3.1 resolution: "mock-socket@npm:9.3.1" checksum: cb2dde4fc5dde280dd5ccb78eaaa223382ee16437f46b86558017655584ad08c22e733bde2dd5cc86927def506b6caeb0147e3167b9a62d70d5cf19d44103853 @@ -17884,7 +18088,7 @@ __metadata: languageName: node linkType: hard -"nock@npm:^13.3.0, nock@npm:^13.3.1": +"nock@npm:^13.3.0, nock@npm:^13.3.1, nock@npm:^13.5.0": version: 13.5.4 resolution: "nock@npm:13.5.4" dependencies: @@ -20486,6 +20690,13 @@ __metadata: languageName: node linkType: hard +"scale-ts@npm:^1.6.0": + version: 1.6.0 + resolution: "scale-ts@npm:1.6.0" + checksum: 2cd6d3e31ea78621fe2e068eedc3beb6a3cfc338c9033f04ec3e355b4b08e134febad655c54a80272a50737136a27436f9d14d6525b126e621a3b77524111056 + languageName: node + linkType: hard + "scheduler@npm:^0.23.2": version: 0.23.2 resolution: "scheduler@npm:0.23.2" @@ -20838,6 +21049,15 @@ __metadata: languageName: node linkType: hard +"smoldot@npm:2.0.22": + version: 2.0.22 + resolution: "smoldot@npm:2.0.22" + dependencies: + ws: ^8.8.1 + checksum: 383bc6a5481190d64302fad56e9e4120a484885aee5543b268887de425708f04e8b3b3b69893333dfd9fd0e596f006afaa7c7ee5ff260c5d2be929c60302d385 + languageName: node + linkType: hard + "snake-case@npm:^3.0.4": version: 3.0.4 resolution: "snake-case@npm:3.0.4"