diff --git a/package.json b/package.json
index 2713d683c1..63874dfc91 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
"test:one": "polkadot-dev-run-test --env node"
},
"devDependencies": {
- "@polkadot/dev": "^0.75.11",
+ "@polkadot/dev": "^0.75.13",
"@polkadot/typegen": "workspace:packages/typegen",
"@types/node": "^20.2.5"
},
diff --git a/packages/rpc-provider/src/substrate-connect/index.spec.ts b/packages/rpc-provider/src/substrate-connect/index.spec.ts
index 5baf00a01c..a7a5c85c3a 100644
--- a/packages/rpc-provider/src/substrate-connect/index.spec.ts
+++ b/packages/rpc-provider/src/substrate-connect/index.spec.ts
@@ -3,43 +3,30 @@
///
-/* eslint-disable sort-keys */
-/* eslint-disable promise/param-names */
-/* eslint-disable @typescript-eslint/no-unsafe-assignment */
-/* eslint-disable @typescript-eslint/no-non-null-assertion */
-/* eslint-disable @typescript-eslint/no-unsafe-member-access */
-/* eslint-disable @typescript-eslint/no-unsafe-argument */
-/* eslint-disable @typescript-eslint/no-unsafe-call */
-/* eslint-disable @typescript-eslint/no-unsafe-return */
-/* eslint-disable @typescript-eslint/no-unsafe-return */
-/* eslint-disable @typescript-eslint/no-empty-function */
-/* eslint-disable @typescript-eslint/no-floating-promises */
-/* eslint-disable @typescript-eslint/restrict-template-expressions */
-/* eslint-disable @typescript-eslint/ban-types */
-
-// FIXME A number of tests here, that were passing, is not skipped since
-// Jest has "some" issues with `await import` - we don't transform these
-
import type * as Sc from '@substrate/connect';
import type { HealthChecker, SmoldotHealth } from './types.js';
import { ScProvider } from './index.js';
-type MockChain = Sc.Chain & {
- _spec: () => string
- _recevedRequests: () => string[]
- _isTerminated: () => boolean
- _triggerCallback: (response: string | {}) => void
- _setTerminateInterceptor: (fn: () => void) => void
- _setSendJsonRpcInterceptor: (fn: (rpc: string) => void) => void
- _getLatestRequest: () => string
+interface MockChain extends Sc.Chain {
+ _spec: () => string;
+ _recevedRequests: () => string[];
+ _isTerminated: () => boolean;
+ _triggerCallback: (response: string | object) => void;
+ _setTerminateInterceptor: (fn: () => void) => void;
+ _setSendJsonRpcInterceptor: (fn: (rpc: string) => void) => void;
+ _getLatestRequest: () => string;
}
-type MockedHealthChecker = HealthChecker & {
- _isActive: () => boolean
- _triggerHealthUpdate: (update: SmoldotHealth) => void
+interface MockedHealthChecker extends HealthChecker {
+ _isActive: () => boolean;
+ _triggerHealthUpdate: (update: SmoldotHealth) => void;
}
+type MockSc = typeof Sc & {
+ latestChain: () => MockChain;
+};
+
enum WellKnownChain {
polkadot = 'polkadot',
ksmcc3 = 'ksmcc3',
@@ -47,16 +34,23 @@ enum WellKnownChain {
westend2 = 'westend2'
}
-const wait = (ms: number) => new Promise((res) => setTimeout(res, ms));
+const wait = (ms: number) =>
+ new Promise((resolve) =>
+ setTimeout(resolve, ms)
+ );
function healthCheckerMock (): MockedHealthChecker {
- let cb: (health: SmoldotHealth) => void = () => {};
-
- let sendJsonRpc: (request: string) => void = () => {};
-
+ let cb: (health: SmoldotHealth) => void = () => undefined;
+ let sendJsonRpc: (request: string) => void = () => undefined;
let isActive = false;
return {
+ _isActive: () => isActive,
+ _triggerHealthUpdate: (update: SmoldotHealth) => {
+ cb(update);
+ },
+ responsePassThrough: (response) => response,
+ sendJsonRpc: (...args) => sendJsonRpc(...args),
setSendJsonRpc: (cb) => {
sendJsonRpc = cb;
},
@@ -66,12 +60,6 @@ function healthCheckerMock (): MockedHealthChecker {
},
stop: () => {
isActive = false;
- },
- sendJsonRpc: (...args) => sendJsonRpc(...args),
- responsePassThrough: (response) => response,
- _isActive: () => isActive,
- _triggerHealthUpdate: (update: SmoldotHealth) => {
- cb(update);
}
};
}
@@ -80,15 +68,15 @@ function healthCheckerFactory () {
const _healthCheckers: MockedHealthChecker[] = [];
return {
+ _healthCheckers,
+ _latestHealthChecker: () => _healthCheckers.slice(-1)[0],
healthChecker: () => {
const result = healthCheckerMock();
_healthCheckers.push(result);
return result;
- },
- _healthCheckers,
- _latestHealthChecker: () => _healthCheckers.slice(-1)[0]
+ }
};
}
@@ -96,33 +84,33 @@ function getFakeChain (spec: string, callback: Sc.JsonRpcCallback): MockChain {
const _receivedRequests: string[] = [];
let _isTerminated = false;
- let terminateInterceptor: Function = Function.prototype;
- let sendJsonRpcInterceptor: Function = Function.prototype;
+ let terminateInterceptor = Function.prototype;
+ let sendJsonRpcInterceptor = Function.prototype;
return {
- _spec: () => spec,
- _recevedRequests: () => _receivedRequests,
+ _getLatestRequest: () => _receivedRequests[_receivedRequests.length - 1],
_isTerminated: () => _isTerminated,
- _triggerCallback: (response) => {
- callback(
- typeof response === 'string' ? response : JSON.stringify(response)
- );
- },
+ _recevedRequests: () => _receivedRequests,
_setSendJsonRpcInterceptor: (fn) => {
sendJsonRpcInterceptor = fn;
},
_setTerminateInterceptor: (fn) => {
terminateInterceptor = fn;
},
- sendJsonRpc: (rpc) => {
- sendJsonRpcInterceptor(rpc);
- _receivedRequests.push(rpc);
+ _spec: () => spec,
+ _triggerCallback: (response) => {
+ callback(
+ typeof response === 'string' ? response : JSON.stringify(response)
+ );
},
remove: () => {
terminateInterceptor();
_isTerminated = true;
},
- _getLatestRequest: () => _receivedRequests[_receivedRequests.length - 1]
+ sendJsonRpc: (rpc) => {
+ sendJsonRpcInterceptor(rpc);
+ _receivedRequests.push(rpc);
+ }
};
}
@@ -161,12 +149,13 @@ function getFakeClient () {
};
}
-function connectorFactory () {
+function connectorFactory (): MockSc {
const clients: ReturnType[] = [];
const latestClient = () => clients[clients.length - 1];
return {
WellKnownChain,
+ _clients: () => clients,
createScClient: () => {
const result = getFakeClient();
@@ -174,14 +163,13 @@ function connectorFactory () {
return result;
},
- _clients: () => clients,
- latestClient,
latestChain: () =>
- latestClient()._chains()[latestClient()._chains().length - 1]
- };
+ latestClient()._chains()[latestClient()._chains().length - 1],
+ latestClient
+ } as unknown as MockSc;
}
-function setChainSyncyingStatus (isSyncing: boolean) {
+function setChainSyncyingStatus (isSyncing: boolean): void {
getCurrentHealthChecker()._triggerHealthUpdate({
isSyncing,
peers: 1,
@@ -189,13 +177,13 @@ function setChainSyncyingStatus (isSyncing: boolean) {
});
}
-let mockSc: typeof Sc & { latestChain: () => MockChain };
+let mockSc: MockSc;
let mockedHealthChecker: ReturnType;
const getCurrentHealthChecker = () => mockedHealthChecker._latestHealthChecker();
describe('ScProvider', () => {
beforeAll(() => {
- mockSc = connectorFactory() as unknown as typeof Sc & { latestChain: () => MockChain };
+ mockSc = connectorFactory();
mockedHealthChecker = healthCheckerFactory();
});
@@ -348,7 +336,7 @@ describe('ScProvider', () => {
setChainSyncyingStatus(false);
- const responsePromise = provider.send('getData', ['foo']);
+ const responsePromise = provider.send('getData', ['foo']);
await wait(0);
expect(chain._getLatestRequest()).toEqual(
@@ -358,8 +346,8 @@ describe('ScProvider', () => {
const result = { foo: 'foo' };
chain._triggerCallback({
- jsonrpc: '2.0',
id: 1,
+ jsonrpc: '2.0',
result
});
@@ -378,8 +366,8 @@ describe('ScProvider', () => {
setTimeout(() => {
chain._triggerCallback({
- jsonrpc: '2.0',
- id: 1
+ id: 1,
+ jsonrpc: '2.0'
});
}, 0);
@@ -419,8 +407,8 @@ describe('ScProvider', () => {
setTimeout(() => {
chain._triggerCallback({
- jsonrpc: '2.0',
id: 1,
+ jsonrpc: '2.0',
result: unsubscribeToken
});
}, 0);
@@ -458,7 +446,9 @@ describe('ScProvider', () => {
expect(cb).toHaveBeenCalledTimes(2);
expect(cb).toHaveBeenLastCalledWith(null, 2);
- provider.unsubscribe('foo', 'chain_unsubscribeNewHeads', unsubscribeToken);
+ provider
+ .unsubscribe('foo', 'chain_unsubscribeNewHeads', unsubscribeToken)
+ .catch(console.error);
chain._triggerCallback({
jsonrpc: '2.0',
@@ -492,8 +482,8 @@ describe('ScProvider', () => {
});
setTimeout(() => {
chain._triggerCallback({
- jsonrpc: '2.0',
id: 1,
+ jsonrpc: '2.0',
result: unsubscribeToken
});
}, 0);
@@ -523,8 +513,8 @@ describe('ScProvider', () => {
setTimeout(() => {
chain._triggerCallback({
- jsonrpc: '2.0',
id: 1,
+ jsonrpc: '2.0',
result: unsubscribeToken
});
}, 0);
@@ -560,7 +550,7 @@ describe('ScProvider', () => {
await wait(0);
await expect(
- provider.subscribe('foo', 'bar', ['baz'], () => {})
+ provider.subscribe('foo', 'bar', ['baz'], () => undefined)
).rejects.toThrow(/Unsupported subscribe method: bar/);
});
});
@@ -594,8 +584,8 @@ describe('ScProvider', () => {
setTimeout(() => {
chain._triggerCallback({
- jsonrpc: '2.0',
id: 1,
+ jsonrpc: '2.0',
result: unsubscribeToken
});
}, 0);
diff --git a/packages/types/src/primitive/StorageKey.ts b/packages/types/src/primitive/StorageKey.ts
index 46104b4499..7a5582eca5 100644
--- a/packages/types/src/primitive/StorageKey.ts
+++ b/packages/types/src/primitive/StorageKey.ts
@@ -70,8 +70,6 @@ function decodeStorageKey (value?: string | Uint8Array | StorageKey | StorageEnt
}
return {
- // This is unknown[] above (also where assigned), the linter thinks it is any[] here
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
key: fn(...args),
method: fn.method,
section: fn.section
diff --git a/yarn.lock b/yarn.lock
index e2e625e816..681f843845 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -468,40 +468,40 @@ __metadata:
languageName: unknown
linkType: soft
-"@polkadot/dev-test@npm:^0.75.11":
- version: 0.75.11
- resolution: "@polkadot/dev-test@npm:0.75.11"
+"@polkadot/dev-test@npm:^0.75.13":
+ version: 0.75.13
+ resolution: "@polkadot/dev-test@npm:0.75.13"
dependencies:
jsdom: ^22.1.0
tslib: ^2.5.2
- checksum: 2342e72802c761eecb0ba26435070b2bfd14d05fa28c5b8e35962a160a0b4ab2a55955bf03f3e0449ea08a102fb82b424e0a24b3ee87ebc05a6ea72e41c37d08
+ checksum: 817e3f60b227a5c77fcc5e5472478e2460ea21f895e92f78db423245b08b5c60d96d592c96b3bfd58f03087eb891390b5558fd60a346fd9194f7736301ff674b
languageName: node
linkType: hard
-"@polkadot/dev-ts@npm:^0.75.11":
- version: 0.75.11
- resolution: "@polkadot/dev-ts@npm:0.75.11"
+"@polkadot/dev-ts@npm:^0.75.13":
+ version: 0.75.13
+ resolution: "@polkadot/dev-ts@npm:0.75.13"
dependencies:
json5: ^2.2.3
tslib: ^2.5.2
typescript: ^5.0.4
- checksum: f15d902adb68c473d3306f9caf4e0dd5472b56ae0dc4dbc119cb681168b0b0aa113f43e888b9ccea926cc5df836a410e474f3f7bc87cb53514a7af3c6dfa9a9f
+ checksum: cfe6a123055d70fd50f73540d0d5fe11adeacf37aad120aa9a12cb9a09c4181bfe32c33c943b55fb46ceb083849c414bad755b9b808059e5c9d342232b114f55
languageName: node
linkType: hard
-"@polkadot/dev@npm:^0.75.11":
- version: 0.75.11
- resolution: "@polkadot/dev@npm:0.75.11"
+"@polkadot/dev@npm:^0.75.13":
+ version: 0.75.13
+ resolution: "@polkadot/dev@npm:0.75.13"
dependencies:
"@eslint/js": ^8.41.0
- "@polkadot/dev-test": ^0.75.11
- "@polkadot/dev-ts": ^0.75.11
+ "@polkadot/dev-test": ^0.75.13
+ "@polkadot/dev-ts": ^0.75.13
"@rollup/plugin-alias": ^5.0.0
"@rollup/plugin-commonjs": ^25.0.0
"@rollup/plugin-dynamic-import-vars": ^2.0.3
"@rollup/plugin-inject": ^5.0.3
"@rollup/plugin-json": ^6.0.0
- "@rollup/plugin-node-resolve": ^15.0.2
+ "@rollup/plugin-node-resolve": ^15.1.0
"@tsconfig/strictest": ^2.0.1
"@typescript-eslint/eslint-plugin": ^5.59.8
"@typescript-eslint/parser": ^5.59.8
@@ -530,7 +530,7 @@ __metadata:
rollup-plugin-cleanup: ^3.2.1
tslib: ^2.5.2
typescript: ^5.0.4
- webpack: ^5.84.1
+ webpack: ^5.85.0
webpack-cli: ^5.1.1
webpack-dev-server: ^4.15.0
webpack-merge: ^5.9.0
@@ -560,7 +560,7 @@ __metadata:
polkadot-exec-rollup: scripts/polkadot-exec-rollup.mjs
polkadot-exec-tsc: scripts/polkadot-exec-tsc.mjs
polkadot-exec-webpack: scripts/polkadot-exec-webpack.mjs
- checksum: fcdc8fe4f3d2e8837a69344ed360e7289e92d54be6f12e5f70fbc97df85e6d888d70055a4483613b66451a18357f0624acc10400906b84f0a7791acd41a0e880
+ checksum: 62e0e6ddfc1b92e66554e23f1092a23b6df6bda3d71c2e2922dbf8cdc00f84de079cd2ec0d23854544e3660f9f1ca7f275ae2b63c66df0a9e6a9cfc9010b2cfc
languageName: node
linkType: hard
@@ -1012,9 +1012,9 @@ __metadata:
languageName: node
linkType: hard
-"@rollup/plugin-node-resolve@npm:^15.0.2":
- version: 15.0.2
- resolution: "@rollup/plugin-node-resolve@npm:15.0.2"
+"@rollup/plugin-node-resolve@npm:^15.1.0":
+ version: 15.1.0
+ resolution: "@rollup/plugin-node-resolve@npm:15.1.0"
dependencies:
"@rollup/pluginutils": ^5.0.1
"@types/resolve": 1.20.2
@@ -1027,7 +1027,7 @@ __metadata:
peerDependenciesMeta:
rollup:
optional: true
- checksum: 328eafee06ff967a36441b55e77fbd0d4f599d256e5d1977800ee71915846c46bc1b6185df35c7b512ad2b4023b05b65a332be77b8b00b9d8a20f87d056b8166
+ checksum: 83617cdbb90cb780251e8b16dc1671e35bde90b8d4d30e008aefe706b5b643057f6299bdd3226b2a30bf5e4f807a880169de3faa47b9f2ba38d39f294f85f951
languageName: node
linkType: hard
@@ -7515,7 +7515,7 @@ fsevents@~2.3.2:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
- "@polkadot/dev": ^0.75.11
+ "@polkadot/dev": ^0.75.13
"@polkadot/typegen": "workspace:packages/typegen"
"@types/node": ^20.2.5
languageName: unknown
@@ -8971,9 +8971,9 @@ fsevents@~2.3.2:
languageName: node
linkType: hard
-"webpack@npm:^5.84.1":
- version: 5.84.1
- resolution: "webpack@npm:5.84.1"
+"webpack@npm:^5.85.0":
+ version: 5.85.0
+ resolution: "webpack@npm:5.85.0"
dependencies:
"@types/eslint-scope": ^3.7.3
"@types/estree": ^1.0.0
@@ -9004,7 +9004,7 @@ fsevents@~2.3.2:
optional: true
bin:
webpack: bin/webpack.js
- checksum: 646b645df5badf2dac2ddd0193c9e9a177d51283d18f918eead36a0cdf7b750c4111d9ac11d9825c1334cbd0a6fb8f82628fbfb90d0066f927265dd11b47b192
+ checksum: b013be9fbc7f6810d1f229f570c70710ddbc7290f817411acffe4214b2b6c783a041ab1f2005d9e1109f4ab21c136f0f8d8c067a5fb64f20a82dcbc1ee0d3f42
languageName: node
linkType: hard