Fix CI tests (w/ x-fetch bump) (#7853)

This commit is contained in:
Jaco 2022-07-10 08:48:26 +02:00 committed by GitHub
parent 43c95bb0bc
commit 038ca463d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 195 additions and 190 deletions

2
.nvmrc
View File

@ -1 +1 @@
12
16

View File

@ -97,9 +97,9 @@
"@polkadot/api-base": "^8.12.1",
"@polkadot/api-contract": "^8.12.1",
"@polkadot/api-derive": "^8.12.1",
"@polkadot/hw-ledger": "^10.0.1",
"@polkadot/keyring": "^10.0.1",
"@polkadot/networks": "^10.0.1",
"@polkadot/hw-ledger": "^10.0.2",
"@polkadot/keyring": "^10.0.2",
"@polkadot/networks": "^10.0.2",
"@polkadot/phishing": "^0.16.2",
"@polkadot/rpc-augment": "^8.12.1",
"@polkadot/rpc-core": "^8.12.1",
@ -110,8 +110,8 @@
"@polkadot/types-create": "^8.12.1",
"@polkadot/types-known": "^8.12.1",
"@polkadot/types-support": "^8.12.1",
"@polkadot/util": "^10.0.1",
"@polkadot/util-crypto": "^10.0.1",
"@polkadot/util": "^10.0.2",
"@polkadot/util-crypto": "^10.0.2",
"@polkadot/wasm-crypto": "^6.2.3",
"babel-core": "^7.0.0-bridge.0",
"styled-components": "^5.3.1",

View File

@ -33,10 +33,10 @@
"@phala/typedefs": "0.2.30",
"@polkadot/api": "^8.12.1",
"@polkadot/api-derive": "^8.12.1",
"@polkadot/networks": "^10.0.1",
"@polkadot/networks": "^10.0.2",
"@polkadot/types": "^8.12.1",
"@polkadot/util": "^10.0.1",
"@polkadot/x-fetch": "^10.0.1",
"@polkadot/util": "^10.0.2",
"@polkadot/x-fetch": "^10.0.2",
"@polymathnetwork/polymesh-types": "0.0.2",
"@snowfork/snowbridge-types": "0.2.7",
"@sora-substrate/type-definitions": "1.9.13",

View File

@ -1,88 +0,0 @@
// Copyright 2017-2022 @polkadot/apps-config authors & contributors
// SPDX-License-Identifier: Apache-2.0
import fs from 'fs';
import { ApiPromise, WsProvider } from '@polkadot/api';
import { assert, isError } from '@polkadot/util';
import { typesBundle, typesChain } from '../api';
import { fetchJson } from './fetch';
interface DnsResponse {
Answer?: { name: string }[];
Question: { name: string }[];
}
const TICK = '`';
export function checkEndpoint (issueFile: string, failures: string[]): (name: string, ws: string) => Promise<boolean> {
return async (name: string, ws: string): Promise<boolean> => {
const [,, hostWithPort] = ws.split('/');
const [host] = hostWithPort.split(':');
const json = await fetchJson<DnsResponse>(`https://dns.google/resolve?name=${host}`);
let provider: WsProvider | null = null;
let api: ApiPromise | null = null;
let timerId: NodeJS.Timeout | null = null;
try {
assert(json.Answer, `No DNS entry for ${host}`);
provider = new WsProvider(ws, false);
api = new ApiPromise({
provider,
throwOnConnect: true,
throwOnUnknown: false,
typesBundle,
typesChain
});
setTimeout((): void => {
provider &&
provider
.connect()
.catch(() => undefined);
}, 1000);
await Promise.race([
// eslint-disable-next-line promise/param-names
new Promise((_, reject): void => {
timerId = setTimeout((): void => {
timerId = null;
reject(new Error(`Timeout connecting to ${ws}`));
}, 30_000);
}),
api.isReadyOrError
.then((a) => a.rpc.chain.getBlock())
.then((b) => console.log(b.toHuman()))
]);
} catch (error) {
if (isError(error) && failures.some((f) => (error as Error).message.includes(f))) {
process.env.CI_LOG && fs.appendFileSync(issueFile, `\n${TICK}${name} @ ${ws} ${error.message}${TICK}\n`);
throw error;
}
console.error(JSON.stringify(error));
} finally {
if (timerId) {
clearTimeout(timerId);
}
if (provider) {
try {
if (api) {
await api.disconnect();
} else {
await provider.disconnect();
}
} catch {
// ignore
}
}
}
return Promise.resolve(true);
};
}

View File

@ -3,6 +3,9 @@
import { fetch } from '@polkadot/x-fetch';
// this is also in @polkadot/phishing - we may want to expose it
// inside x-fetch at some point in the future...
// a fetch with a 2s timeout
async function fetchWithTimeout (url: string, timeout = 2000): Promise<Response> {
const controller = new AbortController();
@ -29,10 +32,10 @@ async function fetchWithTimeout (url: string, timeout = 2000): Promise<Response>
}
}
export function fetchJson <T> (url: string, timeout = 2000): Promise<T> {
export function fetchJson <T> (url: string, timeout?: number): Promise<T> {
return fetchWithTimeout(url, timeout).then<T>((r) => r.json());
}
export function fetchText (url: string, timeout = 2000): Promise<string> {
export function fetchText (url: string, timeout?: number): Promise<string> {
return fetchWithTimeout(url, timeout).then((r) => r.text());
}

View File

@ -1,18 +1,101 @@
// Copyright 2017-2022 @polkadot/apps-config authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { isString } from '@polkadot/util';
import fs from 'fs';
import { ApiPromise, WsProvider } from '@polkadot/api';
import { assert, isError, isString } from '@polkadot/util';
import { typesBundle, typesChain } from '../api';
import { createWsEndpoints } from '../endpoints';
import { checkEndpoint } from './check';
import { fetchJson } from './fetch';
interface Endpoint {
name: string;
ws: string;
}
interface DnsResponse {
Answer?: { name: string }[];
Question: { name: string }[];
}
const TICK = '`';
function createChecker (issueFile: string, failures: string[]): (name: string, ws: string) => Promise<boolean> {
return async (name: string, ws: string): Promise<boolean> => {
const [,, hostWithPort] = ws.split('/');
const [host] = hostWithPort.split(':');
const json = await fetchJson<DnsResponse>(`https://dns.google/resolve?name=${host}`);
let provider: WsProvider | null = null;
let api: ApiPromise | null = null;
let timerId: NodeJS.Timeout | null = null;
let isOk = true;
try {
assert(json.Answer, `No DNS entry for ${host}`);
provider = new WsProvider(ws, false);
api = new ApiPromise({
provider,
throwOnConnect: true,
throwOnUnknown: false,
typesBundle,
typesChain
});
setTimeout((): void => {
provider &&
provider
.connect()
.catch(() => undefined);
}, 1000);
await Promise.race([
// eslint-disable-next-line promise/param-names
new Promise((_, reject): void => {
timerId = setTimeout((): void => {
timerId = null;
reject(new Error(`Timeout connecting to ${ws}`));
}, 30_000);
}),
api.isReadyOrError
.then((a) => a.rpc.chain.getBlock())
.then((b) => console.log(`>>> ${name} @ ${ws}`, b.toHuman()))
]);
} catch (error) {
if (isError(error) && failures.some((f) => (error as Error).message.includes(f))) {
process.env.CI_LOG && fs.appendFileSync(issueFile, `\n${TICK}${name} @ ${ws} ${error.message}${TICK}\n`);
isOk = false;
}
console.error(JSON.stringify(error));
} finally {
if (timerId) {
clearTimeout(timerId);
}
if (provider) {
try {
if (api) {
await api.disconnect();
} else {
await provider.disconnect();
}
} catch {
// ignore
}
}
}
return isOk;
};
}
export function checkEndpoints (issueFile: string, failures: string[]): void {
const checker = checkEndpoint(issueFile, failures);
const checker = createChecker(issueFile, failures);
it.each(
createWsEndpoints()
@ -29,9 +112,7 @@ export function checkEndpoints (issueFile: string, failures: string[]): void {
ws: value
}))
.filter((v): v is Endpoint => !!v.ws)
)('%name @ %$ws', ({ name, ws }): Promise<void> => {
console.error(`>>> ${name} @ ${ws}`);
return checker(name, ws).then((r) => expect(r).toBe(true));
)('%name @ %$ws', async ({ name, ws }): Promise<void> => {
expect(await checker(name, ws)).toBe(true);
});
}

View File

@ -14,11 +14,11 @@
"version": "0.116.2-94-x",
"dependencies": {
"@babel/runtime": "^7.18.6",
"@polkadot/hw-ledger": "^10.0.1",
"@polkadot/hw-ledger": "^10.0.2",
"@polkadot/phishing": "^0.16.2",
"@polkadot/react-components": "^0.116.2-94-x",
"@polkadot/react-hooks": "^0.116.2-94-x",
"@polkadot/util": "^10.0.1",
"@polkadot/util": "^10.0.2",
"@polkadot/vanitygen": "^0.51.15",
"detect-browser": "^5.3.0",
"file-saver": "^2.0.5"

View File

@ -17,15 +17,15 @@
"@fortawesome/fontawesome-svg-core": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.19",
"@polkadot/keyring": "^10.0.1",
"@polkadot/keyring": "^10.0.2",
"@polkadot/react-api": "^0.116.2-94-x",
"@polkadot/react-identicon": "^2.8.1",
"@polkadot/react-qr": "^2.8.1",
"@polkadot/react-query": "^0.116.2-94-x",
"@polkadot/ui-keyring": "^2.8.1",
"@polkadot/ui-settings": "^2.8.1",
"@polkadot/util": "^10.0.1",
"@polkadot/util-crypto": "^10.0.1",
"@polkadot/util": "^10.0.2",
"@polkadot/util-crypto": "^10.0.2",
"chart.js": "^3.8.0",
"codeflask": "^1.4.1",
"i18next": "^21.8.11",

View File

@ -14,7 +14,7 @@
"version": "0.116.2-94-x",
"dependencies": {
"@babel/runtime": "^7.18.6",
"@polkadot/hw-ledger": "^10.0.1",
"@polkadot/hw-ledger": "^10.0.2",
"is-ipfs": "6.0.2"
}
}

View File

@ -14,7 +14,7 @@
"version": "0.116.2-94-x",
"dependencies": {
"@babel/runtime": "^7.18.6",
"@polkadot/hw-ledger": "^10.0.1",
"@polkadot/hw-ledger": "^10.0.2",
"@polkadot/react-components": "^0.116.2-94-x"
}
}

