@witnet/solidity 3.2.0 → 3.2.2

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.
@@ -4,6 +4,7 @@ export default {
4
4
  skipDryRun: true,
5
5
  },
6
6
  "arbitrum:sepolia": {
7
+ name: "Arbitrum Sepolia",
7
8
  network_id: 421614,
8
9
  port: 8517,
9
10
  verify: {
@@ -12,6 +13,7 @@ export default {
12
13
  },
13
14
  },
14
15
  "arbitrum:one": {
16
+ name: "Arbitrum One",
15
17
  mainnet: true,
16
18
  network_id: 42161,
17
19
  port: 9517,
@@ -21,6 +23,7 @@ export default {
21
23
  },
22
24
  },
23
25
  "avalanche:mainnet": {
26
+ name: "Avalanche",
24
27
  mainnet: true,
25
28
  network_id: 43114,
26
29
  port: 9533,
@@ -32,6 +35,7 @@ export default {
32
35
  },
33
36
  },
34
37
  "avalanche:testnet": {
38
+ name: "Avalanche Fuji",
35
39
  network_id: 43113,
36
40
  port: 8533,
37
41
  symbol: "AVAX",
@@ -42,6 +46,7 @@ export default {
42
46
  },
43
47
  },
44
48
  "base:mainnet": {
49
+ name: "Base",
45
50
  mainnet: true,
46
51
  network_id: 8453,
47
52
  port: 9502,
@@ -51,6 +56,7 @@ export default {
51
56
  },
52
57
  },
53
58
  "base:sepolia": {
59
+ name: "Base Sepolia",
54
60
  network_id: 84532,
55
61
  port: 8502,
56
62
  verify: {
@@ -60,6 +66,7 @@ export default {
60
66
  },
61
67
  },
62
68
  "boba:bnb:testnet": {
69
+ name: "Boba BNB Testnet",
63
70
  network_id: 9728,
64
71
  port: 8510,
65
72
  confirmations: 4,
@@ -70,6 +77,7 @@ export default {
70
77
  },
71
78
  },
72
79
  "boba:bnb:mainnet": {
80
+ name: "Boba BNB Mainnet",
73
81
  mainnet: true,
74
82
  network_id: 56288,
75
83
  port: 9510,
@@ -81,6 +89,7 @@ export default {
81
89
  },
82
90
  },
83
91
  "boba:eth:mainnet": {
92
+ name: "Boba",
84
93
  mainnet: true,
85
94
  network_id: 288,
86
95
  port: 9539,
@@ -92,6 +101,7 @@ export default {
92
101
  },
93
102
  },
94
103
  "boba:eth:goerli": {
104
+ name: "Boba Goerli",
95
105
  network_id: 2888,
96
106
  port: 8515,
97
107
  symbol: "BOBA",
@@ -101,6 +111,7 @@ export default {
101
111
  },
102
112
  },
103
113
  "celo:sepolia": {
114
+ name: "Celo Sepolia",
104
115
  confirmations: 5,
105
116
  network_id: 11142220,
106
117
  port: 8538,
@@ -111,6 +122,7 @@ export default {
111
122
  },
112
123
  },
113
124
  "celo:mainnet": {
125
+ name: "Celo",
114
126
  mainnet: true,
115
127
  network_id: 42220,
116
128
  port: 9538,
@@ -121,6 +133,7 @@ export default {
121
133
  },
122
134
  },
123
135
  "conflux:core:testnet": {
136
+ name: "Conflux Core",
124
137
  port: 8540,
125
138
  network_id: 70,
126
139
  symbol: "CFX",
@@ -130,6 +143,7 @@ export default {
130
143
  },
131
144
  },
132
145
  "conflux:core:mainnet": {
146
+ name: "Conflux Core",
133
147
  mainnet: true,
134
148
  port: 9540,
135
149
  network_id: 1029,
@@ -141,6 +155,7 @@ export default {
141
155
  },
142
156
  },
143
157
  "conflux:espace:testnet": {
158
+ name: "Conflux eSpace",
144
159
  port: 8529,
145
160
  network_id: 71,
146
161
  // networkCheckTimeout: 999999,
@@ -153,6 +168,7 @@ export default {
153
168
  },
154
169
  },
155
170
  "conflux:espace:mainnet": {
171
+ name: "Conflux eSpace",
156
172
  mainnet: true,
157
173
  port: 9529,
158
174
  network_id: 1030,
@@ -166,6 +182,7 @@ export default {
166
182
  },
167
183
  },
168
184
  "cronos:testnet": {
185
+ name: "Cronos Testnet",
169
186
  port: 8530,
170
187
  network_id: 338,
171
188
  symbol: "CRO",
@@ -176,6 +193,7 @@ export default {
176
193
  },
177
194
  },
178
195
  "cronos:mainnet": {
196
+ name: "Cronos",
179
197
  mainnet: true,
180
198
  port: 9530,
181
199
  network_id: 25,
@@ -189,10 +207,12 @@ export default {
189
207
  },
190
208
  },
191
209
  "cube:testnet": {
210
+ name: "Cube Testnet",
192
211
  port: 8522,
193
212
  network_id: 1819,
194
213
  },
195
214
  "dogechain:testnet": {
215
+ name: "Dogechain Testnet",
196
216
  port: 8519,
197
217
  network_id: 568,
198
218
  gas: 6000000,
@@ -204,6 +224,7 @@ export default {
204
224
  },
205
225
  },
206
226
  "dogechain:mainnet": {
227
+ name: "Dogechain",
207
228
  mainnet: true,
208
229
  port: 9519,
209
230
  network_id: 2000,
@@ -215,6 +236,7 @@ export default {
215
236
  },
216
237
  },
217
238
  "elastos:testnet": {
239
+ name: "Elastos Testnet",
218
240
  port: 8513,
219
241
  network_id: 21,
220
242
  symbol: "ELA",
@@ -224,6 +246,7 @@ export default {
224
246
  },
225
247
  },
226
248
  "elastos:mainnet": {
249
+ name: "Elastos",
227
250
  mainnet: true,
228
251
  port: 9513,
229
252
  network_id: 20,
@@ -234,6 +257,7 @@ export default {
234
257
  },
235
258
  },
236
259
  "ethereum:mainnet": {
260
+ name: "Ethereum",
237
261
  mainnet: true,
238
262
  network_id: 1,
239
263
  port: 9545,
@@ -243,6 +267,7 @@ export default {
243
267
  },
244
268
  },
245
269
  "ethereum:sepolia": {
270
+ name: "Ethereum Sepolia",
246
271
  confirmations: 2,
247
272
  network_id: 11155111,
248
273
  port: 8506,
@@ -252,6 +277,7 @@ export default {
252
277
  },
253
278
  },
254
279
  "fuse:testnet": {
280
+ name: "Fuse Testnet",
255
281
  port: 8511,
256
282
  network_id: 123,
257
283
  verify: {
@@ -261,6 +287,7 @@ export default {
261
287
  },
262
288
  },
263
289
  "gnosis:mainnet": {
290
+ name: "Gnosis",
264
291
  mainnet: true,
265
292
  port: 9509,
266
293
  network_id: 100,
@@ -271,6 +298,7 @@ export default {
271
298
  },
272
299
  },
273
300
  "gnosis:testnet": {
301
+ name: "Gnosis Chiado",
274
302
  port: 8509,
275
303
  network_id: 10200,
276
304
  symbol: "xDAI",
@@ -281,6 +309,7 @@ export default {
281
309
  },
282
310
  },
283
311
  "kaia:testnet": {
312
+ name: "Kaia Testnet",
284
313
  port: 8527,
285
314
  network_id: 1001,
286
315
  symbol: "KAIA",
@@ -291,6 +320,7 @@ export default {
291
320
  },
292
321
  },
293
322
  "kaia:mainnet": {
323
+ name: "Kaia",
294
324
  mainnet: true,
295
325
  port: 9527,
296
326
  network_id: 8217,
@@ -302,6 +332,7 @@ export default {
302
332
  },
303
333
  },
304
334
  "kava:testnet": {
335
+ name: "Kava Testnet",
305
336
  port: 8526,
306
337
  network_id: 2221,
307
338
  symbol: "KAVA",
@@ -312,6 +343,7 @@ export default {
312
343
  },
313
344
  },
314
345
  "kava:mainnet": {
346
+ name: "Kava",
315
347
  mainnet: true,
316
348
  port: 9526,
317
349
  network_id: 2222,
@@ -324,6 +356,7 @@ export default {
324
356
  },
325
357
  },
326
358
  "kcc:testnet": {
359
+ name: "KCC Testnet",
327
360
  port: 8537,
328
361
  network_id: 322,
329
362
  symbol: "KCS",
@@ -333,6 +366,7 @@ export default {
333
366
  },
334
367
  },
335
368
  "kcc:mainnet": {
369
+ name: "KCC",
336
370
  mainnet: true,
337
371
  port: 9537,
338
372
  network_id: 321,
@@ -343,6 +377,7 @@ export default {
343
377
  },
344
378
  },
345
379
  "mantle:sepolia": {
380
+ name: "Mantle Sepolia",
346
381
  port: 8508,
347
382
  network_id: 5003,
348
383
  symbol: "MNT",
@@ -352,6 +387,7 @@ export default {
352
387
  },
353
388
  },
354
389
  "mantle:mainnet": {
390
+ name: "Mantle",
355
391
  mainnet: true,
356
392
  port: 9508,
357
393
  network_id: 5000,
@@ -362,12 +398,14 @@ export default {
362
398
  },
363
399
  },
364
400
  "metis:mainnet": {
401
+ name: "Metis",
365
402
  mainnet: true,
366
403
  port: 7536,
367
404
  network_id: 1088,
368
405
  symbol: "METIS",
369
406
  },
370
407
  "metis:sepolia": {
408
+ name: "Metis Sepolia",
371
409
  port: 8536,
372
410
  network_id: 59902,
373
411
  symbol: "METIS",
@@ -378,17 +416,20 @@ export default {
378
416
  },
379
417
  },
380
418
  "meter:testnet": {
419
+ name: "Meter Testnet",
381
420
  port: 8523,
382
421
  network_id: 83,
383
422
  symbol: "MTR",
384
423
  },
385
424
  "meter:mainnet": {
425
+ name: "Meter",
386
426
  mainnet: true,
387
427
  port: 9523,
388
428
  network_id: 82,
389
429
  symbol: "MTR",
390
430
  },
391
431
  "moonbeam:mainnet": {
432
+ name: "Moonbeam",
392
433
  mainnet: true,
393
434
  port: 9531,
394
435
  network_id: 1284,
@@ -399,6 +440,7 @@ export default {
399
440
  },
400
441
  },
401
442
  "moonbeam:moonriver": {
443
+ name: "Moonriver",
402
444
  mainnet: true,
403
445
  port: 7531,
404
446
  network_id: 1285,
@@ -409,6 +451,7 @@ export default {
409
451
  },
410
452
  },
411
453
  "moonbeam:moonbase": {
454
+ name: "Moonbase",
412
455
  port: 8531,
413
456
  network_id: 1287,
414
457
  gas: 15000000,
@@ -419,6 +462,7 @@ export default {
419
462
  },
420
463
  },
421
464
  "okx:oktchain:testnet": {
465
+ name: "OKX Testnet",
422
466
  port: 8528,
423
467
  network_id: 65,
424
468
  symbol: "OKT",
@@ -428,6 +472,7 @@ export default {
428
472
  },
429
473
  },
430
474
  "okx:oktchain:mainnet": {
475
+ name: "OKX",
431
476
  mainnet: true,
432
477
  port: 9528,
433
478
  network_id: 66,
@@ -438,6 +483,7 @@ export default {
438
483
  },
439
484
  },
440
485
  "okx:x1:sepolia": {
486
+ name: "XLayer Sepolia",
441
487
  port: 8505,
442
488
  network_id: 195,
443
489
  symbol: "OKB",
@@ -447,6 +493,7 @@ export default {
447
493
  },
448
494
  },
449
495
  "optimism:sepolia": {
496
+ name: "OP Sepolia",
450
497
  chain_type: "op",
451
498
  port: 8503,
452
499
  network_id: 11155420,
@@ -457,6 +504,7 @@ export default {
457
504
  },
458
505
  },
459
506
  "optimism:mainnet": {
507
+ name: "Optimism",
460
508
  mainnet: true,
461
509
  port: 9520,
462
510
  network_id: 10,
@@ -468,6 +516,7 @@ export default {
468
516
  },
469
517
  },
470
518
  "polygon:amoy": {
519
+ name: "Polygon Amoy",
471
520
  port: 8535,
472
521
  network_id: 80002,
473
522
  confirmations: 2,
@@ -479,6 +528,7 @@ export default {
479
528
  },
480
529
  },
481
530
  "polygon:mainnet": {
531
+ name: "Polygon",
482
532
  mainnet: true,
483
533
  port: 9535,
484
534
  network_id: 137,
@@ -490,6 +540,7 @@ export default {
490
540
  },
491
541
  },
492
542
  "polygon:zkevm:testnet": {
543
+ name: "Polygon zkEVM",
493
544
  port: 8512,
494
545
  network_id: 1442,
495
546
  verify: {
@@ -498,6 +549,7 @@ export default {
498
549
  },
499
550
  },
500
551
  "polygon:zkevm:mainnet": {
552
+ name: "Polygon zkEVM",
501
553
  mainnet: true,
502
554
  port: 9512,
503
555
  network_id: 1101,
@@ -507,17 +559,20 @@ export default {
507
559
  },
508
560
  },
509
561
  "reef:testnet": {
562
+ name: "Reef Testnet",
510
563
  port: 8532,
511
564
  network_id: 13939,
512
565
  symbol: "REEF",
513
566
  },
514
567
  "reef:mainnet": {
568
+ name: "Reef",
515
569
  mainnet: true,
516
570
  port: 9532,
517
571
  network_id: 13939,
518
572
  symbol: "REEF",
519
573
  },
520
574
  "scroll:sepolia": {
575
+ name: "Scroll Sepolia",
521
576
  port: 8514,
522
577
  network_id: 534351,
523
578
  verify: {
@@ -526,6 +581,7 @@ export default {
526
581
  },
527
582
  },
528
583
  "scroll:mainnet": {
584
+ name: "Scroll",
529
585
  mainnet: true,
530
586
  port: 9514,
531
587
  network_id: 534352,
@@ -535,17 +591,20 @@ export default {
535
591
  },
536
592
  },
537
593
  "syscoin:testnet": {
594
+ name: "Syscoin Testnet",
538
595
  port: 8521,
539
596
  network_id: 5700,
540
597
  symbol: "SYS",
541
598
  },
542
599
  "syscoin:mainnet": {
600
+ name: "Syscoin",
543
601
  mainnet: true,
544
602
  port: 9521,
545
603
  network_id: 57,
546
604
  symbol: "SYS",
547
605
  },
548
606
  "syscoin:rollux:testnet": {
607
+ name: "Syscoin Rollux Testnet",
549
608
  port: 8507,
550
609
  network_id: 57000,
551
610
  symbol: "SYS",
@@ -556,12 +615,14 @@ export default {
556
615
  },
557
616
  },
558
617
  "ten:testnet": {
618
+ name: "TEN Testnet",
559
619
  port: 8504,
560
620
  network_id: 8443,
561
621
  gas: 15000000,
562
622
  symbol: "ETH",
563
623
  },
564
624
  "unichain:sepolia": {
625
+ name: "UniChain Sepolia",
565
626
  port: 8500,
566
627
  network_id: 1301,
567
628
  confirmations: 8,
@@ -571,17 +632,20 @@ export default {
571
632
  },
572
633
  },
573
634
  "ultron:testnet": {
635
+ name: "Ultron Testnet",
574
636
  port: 8516,
575
637
  network_id: 1230,
576
638
  symbol: "ULX",
577
639
  },
578
640
  "ultron:mainnet": {
641
+ name: "Ultron",
579
642
  mainnet: true,
580
643
  port: 9516,
581
644
  network_id: 1231,
582
645
  symbol: "ULX",
583
646
  },
584
647
  "worldchain:mainnet": {
648
+ name: "Worldchain",
585
649
  mainnet: true,
586
650
  port: 9501,
587
651
  network_id: 480,
@@ -591,6 +655,7 @@ export default {
591
655
  },
592
656
  },
593
657
  "worldchain:sepolia": {
658
+ name: "Worldchain Sepolia",
594
659
  port: 8501,
595
660
  network_id: 4801,
596
661
  verify: {
@@ -599,6 +664,7 @@ export default {
599
664
  },
600
665
  },
601
666
  "zksync:sepolia": {
667
+ name: "zkSync Sepolia",
602
668
  port: 8499,
603
669
  network_id: 300,
604
670
  verify: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@witnet/solidity",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "description": "Wit/Oracle Solidity Framework for EVM-compatible chains",
5
5
  "author": "Witnet Foundation <info@witnet.foundation>",
6
6
  "license": "MIT",
@@ -11,40 +11,56 @@ module.exports = async (flags = {}, [ecosystem]) => {
11
11
  ecosystem = utils.getEvmNetworkByChainId(chainId);
12
12
  } catch (_err) {}
13
13
  }
14
- const networks = Object.fromEntries(
15
- Object.entries(helpers.supportedNetworks())
16
- .filter(([, config]) => {
17
- return (
18
- !flags ||
19
- (flags?.mainnets && config.mainnet) ||
20
- (flags?.testnets && !config.mainnet) ||
21
- (!flags?.mainnets && !flags?.testnets)
22
- );
23
- })
24
- .map(([network, config]) => [
25
- network,
26
- {
27
- browser: config?.verified,
28
- id: config?.network_id,
29
- mainnet: config?.mainnet,
30
- match: ecosystem && network.toLowerCase().indexOf(ecosystem.toLowerCase()) > -1,
31
- name: network,
32
- symbol: config?.symbol,
33
- },
34
- ]),
35
- );
36
- helpers.traceTable(
37
- Object.values(networks).map((network) => [
38
- network.match ? helpers.colors.mcyan(network.name) : helpers.colors.cyan(network.name),
39
- network.match ? helpers.colors.lwhite(network.symbol) : helpers.colors.white(network.symbol),
40
- network.match
41
- ? helpers.colors.myellow(helpers.commas(network.id))
42
- : helpers.colors.yellow(helpers.commas(network.id)),
43
- network.match ? helpers.colors.white(network.browser || "") : helpers.colors.gray(network.browser || ""),
44
- ]),
45
- {
46
- headlines: [":Network", ":Fee token", "Network Id", ":Verified Block Explorer"],
47
- },
14
+
15
+ const networks = Object.values(
16
+ Object.fromEntries(
17
+ Object.entries(utils.getEvmNetworks())
18
+ .filter(([, config]) => {
19
+ return (
20
+ !flags ||
21
+ (flags?.mainnets && config.mainnet) ||
22
+ (flags?.testnets && !config.mainnet) ||
23
+ (!flags?.mainnets && !flags?.testnets)
24
+ );
25
+ })
26
+ .map(([network, config]) => [
27
+ network,
28
+ {
29
+ explorerUrl: config?.explorerUrl,
30
+ id: config?.chainId,
31
+ mainnet: config?.mainnet,
32
+ match: ecosystem && network.toLowerCase().indexOf(ecosystem.toLowerCase()) > -1,
33
+ name: config.name || network,
34
+ symbol: config?.symbol,
35
+ pushOnly: config?.pushOnly || false,
36
+ addresses: config?.addresses || {},
37
+ },
38
+ ]),
39
+ ),
48
40
  );
49
- console.info(`^ Listed ${Object.keys(networks).length} networks.`);
41
+
42
+ if (networks.length > 0) {
43
+ helpers.traceTable(
44
+ networks.map((network) => [
45
+ network.name,
46
+ network.symbol,
47
+ network.id,
48
+ network.pushOnly ? "PUSH ONLY" : "PUSH & PULL",
49
+ network.explorerUrl,
50
+ ]),
51
+ {
52
+ headlines: [":Network", ":Fee Token", "Network Id", ":Oracle Model", ":Verified Block Explorer"],
53
+ colors: [
54
+ helpers.colors.mcyan,
55
+ helpers.colors.lwhite,
56
+ helpers.colors.myellow,
57
+ helpers.colors.lmagenta,
58
+ helpers.colors.white,
59
+ ],
60
+ },
61
+ );
62
+ console.info(`^ Listed ${Object.keys(networks).length} networks.`);
63
+ } else {
64
+ console.info("^ No networks found with the given filters.");
65
+ }
50
66
  };
@@ -12,6 +12,13 @@ const WITNET_SDK_RADON_ASSETS_PATH = process.env.WITNET_SDK_RADON_ASSETS_PATH ||
12
12
 
13
13
  const isModuleInitialized = fs.existsSync("./witnet/assets/index.cjs");
14
14
 
15
+ function camelize(str) {
16
+ return str
17
+ .split(/[\s-_]+/)
18
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
19
+ .join("");
20
+ }
21
+
15
22
  function* chunks(arr, n) {
16
23
  for (let i = 0; i < arr.length; i += n) {
17
24
  yield arr.slice(i, i + n);
@@ -120,11 +127,13 @@ function flattenObject(ob) {
120
127
  }
121
128
 
122
129
  function getNetworkAddresses(network) {
123
- let res = addresses?.default;
124
- getNetworkTagsFromString(network).forEach((net) => {
125
- res = merge(res, addresses[net]);
130
+ let res = merge({}, addresses?.default || {});
131
+ const tags = getNetworkTagsFromString(network);
132
+ tags.forEach((net) => {
133
+ res = merge({}, res, addresses?.[net] || {});
126
134
  });
127
135
  return merge(
136
+ {},
128
137
  res,
129
138
  fs.existsSync(`${WITNET_SDK_RADON_ASSETS_PATH}/../addresses.json`)
130
139
  ? require(`${WITNET_SDK_RADON_ASSETS_PATH}/../addresses.json`)[network.toLowerCase()]
@@ -133,9 +142,9 @@ function getNetworkAddresses(network) {
133
142
  }
134
143
 
135
144
  function getNetworkArtifacts(network) {
136
- let res = artifacts?.default;
145
+ let res = merge({}, artifacts?.default || {});
137
146
  getNetworkTagsFromString(network).forEach((net) => {
138
- res = merge(res, artifacts[net]);
147
+ res = merge({}, res, artifacts?.[net] || {});
139
148
  });
140
149
  return res;
141
150
  }
@@ -225,14 +234,33 @@ function supportedNetworks(ecosystem) {
225
234
  .sort()
226
235
  .filter((network) => network.indexOf(":") >= 0 && (!ecosystem || network.startsWith(ecosystem.toLowerCase())))
227
236
  .map((network) => {
237
+ const addrs = { ...getNetworkAddresses(network) };
238
+ const _artfs = { ...getNetworkArtifacts(network) };
239
+ const {
240
+ core: { WitOracle },
241
+ apps: { WitRandomnessV2, WitRandomnessV3, WitPriceFeeds },
242
+ } = addrs;
228
243
  return [
229
244
  network,
230
245
  {
246
+ addresses: {
247
+ WitOracle,
248
+ WitRandomness: WitRandomnessV3 || WitRandomnessV2,
249
+ WitPriceFeeds,
250
+ },
251
+ chainId: networks[network].network_id,
252
+ ecosystem: network.split(":")[0].toLowerCase(),
253
+ explorerUrl: networks[network]?.verify?.explorerUrl,
231
254
  mainnet: networks[network]?.mainnet || false,
232
- network_id: networks[network].network_id,
255
+ name:
256
+ networks[network]?.name ||
257
+ network
258
+ .split(":")
259
+ .map((part) => camelize(part))
260
+ .join(" "),
233
261
  port: networks[network].port,
262
+ pushOnly: getNetworkArtifacts(network)?.core?.WitOracle.indexOf("PushOnly") >= 0 ?? false,
234
263
  symbol: networks[network]?.symbol || "ETH",
235
- verified: networks[network]?.verify?.explorerUrl,
236
264
  },
237
265
  ];
238
266
  }),