@acala-network/chopsticks-testing 0.9.1-2 → 0.9.1-4

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/cjs/index.js CHANGED
@@ -1,27 +1,71 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ createConfig: function() {
13
+ return createConfig;
14
+ },
15
+ defer: function() {
16
+ return defer;
17
+ },
18
+ expectHex: function() {
19
+ return expectHex;
20
+ },
21
+ expectJson: function() {
22
+ return expectJson;
23
+ },
24
+ matchEvents: function() {
25
+ return matchEvents;
26
+ },
27
+ matchSystemEvents: function() {
28
+ return matchSystemEvents;
29
+ },
30
+ redact: function() {
31
+ return redact;
32
+ },
33
+ sendTransaction: function() {
34
+ return sendTransaction;
35
+ },
36
+ setupContext: function() {
37
+ return setupContext;
38
+ },
39
+ setupContextWithConfig: function() {
40
+ return setupContextWithConfig;
41
+ },
42
+ setupNetworks: function() {
43
+ return setupNetworks;
44
+ },
45
+ testingPairs: function() {
46
+ return testingPairs;
7
47
  }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.testingPairs = exports.sendTransaction = exports.defer = exports.redact = exports.matchSystemEvents = exports.matchEvents = exports.expectHex = exports.expectJson = exports.setupNetworks = exports.setupContextWithConfig = exports.setupContext = exports.createConfig = void 0;