163
yarn.lock
View File

@ -2737,12 +2737,12 @@ __metadata:
resolution: "@polkadot/app-accounts@workspace:packages/page-accounts"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/hw-ledger": ^10.0.1
"@polkadot/hw-ledger": ^10.0.2
"@polkadot/phishing": ^0.16.2
"@polkadot/react-components": ^0.116.2-94-x
"@polkadot/react-hooks": ^0.116.2-94-x
"@polkadot/test-support": 0.116.2-94-x
"@polkadot/util": ^10.0.1
"@polkadot/util": ^10.0.2
"@polkadot/vanitygen": ^0.51.15
detect-browser: ^5.3.0
file-saver: ^2.0.5
@ -3052,10 +3052,10 @@ __metadata:
"@phala/typedefs": 0.2.30
"@polkadot/api": ^8.12.1
"@polkadot/api-derive": ^8.12.1
"@polkadot/networks": ^10.0.1
"@polkadot/networks": ^10.0.2
"@polkadot/types": ^8.12.1
"@polkadot/util": ^10.0.1
"@polkadot/x-fetch": ^10.0.1
"@polkadot/util": ^10.0.2
"@polkadot/x-fetch": ^10.0.2
"@polymathnetwork/polymesh-types": 0.0.2
"@snowfork/snowbridge-types": 0.2.7
"@sora-substrate/type-definitions": 1.9.13
@ -3290,58 +3290,58 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/hw-ledger-transports@npm:10.0.1":
version: 10.0.1
resolution: "@polkadot/hw-ledger-transports@npm:10.0.1"
"@polkadot/hw-ledger-transports@npm:10.0.2":
version: 10.0.2
resolution: "@polkadot/hw-ledger-transports@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@ledgerhq/hw-transport": ^6.27.1
"@ledgerhq/hw-transport-node-hid-singleton": ^6.27.2
"@ledgerhq/hw-transport-webhid": ^6.27.1
"@ledgerhq/hw-transport-webusb": ^6.27.1
"@polkadot/util": 10.0.1
"@polkadot/util": 10.0.2
dependenciesMeta:
"@ledgerhq/hw-transport-node-hid-singleton":
optional: true
checksum: f0cc2f1bb407c5a715cb0977d74f5da2ac3dd326e0b4380f606a5e1babdc15c7398860c069887bbc9932f540cc3a8b4313899b864f08549c4ec1a4b9c3b8af03
checksum: c7694eb9ce6a05771b8670b4bc49c4603c9939f417e407cd1fea669fcf358fa9d34f0703bdb7e159bda583dc367e9848b733ac588500ed99425fecb1a2700f30
languageName: node
linkType: hard
"@polkadot/hw-ledger@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/hw-ledger@npm:10.0.1"
"@polkadot/hw-ledger@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/hw-ledger@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@ledgerhq/hw-transport": ^6.27.1
"@polkadot/hw-ledger-transports": 10.0.1
"@polkadot/util": 10.0.1
"@polkadot/hw-ledger-transports": 10.0.2
"@polkadot/util": 10.0.2
"@zondax/ledger-substrate": ^0.32.0
checksum: 384f53e24122d21f9a92ae2a93ea0d3760bdaefc5b192e672a8d03af8be373a8742783c4af23ad6e56fa16cc88de72b182811bc62185ea814baed42b94aab6d0
checksum: d86bf0883b40c8e6581a56e2af2d320ce7bbc4916d48602b2ce8f6d47940d3c9613db24d891171658567e3382a1216a220a9d78e448b23ef261c3e87baa15fd1
languageName: node
linkType: hard
"@polkadot/keyring@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/keyring@npm:10.0.1"
"@polkadot/keyring@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/keyring@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/util": 10.0.1
"@polkadot/util-crypto": 10.0.1
"@polkadot/util": 10.0.2
"@polkadot/util-crypto": 10.0.2
peerDependencies:
"@polkadot/util": 10.0.1
"@polkadot/util-crypto": 10.0.1
checksum: aebf235e039267619891fa33b19ea91ba851355f2740ffca73c088b1f98babd334a51553cd2437718b65c4b8911f91db6b9b529f7a5dbdb2bb2f60118e4a31a0
"@polkadot/util": 10.0.2
"@polkadot/util-crypto": 10.0.2
checksum: 69b4ab52f9b57f42195fcfb4141f70ff4a52a7dc0ad1f17627535d120a2a01bca01a632b79c7908d289da9999cb5d96273b5332e80c014c3781fb88ac0a70b6d
languageName: node
linkType: hard
"@polkadot/networks@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/networks@npm:10.0.1"
"@polkadot/networks@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/networks@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/util": 10.0.1
"@polkadot/util": 10.0.2
"@substrate/ss58-registry": ^1.23.0
checksum: 136c17155364a32c6d43c1cab9263fc38e691a9da35e6419934a09d6614eaa9521778fe9a1afe008f15b4cbf0a7fff0fee2322169232c6fcdb49396bbca0d075
checksum: d8ab6c706f3059e925cadfe9801c097c657bb8f41293514fca7fd7edb20b0bae941d2cd1ecd24615d68e626b751b13ba3fe47d916a8968225771d0f936e7c043
languageName: node
linkType: hard
@ -3379,15 +3379,15 @@ __metadata:
"@fortawesome/fontawesome-svg-core": ^6.1.1
"@fortawesome/free-solid-svg-icons": ^6.1.1
"@fortawesome/react-fontawesome": ^0.1.19
"@polkadot/keyring": ^10.0.1
"@polkadot/keyring": ^10.0.2
"@polkadot/react-api": ^0.116.2-94-x
"@polkadot/react-identicon": ^2.8.1
"@polkadot/react-qr": ^2.8.1
"@polkadot/react-query": ^0.116.2-94-x
"@polkadot/ui-keyring": ^2.8.1
"@polkadot/ui-settings": ^2.8.1
"@polkadot/util": ^10.0.1
"@polkadot/util-crypto": ^10.0.1
"@polkadot/util": ^10.0.2
"@polkadot/util-crypto": ^10.0.2
"@types/codeflask": ^1.4.3
"@types/owasp-password-strength-test": ^1.3.0
chart.js: ^3.8.0
@ -3420,7 +3420,7 @@ __metadata:
resolution: "@polkadot/react-hooks@workspace:packages/react-hooks"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/hw-ledger": ^10.0.1
"@polkadot/hw-ledger": ^10.0.2
is-ipfs: 6.0.2
languageName: unknown
linkType: soft
@ -3495,7 +3495,7 @@ __metadata:
resolution: "@polkadot/react-signer@workspace:packages/react-signer"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/hw-ledger": ^10.0.1
"@polkadot/hw-ledger": ^10.0.2
"@polkadot/react-components": ^0.116.2-94-x
languageName: unknown
linkType: soft
@ -3683,39 +3683,39 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/util-crypto@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/util-crypto@npm:10.0.1"
"@polkadot/util-crypto@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/util-crypto@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@noble/hashes": 1.1.2
"@noble/secp256k1": 1.6.0
"@polkadot/networks": 10.0.1
"@polkadot/util": 10.0.1
"@polkadot/networks": 10.0.2
"@polkadot/util": 10.0.2
"@polkadot/wasm-crypto": ^6.2.3
"@polkadot/x-bigint": 10.0.1
"@polkadot/x-randomvalues": 10.0.1
"@polkadot/x-bigint": 10.0.2
"@polkadot/x-randomvalues": 10.0.2
"@scure/base": 1.1.1
ed2curve: ^0.3.0
tweetnacl: ^1.0.3
peerDependencies:
"@polkadot/util": 10.0.1
checksum: 2ba98e39a874769ddcd8388f2b3edddcdf41aea00127f82b1d1511f655989bffd37c30da3d5079a339457abf32375812ddc61ccff65241f58e18e87ac1ee0693
"@polkadot/util": 10.0.2
checksum: 472e5678fcd9e6ed0bc39f203af56d62dc82f1dcb708c5cd0678fd85e3407090a335f70d16e2afb42136d9e007cc190057bede8ac5f9c772e2c395cddf9c0dec
languageName: node
linkType: hard
"@polkadot/util@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/util@npm:10.0.1"
"@polkadot/util@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/util@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-bigint": 10.0.1
"@polkadot/x-global": 10.0.1
"@polkadot/x-textdecoder": 10.0.1
"@polkadot/x-textencoder": 10.0.1
"@polkadot/x-bigint": 10.0.2
"@polkadot/x-global": 10.0.2
"@polkadot/x-textdecoder": 10.0.2
"@polkadot/x-textencoder": 10.0.2
"@types/bn.js": ^5.1.0
bn.js: ^5.2.1
checksum: 039fe5450158554eed5e519f8fcb1fd9a7c387307dda16fd728d39b8bf63991ff0add0e538f50dd91fe9e19f138eb95505be2d010afe752bbb12018d6719cce8
checksum: dbcc331da2e3383225266ae00163d73641fdecaa3e2b994df62d77a268d86dc3c0b725836b7073bd5673707974b0a21f929a6bac6a6bb3e213b5967053c96c0a
languageName: node
linkType: hard
@ -3813,25 +3813,25 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-bigint@npm:10.0.1, @polkadot/x-bigint@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/x-bigint@npm:10.0.1"
"@polkadot/x-bigint@npm:10.0.2, @polkadot/x-bigint@npm:^10.0.1":
version: 10.0.2
resolution: "@polkadot/x-bigint@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-global": 10.0.1
checksum: b6d0bad30d76ac0d1978e941a735571bdf765597d0af11fad65aed9d21d0cb3ecdc359aaecd169bf11791fb61e4c150a85f9760c0c33dead3a62b0382897385c
"@polkadot/x-global": 10.0.2
checksum: 77bf8554d74591750bb0c8afad9da1a5b754fb749233daf44c7aee9773819b61e6125544e116d96b157bd774b20145acbce2e6f5fdd51ecc0e4cab8de0161126
languageName: node
linkType: hard
"@polkadot/x-fetch@npm:^10.0.1":
version: 10.0.1
resolution: "@polkadot/x-fetch@npm:10.0.1"
"@polkadot/x-fetch@npm:^10.0.1, @polkadot/x-fetch@npm:^10.0.2":
version: 10.0.2
resolution: "@polkadot/x-fetch@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-global": 10.0.1
"@polkadot/x-global": 10.0.2
"@types/node-fetch": ^2.6.2
node-fetch: ^3.2.6
checksum: 3f452941421b7786edc256a28da550eb4d1d557b89df029a5401b14af9eb35c6bd1f3d881606ebda1d8e2c1dff380636532b95f49e376409b802b890c16af813
checksum: c7ecc29345ff4feab7cfa1d9282c172dc7f63254f52786725c8c89e9bded138ad311c2f18fb42eb39c891090e00fbd006ec2bff7dab00ab84507991f8da54615
languageName: node
linkType: hard
@ -3847,7 +3847,7 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-global@npm:10.0.1, @polkadot/x-global@npm:^10.0.1":
"@polkadot/x-global@npm:10.0.1":
version: 10.0.1
resolution: "@polkadot/x-global@npm:10.0.1"
dependencies:
@ -3856,6 +3856,15 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-global@npm:10.0.2, @polkadot/x-global@npm:^10.0.1":
version: 10.0.2
resolution: "@polkadot/x-global@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
checksum: 2f2416f3796a2708e04a9b73ae68b29c5dd00ad800b74c674e2df3eb8d070403443a5fa0f29e08d0c1e889628e45e09e36765f8cad7c2a6c6bebf40fbae2d669
languageName: node
linkType: hard
"@polkadot/x-global@npm:9.7.2, @polkadot/x-global@npm:^9.5.1":
version: 9.7.2
resolution: "@polkadot/x-global@npm:9.7.2"
@ -3865,33 +3874,33 @@ __metadata:
languageName: node
linkType: hard
"@polkadot/x-randomvalues@npm:10.0.1":
version: 10.0.1
resolution: "@polkadot/x-randomvalues@npm:10.0.1"
"@polkadot/x-randomvalues@npm:10.0.2":
version: 10.0.2
resolution: "@polkadot/x-randomvalues@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-global": 10.0.1
checksum: cda0b5721a6b3fd064e4458a72cfc45e497767b291474776a2fed8a8a306d1f4c2d45746cfbe5fb6eac02265c5c30b48175d4cd6f3e928ca16b105770ae306c7
"@polkadot/x-global": 10.0.2
checksum: a8febcde1e09e3686d9165ac699c6a606b0411536adab522e98deef2433875236adac696f6dce2f887c202b1304cf5e512de1fe0b689bec3f5f7aeeedb03a6fe
languageName: node
linkType: hard
"@polkadot/x-textdecoder@npm:10.0.1":
version: 10.0.1
resolution: "@polkadot/x-textdecoder@npm:10.0.1"
"@polkadot/x-textdecoder@npm:10.0.2":
version: 10.0.2
resolution: "@polkadot/x-textdecoder@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-global": 10.0.1
checksum: f5c8ce059e16c220bee8a460ce29959e2ff2b71a775472f791913a6296b90461af0f6bdf9c3d16e57aee5702c6ffa27abf4e965e70e1d204bed03cee625a2b5f
"@polkadot/x-global": 10.0.2
checksum: 93a47cc3082c2d6ca6a45552f05a5e29d33c4ca0891af2585e5e09db7e054a754faaf359fbc89b18a2c897dbd792f84b5a86fa3d98831ff0ba15015ed960f093
languageName: node
linkType: hard
"@polkadot/x-textencoder@npm:10.0.1":
version: 10.0.1
resolution: "@polkadot/x-textencoder@npm:10.0.1"
"@polkadot/x-textencoder@npm:10.0.2":
version: 10.0.2
resolution: "@polkadot/x-textencoder@npm:10.0.2"
dependencies:
"@babel/runtime": ^7.18.6
"@polkadot/x-global": 10.0.1
checksum: f36370dbdea0a3d681a42fdbf1f40801313592d80e57714f0e6efb543442c72334f2ea9ebfd539c3eb78c424c64520943ff51628504d789c17ab180dc1f33f7d
"@polkadot/x-global": 10.0.2
checksum: 24600fb003e48b030b610e404964630c901c65c8d1e9be95c1d0c4f385a9b40ae118d881ac50061e87ff2c4bbf1a80b3017a18ff03fd82e12b3b6102b508e6fc
languageName: node
linkType: hard