18
- const api_1 = require("@polkadot/api");
19
- const chopsticks_1 = require("@acala-network/chopsticks");
20
- const keyring_1 = require("@polkadot/keyring");
21
- const vitest_1 = require("vitest");
22
- __exportStar(require("./check"), exports);
23
- __exportStar(require("./signFake"), exports);
24
- const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, db, timeout, port, maxMemoryBlockCount, resume, }) => {
48
+ });
49
+ const _api = require("@polkadot/api");
50
+ const _chopsticks = require("@acala-network/chopsticks");
51
+ const _keyring = require("@polkadot/keyring");
52
+ const _vitest = require("vitest");
53
+ _export_star(require("./check.js"), exports);
54
+ _export_star(require("./signFake.js"), exports);
55
+ function _export_star(from, to) {
56
+ Object.keys(from).forEach(function(k) {
57
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
58
+ Object.defineProperty(to, k, {
59
+ enumerable: true,
60
+ get: function() {
61
+ return from[k];
62
+ }
63
+ });
64
+ }
65
+ });
66
+ return from;
67
+ }
68
+ const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, db, timeout, port, maxMemoryBlockCount, resume })=>{
25
69
  // random port if not specified
26
70
  port = port ?? Math.floor(Math.random() * 10000) + 10000;
27
71
  const config = {
@@ -29,32 +73,30 @@ const createConfig = ({ endpoint, blockNumber, blockHash, wasmOverride, db, time
29
73
  port,
30
74
  block: blockNumber || blockHash,
31
75
  'mock-signature-host': true,
32
- 'build-block-mode': chopsticks_1.BuildBlockMode.Manual,
76
+ 'build-block-mode': _chopsticks.BuildBlockMode.Manual,
33
77
  'max-memory-block-count': maxMemoryBlockCount ?? 100,
34
78
  db,
35
79
  'wasm-override': wasmOverride,
36
80
  timeout,
37
- resume: resume ?? false,
81
+ resume: resume ?? false
38
82
  };
39
83
  return config;
40
84
  };
41
- exports.createConfig = createConfig;
42
- const setupContext = async (option) => {
43
- return (0, exports.setupContextWithConfig)((0, exports.createConfig)(option));
85
+ const setupContext = async (option)=>{
86
+ return setupContextWithConfig(createConfig(option));
44
87
  };
45
- exports.setupContext = setupContext;
46
- const setupContextWithConfig = async ({ timeout, ...config }) => {
47
- const { chain, listenPort, close } = await (0, chopsticks_1.setupWithServer)(config);
88
+ const setupContextWithConfig = async ({ timeout, ...config })=>{
89
+ const { chain, listenPort, close } = await (0, _chopsticks.setupWithServer)(config);
48
90
  const url = `ws://localhost:${listenPort}`;
49
- const ws = new api_1.WsProvider(url, undefined, undefined, timeout);
50
- const api = await api_1.ApiPromise.create({
91
+ const ws = new _api.WsProvider(url, undefined, undefined, timeout);
92
+ const api = await _api.ApiPromise.create({
51
93
  provider: ws,
52
94
  signedExtensions: {
53
95
  SetEvmOrigin: {
54
96
  extrinsic: {},
55
- payload: {},
56
- },
57
- },
97
+ payload: {}
98
+ }
99
+ }
58
100
  });
59
101
  await api.isReady;
60
102
  return {
@@ -63,82 +105,95 @@ const setupContextWithConfig = async ({ timeout, ...config }) => {
63
105
  ws,
64
106
  api,
65
107
  dev: {
66
- newBlock: (param) => {
67
- return ws.send('dev_newBlock', [param]);
108
+ newBlock: (param)=>{
109
+ return ws.send('dev_newBlock', [
110
+ param
111
+ ]);
68
112
  },
69
- setStorage: (values, blockHash) => {
70
- return ws.send('dev_setStorage', [values, blockHash]);
113
+ setStorage: (values, blockHash)=>{
114
+ return ws.send('dev_setStorage', [
115
+ values,
116
+ blockHash
117
+ ]);
71
118
  },
72
- timeTravel: (date) => {
73
- return ws.send('dev_timeTravel', [date]);
74
- },
75
- setHead: (hashOrNumber) => {
76
- return ws.send('dev_setHead', [hashOrNumber]);
119
+ timeTravel: (date)=>{
120
+ return ws.send('dev_timeTravel', [
121
+ date
122
+ ]);
77
123
  },
124
+ setHead: (hashOrNumber)=>{
125
+ return ws.send('dev_setHead', [
126
+ hashOrNumber
127
+ ]);
128
+ }
78
129
  },
79
- async teardown() {
130
+ async teardown () {
80
131
  await api.disconnect();
81
132
  await close();
82
133
  },
83
- async pause() {
84
- await ws.send('dev_setBlockBuildMode', [chopsticks_1.BuildBlockMode.Instant]);
134
+ async pause () {
135
+ await ws.send('dev_setBlockBuildMode', [
136
+ _chopsticks.BuildBlockMode.Instant
137
+ ]);
85
138
  // log a bit later to ensure the message is visible
86
- setTimeout(() => console.log(`Test paused. Polkadot.js apps URL: https://polkadot.js.org/apps/?rpc=${url}`), 100);
87
- return new Promise((_resolve) => { }); // wait forever
88
- },
139
+ setTimeout(()=>console.log(`Test paused. Polkadot.js apps URL: https://polkadot.js.org/apps/?rpc=${url}`), 100);
140
+ return new Promise((_resolve)=>{}) // wait forever
141
+ ;
142
+ }
89
143
  };
90
144
  };
91
- exports.setupContextWithConfig = setupContextWithConfig;
92
- const setupNetworks = async (networkOptions) => {
145
+ const setupNetworks = async (networkOptions)=>{
93
146
  const ret = {};
94
147
  let wasmOverriden = false;
95
- for (const [name, options] of Object.entries(networkOptions)) {
96
- const config = typeof options === 'string' ? await (0, chopsticks_1.fetchConfig)(options) : options ?? (await (0, chopsticks_1.fetchConfig)(name));
97
- ret[name] = await (0, exports.setupContextWithConfig)(config);
148
+ for (const [name, options] of Object.entries(networkOptions)){
149
+ const config = typeof options === 'string' ? await (0, _chopsticks.fetchConfig)(options) : options ?? await (0, _chopsticks.fetchConfig)(name);
150
+ ret[name] = await setupContextWithConfig(config);
98
151
  wasmOverriden ||= config['wasm-override'] != null;
99
152
  }
100
- const relaychainName = Object.keys(ret).filter((x) => ['polkadot', 'kusama'].includes(x.toLocaleLowerCase()))[0];
153
+ const relaychainName = Object.keys(ret).filter((x)=>[
154
+ 'polkadot',
155
+ 'kusama'
156
+ ].includes(x.toLocaleLowerCase()))[0];
101
157
  const { [relaychainName]: relaychain, ...parachains } = ret;
102
158
  if (relaychain) {
103
- for (const parachain of Object.values(parachains)) {
104
- await (0, chopsticks_1.connectVertical)(relaychain.chain, parachain.chain);
159
+ for (const parachain of Object.values(parachains)){
160
+ await (0, _chopsticks.connectVertical)(relaychain.chain, parachain.chain);
105
161
  }
106
162
  }
107
- const parachainList = Object.values(parachains).map((i) => i.chain);
163
+ const parachainList = Object.values(parachains).map((i)=>i.chain);
108
164
  if (parachainList.length > 0) {
109
- await (0, chopsticks_1.connectParachains)(parachainList);
165
+ await (0, _chopsticks.connectParachains)(parachainList);
110
166
  }
111
167
  if (wasmOverriden) {
112
168
  // trigger runtime upgrade if needed (due to wasm override)
113
- for (const chain of Object.values(ret)) {
169
+ for (const chain of Object.values(ret)){
114
170
  await chain.dev.newBlock();
115
171
  }
116
172
  // handle xcm version message if needed (due to wasm override triggered xcm version upgrade)
117
- for (const chain of Object.values(ret)) {
173
+ for (const chain of Object.values(ret)){
118
174
  await chain.dev.newBlock();
119
175
  }
120
176
  }
121
177
  return ret;
122
178
  };
123
- exports.setupNetworks = setupNetworks;
124
- const processCodecOrArray = (codec, fn) => Array.isArray(codec) ? codec.map(fn) : fn(codec);
125
- const toHuman = (codec) => processCodecOrArray(codec, (c) => c?.toHuman?.() ?? c);
126
- const toJson = (codec) => processCodecOrArray(codec, (c) => c?.toJSON?.() ?? c);
127
- const toHex = (codec) => processCodecOrArray(codec, (c) => c?.toHex?.() ?? c);
128
- const expectJson = (codec) => {
129
- return (0, vitest_1.expect)(toJson(codec));
179
+ const processCodecOrArray = (codec, fn)=>Array.isArray(codec) ? codec.map(fn) : fn(codec);
180
+ const toHuman = (codec)=>processCodecOrArray(codec, (c)=>c?.toHuman?.() ?? c);
181
+ const toJson = (codec)=>processCodecOrArray(codec, (c)=>c?.toJSON?.() ?? c);
182
+ const toHex = (codec)=>processCodecOrArray(codec, (c)=>c?.toHex?.() ?? c);
183
+ const expectJson = (codec)=>{
184
+ return (0, _vitest.expect)(toJson(codec));
130
185
  };
131
- exports.expectJson = expectJson;
132
- const expectHex = (codec) => {
133
- return (0, vitest_1.expect)(toHex(codec));
186
+ const expectHex = (codec)=>{
187
+ return (0, _vitest.expect)(toHex(codec));
134
188
  };
135
- exports.expectHex = expectHex;
136
- const _matchEvents = async (msg, events, ...filters) => {
137
- let data = toHuman(await events).map(({ event: { index: _, ...event } }) => event);
189
+ const _matchEvents = async (msg, events, ...filters)=>{
190
+ let data = toHuman(await events).map(({ event: { index: _, ...event } })=>event);
138
191
  if (filters.length > 0) {
139
- const filtersArr = Array.isArray(filters) ? filters : [filters];
140
- data = data.filter((evt) => {
141
- return filtersArr.some((filter) => {
192
+ const filtersArr = Array.isArray(filters) ? filters : [
193
+ filters
194
+ ];
195
+ data = data.filter((evt)=>{
196
+ return filtersArr.some((filter)=>{
142
197
  if (typeof filter === 'string') {
143
198
  return evt.section === filter;
144
199
  }
@@ -147,19 +202,17 @@ const _matchEvents = async (msg, events, ...filters) => {
147
202
  });
148
203
  });
149
204
  }
150
- return (0, vitest_1.expect)(data).toMatchSnapshot(msg);
205
+ return (0, _vitest.expect)(data).toMatchSnapshot(msg);
151
206
  };
152
- const matchEvents = async (events, ...filters) => {
153
- return _matchEvents('events', (0, exports.redact)(events), ...filters);
207
+ const matchEvents = async (events, ...filters)=>{
208
+ return _matchEvents('events', redact(events), ...filters);
154
209
  };
155
- exports.matchEvents = matchEvents;
156
- const matchSystemEvents = async ({ api }, ...filters) => {
157
- await _matchEvents('system events', (0, exports.redact)(api.query.system.events()), ...filters);
210
+ const matchSystemEvents = async ({ api }, ...filters)=>{
211
+ await _matchEvents('system events', redact(api.query.system.events()), ...filters);
158
212
  };
159
- exports.matchSystemEvents = matchSystemEvents;
160
- const redact = async (data) => {
213
+ const redact = async (data)=>{
161
214
  const json = toHuman(await data);
162
- const process = (obj) => {
215
+ const process = (obj)=>{
163
216
  if (obj == null) {
164
217
  return obj;
165
218
  }
@@ -188,26 +241,27 @@ const redact = async (data) => {
188
241
  return obj;
189
242
  }
190
243
  if (typeof obj === 'object') {
191
- return Object.fromEntries(Object.entries(obj).map(([k, v]) => [k, process(v)]));
244
+ return Object.fromEntries(Object.entries(obj).map(([k, v])=>[
245
+ k,
246
+ process(v)
247
+ ]));
192
248
  }
193
249
  return obj;
194
250
  };
195
251
  return process(json);
196
252
  };
197
- exports.redact = redact;
198
253
  function defer() {
199
254
  const deferred = {};
200
- deferred.promise = new Promise((resolve, reject) => {
255
+ deferred.promise = new Promise((resolve, reject)=>{
201
256
  deferred.resolve = resolve;
202
257
  deferred.reject = reject;
203
258
  });
204
259
  return deferred;
205
260
  }
206
- exports.defer = defer;
207
- const sendTransaction = async (tx) => {
261
+ const sendTransaction = async (tx)=>{
208
262
  const signed = await tx;
209
263
  const deferred = defer();
210
- await signed.send((status) => {
264
+ await signed.send((status)=>{
211
265
  console.log('tranaction status: ', status.status.toHuman());
212
266
  if (status.isInBlock || status.isFinalized) {
213
267
  deferred.resolve(status.events);
@@ -217,14 +271,18 @@ const sendTransaction = async (tx) => {
217
271
  }
218
272
  });
219
273
  return {
220
- events: deferred.promise,
274
+ events: deferred.promise
221
275
  };
222
276
  };
223
- exports.sendTransaction = sendTransaction;
224
- const testingPairs = (keyringType = 'ed25519', ss58Format) => {
225
- const keyringEth = (0, keyring_1.createTestKeyring)({ type: 'ethereum' });
277
+ const testingPairs = (keyringType = 'ed25519', ss58Format)=>{
278
+ const keyringEth = (0, _keyring.createTestKeyring)({
279
+ type: 'ethereum'
280
+ });
226
281
  // default to ed25519 because sr25519 signature is non-deterministic
227
- const keyring = new keyring_1.Keyring({ type: keyringType, ss58Format });
282
+ const keyring = new _keyring.Keyring({
283
+ type: keyringType,
284
+ ss58Format
285
+ });
228
286
  return {
229
287
  alice: keyring.addFromUri('//Alice'),
230
288
  bob: keyring.addFromUri('//Bob'),
@@ -237,7 +295,6 @@ const testingPairs = (keyringType = 'ed25519', ss58Format) => {
237
295
  dorothy: keyringEth.getPair('0x773539d4Ac0e786233D90A233654ccEE26a613D9'),
238
296
  ethan: keyringEth.getPair('0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB'),
239
297
  keyring,
240
- keyringEth,
298
+ keyringEth
241
299
  };
242
300
  };
243
- exports.testingPairs = testingPairs;
@@ -0,0 +1 @@
1
+ {"type": "commonjs"}
@@ -1,22 +1,40 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signFake = exports.signFakeWithApi = void 0;
4
- const signFakeWithApi = async (api, tx, addr, options = {}) => {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ signFake: function() {
13
+ return signFake;
14
+ },
15
+ signFakeWithApi: function() {
16
+ return signFakeWithApi;
17
+ }
18
+ });
19
+ const signFakeWithApi = async (api, tx, addr, options = {})=>{
5
20
  const nonce = options.nonce ?? (await api.query.system.account(addr)).nonce;
6
- (0, exports.signFake)(tx, addr, {
21
+ signFake(tx, addr, {
7
22
  nonce,
8
23
  genesisHash: api.genesisHash,
9
24
  runtimeVersion: api.runtimeVersion,
10
25
  blockHash: api.genesisHash,
11
- ...options,
26
+ ...options
12
27
  });
13
28
  };
14
- exports.signFakeWithApi = signFakeWithApi;
15
- const signFake = (tx, addr, options) => {
29
+ const signFake = (tx, addr, options)=>{
16
30
  const mockSignature = new Uint8Array(64);
17
31
  mockSignature.fill(0xcd);
18
- mockSignature.set([0xde, 0xad, 0xbe, 0xef]);
32
+ mockSignature.set([
33
+ 0xde,
34
+ 0xad,
35
+ 0xbe,
36
+ 0xef
37
+ ]);
19
38
  tx.signFake(addr, options);
20
39
  tx.signature.set(mockSignature);
21
40
  };
22
- exports.signFake = signFake;