dequanto 0.1.15 → 0.1.21

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.
@@ -15,6 +15,7 @@ export class GeneratorFromAbi {
15
15
  return Gen;
16
16
  }
17
17
  async generate(abiJson, opts) {
18
+ let targetType = opts.target ?? 'ts';
18
19
  let methodsArr = alot(abiJson)
19
20
  .filter(x => x.type === 'function' || x.type === 'constructor')
20
21
  .groupBy(x => x.name)
@@ -30,18 +31,9 @@ export class GeneratorFromAbi {
30
31
  return null;
31
32
  })
32
33
  .filter(Boolean)
34
+ .map(x => x[opts?.target ?? 'ts'])
33
35
  .map(Str.formatMethod)
34
36
  .toArray();
35
- // let methodInterfacesArr = alot(abiJson)
36
- // .filter(x => x.type === 'function')
37
- // .groupBy(x => x.name)
38
- // .map(group => {
39
- // let item = group.values[0];
40
- // return Gen.serializeMethodInterfacesTs(item.name, group.values);
41
- // })
42
- // .filter(Boolean)
43
- // .toArray();
44
- //let methodInterfacesAll = Gen.serializeMethodInterfacesAllTs(methodInterfacesArr);
45
37
  let methodTypes = alot(abiJson)
46
38
  .filter(x => x.type === 'function')
47
39
  .groupBy(x => x.name)
@@ -55,6 +47,7 @@ export class GeneratorFromAbi {
55
47
  .filter(x => x.type === 'event')
56
48
  .map(x => Gen.serializeEvent(x))
57
49
  .filter(Boolean)
50
+ .map(x => x[opts?.target ?? 'ts'])
58
51
  .map(Str.formatMethod);
59
52
  let eventTypes = alot(abiJson)
60
53
  .filter(x => x.type === 'event')
@@ -70,11 +63,13 @@ export class GeneratorFromAbi {
70
63
  .filter(x => x.type === 'event')
71
64
  .map(x => Gen.serializeEventExtractor(x))
72
65
  .filter(Boolean)
66
+ .map(x => x[opts?.target ?? 'ts'])
73
67
  .map(Str.formatMethod);
74
68
  let eventsFetchersArr = abiJson
75
69
  .filter(x => x.type === 'event')
76
70
  .map(x => Gen.serializeEventFetcher(x))
77
71
  .filter(Boolean)
72
+ .map(x => x[opts?.target ?? 'ts'])
78
73
  .map(Str.formatMethod);
79
74
  // let eventInterfaces = abiJson
80
75
  // .filter(x => x.type === 'event')
@@ -86,7 +81,7 @@ export class GeneratorFromAbi {
86
81
  let eventsExtractors = eventsExtractorsArr.join('\n\n');
87
82
  let eventsFetchers = eventsFetchersArr.join('\n\n');
88
83
  let name = opts.name;
89
- let templatePath = $path.resolve(`/src/gen/ContractTemplate.ts`);
84
+ let templatePath = $path.resolve(`/src/gen/ContractTemplate.${targetType}`);
90
85
  let template = await File.readAsync(templatePath, { skipHooks: true });
91
86
  let EtherscanStr;
92
87
  let EthWeb3ClientStr;
@@ -94,13 +89,14 @@ export class GeneratorFromAbi {
94
89
  let sourceUri;
95
90
  let Web3ClientOptions = '';
96
91
  let EvmScanOptions = '';
92
+ let importPfx = targetType === 'js' ? 'dequanto' : '@dequanto';
97
93
  switch (opts.network) {
98
94
  case 'bsc':
99
95
  EtherscanStr = 'Bscscan';
100
96
  EthWeb3ClientStr = 'BscWeb3Client';
101
97
  imports = [
102
- `import { Bscscan } from '@dequanto/explorer/Bscscan'`,
103
- `import { BscWeb3Client } from '@dequanto/clients/BscWeb3Client'`,
98
+ `import { Bscscan } from '${importPfx}/explorer/Bscscan'`,
99
+ `import { BscWeb3Client } from '${importPfx}/clients/BscWeb3Client'`,
104
100
  ];
105
101
  sourceUri = `https://bscscan.com/address/${opts.address}#code`;
106
102
  break;
@@ -108,8 +104,8 @@ export class GeneratorFromAbi {
108
104
  EtherscanStr = 'Polyscan';
109
105
  EthWeb3ClientStr = 'PolyWeb3Client';
110
106
  imports = [
111
- `import { Polyscan } from '@dequanto/explorer/Polyscan'`,
112
- `import { PolyWeb3Client } from '@dequanto/clients/PolyWeb3Client'`,
107
+ `import { Polyscan } from '${importPfx}/explorer/Polyscan'`,
108
+ `import { PolyWeb3Client } from '${importPfx}/clients/PolyWeb3Client'`,
113
109
  ];
114
110
  sourceUri = `https://polygonscan.com/address/${opts.address}#code`;
115
111
  break;
@@ -117,8 +113,8 @@ export class GeneratorFromAbi {
117
113
  EtherscanStr = 'XDaiscan';
118
114
  EthWeb3ClientStr = 'XDaiWeb3Client';
119
115
  imports = [
120
- `import { XDaiscan } from '@dequanto/chains/xdai/XDaiscan'`,
121
- `import { XDaiWeb3Client } from '@dequanto/chains/xdai/XDaiWeb3Client'`,
116
+ `import { XDaiscan } from '${importPfx}/chains/xdai/XDaiscan'`,
117
+ `import { XDaiWeb3Client } from '${importPfx}/chains/xdai/XDaiWeb3Client'`,
122
118
  ];
123
119
  sourceUri = `https://blockscout.com/xdai/mainnet/address/${opts.address}/contracts`;
124
120
  break;
@@ -126,8 +122,8 @@ export class GeneratorFromAbi {
126
122
  EtherscanStr = 'Etherscan';
127
123
  EthWeb3ClientStr = 'EthWeb3Client';
128
124
  imports = [
129
- `import { Etherscan } from '@dequanto/explorer/Etherscan'`,
130
- `import { EthWeb3Client } from '@dequanto/clients/EthWeb3Client'`,
125
+ `import { Etherscan } from '${importPfx}/explorer/Etherscan'`,
126
+ `import { EthWeb3Client } from '${importPfx}/clients/EthWeb3Client'`,
131
127
  ];
132
128
  sourceUri = `https://etherscan.io/address/${opts.address}#code`;
133
129
  break;
@@ -135,8 +131,8 @@ export class GeneratorFromAbi {
135
131
  EtherscanStr = 'Etherscan';
136
132
  EthWeb3ClientStr = 'HardhatWeb3Client';
137
133
  imports = [
138
- `import { Etherscan } from '@dequanto/explorer/Etherscan'`,
139
- `import { HardhatWeb3Client } from '@dequanto/hardhat/HardhatWeb3Client'`,
134
+ `import { Etherscan } from '${importPfx}/explorer/Etherscan'`,
135
+ `import { HardhatWeb3Client } from '${importPfx}/hardhat/HardhatWeb3Client'`,
140
136
  ];
141
137
  sourceUri = ``;
142
138
  break;
@@ -146,8 +142,8 @@ export class GeneratorFromAbi {
146
142
  EtherscanStr = 'Evmscan';
147
143
  EthWeb3ClientStr = 'EvmWeb3Client';
148
144
  imports = [
149
- `import { Evmscan } from '@dequanto/explorer/Evmscan'`,
150
- `import { EvmWeb3Client } from '@dequanto/clients/EvmWeb3Client'`,
145
+ `import { Evmscan } from '${importPfx}/explorer/Evmscan'`,
146
+ `import { EvmWeb3Client } from '${importPfx}/clients/EvmWeb3Client'`,
151
147
  ];
152
148
  Web3ClientOptions = `{ platform: '${opts.network}' }`;
153
149
  EvmScanOptions = `{ platform: '${opts.network}' }`;
@@ -165,7 +161,7 @@ export class GeneratorFromAbi {
165
161
  let outputFilename = /[^\\/]+$/.exec(name)[0];
166
162
  let outputPath = /\.(ts|js)$/.test(opts.output)
167
163
  ? opts.output
168
- : class_Uri.combine(opts.output, outputDirectory, `${outputFilename}.ts`);
164
+ : class_Uri.combine(opts.output, outputDirectory, `${outputFilename}.${opts.outputFileExt ?? targetType}`);
169
165
  let meta = {
170
166
  artifact: opts.artifact
171
167
  ? this.getRelativePath(opts.artifact)
@@ -181,13 +177,13 @@ export class GeneratorFromAbi {
181
177
  let storageReaderClass = '';
182
178
  try {
183
179
  let storageReaderGenerator = new GeneratorStorageReader();
184
- let reader = await storageReaderGenerator.generate({ ...opts });
180
+ let reader = await storageReaderGenerator.generate({ ...opts, target: targetType });
185
181
  if (reader.sourcePath != null && opts.address == null) {
186
182
  sourceUri = this.getRelativePath(reader.sourcePath);
187
183
  }
188
184
  if (reader.className) {
189
185
  storageReaderClass = reader.code;
190
- storageReaderProperty = `declare storage: ${reader.className}`;
186
+ storageReaderProperty = targetType === 'ts' ? `declare storage: ${reader.className}` : '';
191
187
  storageReaderInitializer = `this.storage = new ${reader.className}(this.address, this.client, this.explorer);`;
192
188
  $logger.log(`green<StorageReader> was generated`);
193
189
  }
@@ -220,8 +216,8 @@ export class GeneratorFromAbi {
220
216
  .replace(`/* STORAGE_READER_INITIALIZER */`, storageReaderInitializer)
221
217
  .replace(`/* STORAGE_READER_PROPERTY */`, storageReaderProperty)
222
218
  .replace(`/* STORAGE_READER_CLASS */`, () => storageReaderClass)
223
- .replace(`/* TX_CALLER_METHODS */`, () => Gen.serializeTxCallerMethods(className, abiJson))
224
- .replace(`/* TX_DATA_METHODS */`, () => Gen.serializeTxDataMethods(className, abiJson))
219
+ .replace(`/* TX_CALLER_METHODS */`, () => Gen.serializeTxCallerMethods(className, abiJson)[targetType])
220
+ .replace(`/* TX_DATA_METHODS */`, () => Gen.serializeTxDataMethods(className, abiJson)[targetType])
225
221
  .replace(`/* $EVENT_TYPES$ */`, () => Str.indent(eventTypes.map(x => x.code).join('\n'), ' '))
226
222
  .replace(`/* $METHOD_TYPES$ */`, () => Str.indent(methodTypes.map(x => x.code).join('\n'), ' '));
227
223
  await File.writeAsync(outputPath, code, { skipHooks: true });
@@ -295,8 +291,8 @@ var Gen;
295
291
  // abi.length > 1 if has method overloads
296
292
  function serializeMethodInterfacesTs(name, abis) {
297
293
  let args = abis.map(abi => {
298
- let { fnInputArguments } = serializeArgumentsTs(abi);
299
- return `[ ${fnInputArguments} ]`;
294
+ let { fnInputArgumentsTargets } = serializeArgumentsTs(abi);
295
+ return `[ ${fnInputArgumentsTargets.ts} ]`;
300
296
  }).join(' | ');
301
297
  let iface = `IMethod${name[0].toUpperCase()}${name.substring(1)}`;
302
298
  let code = [
@@ -314,8 +310,8 @@ var Gen;
314
310
  Gen.serializeMethodInterfacesTs = serializeMethodInterfacesTs;
315
311
  function serializeMethodTypeTs(name, abis) {
316
312
  let args = abis.map(abi => {
317
- let { fnInputArguments } = serializeArgumentsTs(abi);
318
- return `[ ${fnInputArguments} ]`;
313
+ let { fnInputArgumentsTargets } = serializeArgumentsTs(abi);
314
+ return `[ ${fnInputArgumentsTargets.ts} ]`;
319
315
  }).join(' | ');
320
316
  let iface = `IMethod${name[0].toUpperCase()}${name.substring(1)}`;
321
317
  let code = [
@@ -362,9 +358,9 @@ var Gen;
362
358
  }
363
359
  Gen.serializeEventsInterfacesAllTs = serializeEventsInterfacesAllTs;
364
360
  function serializeEventType(event) {
365
- let { fnInputArguments, callInputArguments, fnResult } = serializeArgumentsTs(event);
366
- let outputParams = `{ ${fnInputArguments} }`;
367
- let outputArgs = `[ ${fnInputArguments.replace('\n', '')} ]`;
361
+ let { fnInputArgumentsTargets, callInputArguments, fnResult } = serializeArgumentsTs(event);
362
+ let outputParams = `{ ${fnInputArgumentsTargets.ts} }`;
363
+ let outputArgs = `[ ${fnInputArgumentsTargets.ts.replace('\n', '')} ]`;
368
364
  let code = [
369
365
  `${event.name}: {`,
370
366
  ` outputParams: ${outputParams},`,
@@ -377,36 +373,58 @@ var Gen;
377
373
  }
378
374
  Gen.serializeEventType = serializeEventType;
379
375
  function serializeEvent(abi) {
380
- let { fnInputArguments, callInputArguments, fnResult } = serializeArgumentsTs(abi);
381
- return `
382
- on${abi.name} (fn?: (event: TClientEventsStreamData<TEventArguments<'${abi.name}'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'${abi.name}'>>> {
383
- return this.$onLog('${abi.name}', fn);
384
- }
385
- `;
376
+ let { fnInputArgumentsTargets, callInputArguments, fnResult } = serializeArgumentsTs(abi);
377
+ return {
378
+ ts: `
379
+ on${abi.name} (fn?: (event: TClientEventsStreamData<TEventArguments<'${abi.name}'>>) => void): ClientEventsStream<TClientEventsStreamData<TEventArguments<'${abi.name}'>>> {
380
+ return this.$onLog('${abi.name}', fn);
381
+ }
382
+ `,
383
+ js: `
384
+ on${abi.name} (fn) {
385
+ return this.$onLog('${abi.name}', fn);
386
+ }
387
+ `
388
+ };
386
389
  }
387
390
  Gen.serializeEvent = serializeEvent;
388
391
  function serializeEventExtractor(abi) {
389
- return `
390
- extractLogs${abi.name} (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'${abi.name}'>>[] {
391
- let abi = this.$getAbiItem('event', '${abi.name}');
392
- return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'${abi.name}'>>[];
393
- }
394
- `;
392
+ return {
393
+ ts: `
394
+ extractLogs${abi.name} (tx: TEth.TxReceipt): ITxLogItem<TEventParams<'${abi.name}'>>[] {
395
+ let abi = this.$getAbiItem('event', '${abi.name}');
396
+ return this.$extractLogs(tx, abi) as any as ITxLogItem<TEventParams<'${abi.name}'>>[];
397
+ }
398
+ `,
399
+ js: `
400
+ extractLogs${abi.name} (tx) {
401
+ let abi = this.$getAbiItem('event', '${abi.name}');
402
+ return this.$extractLogs(tx, abi);
403
+ }
404
+ `
405
+ };
395
406
  }
396
407
  Gen.serializeEventExtractor = serializeEventExtractor;
397
408
  function serializeEventFetcher(abi) {
398
409
  let inputs = abi.inputs;
399
410
  let indexed = alot(inputs).takeWhile(x => x.indexed).toArray();
400
411
  let indexedParams = indexed.map(param => `${param.name}?: ${$abiType.getTsType(param.type, param)}`);
401
- return `
402
- async getPastLogs${abi.name} (options?: {
403
- fromBlock?: number | Date
404
- toBlock?: number | Date
405
- params?: { ${indexedParams} }
406
- }): Promise<ITxLogItem<TEventParams<'${abi.name}'>>[]> {
407
- return await this.$getPastLogsParsed('${abi.name}', options) as any;
408
- }
409
- `;
412
+ return {
413
+ ts: `
414
+ async getPastLogs${abi.name} (options?: {
415
+ fromBlock?: number | Date
416
+ toBlock?: number | Date
417
+ params?: { ${indexedParams} }
418
+ }): Promise<ITxLogItem<TEventParams<'${abi.name}'>>[]> {
419
+ return await this.$getPastLogsParsed('${abi.name}', options) as any;
420
+ }
421
+ `,
422
+ js: `
423
+ async getPastLogs${abi.name} (options) {
424
+ return await this.$getPastLogsParsed('${abi.name}', options);
425
+ }
426
+ `
427
+ };
410
428
  }
411
429
  Gen.serializeEventFetcher = serializeEventFetcher;
412
430
  // export function serializeEventInterface (abi: TAbiItem) {
@@ -435,76 +453,115 @@ var Gen;
435
453
  }
436
454
  Gen.serializeMethodAbi = serializeMethodAbi;
437
455
  function serializeReadMethodTs(abi) {
438
- let { fnInputArguments, callInputArguments, fnResult } = serializeArgumentsTs(abi);
456
+ let { fnInputArgumentsTargets, callInputArguments, fnResult } = serializeArgumentsTs(abi);
439
457
  if (callInputArguments) {
440
458
  callInputArguments = `, ${callInputArguments}`;
441
459
  }
442
- return `
443
- // ${$abiUtils.getMethodSignature(abi)}
444
- async ${abi.name} (${fnInputArguments}): ${fnResult} {
445
- return this.$read(this.$getAbiItem('function', '${abi.name}')${callInputArguments});
446
- }
447
- `;
460
+ return {
461
+ ts: `
462
+ // ${$abiUtils.getMethodSignature(abi)}
463
+ async ${abi.name} (${fnInputArgumentsTargets.ts}): ${fnResult} {
464
+ return this.$read(this.$getAbiItem('function', '${abi.name}')${callInputArguments});
465
+ }
466
+ `,
467
+ js: `
468
+ // ${$abiUtils.getMethodSignature(abi)}
469
+ async ${abi.name} (${fnInputArgumentsTargets.js}) {
470
+ return this.$read(this.$getAbiItem('function', '${abi.name}')${callInputArguments});
471
+ }
472
+ `
473
+ };
448
474
  }
449
475
  function serializeReadMethodTsOverloads(abis) {
450
476
  let overrides = abis.map(abi => {
451
- let { fnInputArguments, fnResult } = serializeArgumentsTs(abi);
477
+ let { fnInputArgumentsTargets, fnResult } = serializeArgumentsTs(abi);
452
478
  return `
453
479
  // ${$abiUtils.getMethodSignature(abi)}
454
- async ${abi.name} (${fnInputArguments}): ${fnResult}
480
+ async ${abi.name} (${fnInputArgumentsTargets.ts}): ${fnResult}
455
481
  `;
456
482
  }).join('\n');
457
483
  let abi = abis[0];
458
484
  let { fnResult } = serializeArgumentsTs(abi);
459
485
  let sigs = abis.map(abi => serializeMethodAbi(abi)).map(x => `'${x}'`).join(', ');
460
- return `
461
- ${overrides}
462
- async ${abi.name} (...args): ${fnResult} {
463
- let abi = this.$getAbiItemOverload([ ${sigs} ], args);
464
- return this.$read(abi, ...args);
465
- }
466
- `;
486
+ return {
487
+ ts: `
488
+ ${overrides}
489
+ async ${abi.name} (...args): ${fnResult} {
490
+ let abi = this.$getAbiItemOverload([ ${sigs} ], args);
491
+ return this.$read(abi, ...args);
492
+ }
493
+ `,
494
+ js: `
495
+ async ${abi.name} (...args) {
496
+ let abi = this.$getAbiItemOverload([ ${sigs} ], args);
497
+ return this.$read(abi, ...args);
498
+ }
499
+ `
500
+ };
467
501
  }
468
502
  function serializeWriteMethodTs(abi) {
469
- let { fnInputArguments, callInputArguments } = serializeArgumentsTs(abi);
503
+ let { fnInputArgumentsTargets, callInputArguments } = serializeArgumentsTs(abi);
470
504
  if (callInputArguments) {
471
505
  callInputArguments = `, ${callInputArguments}`;
472
506
  }
473
- return `
474
- // ${$abiUtils.getMethodSignature(abi)}
475
- async ${abi.name} (sender: TSender, ${fnInputArguments}): Promise<TxWriter> {
476
- return this.$write(this.$getAbiItem('function', '${abi.name}'), sender${callInputArguments});
477
- }
478
- `;
507
+ return {
508
+ ts: `
509
+ // ${$abiUtils.getMethodSignature(abi)}
510
+ async ${abi.name} (sender: TSender, ${fnInputArgumentsTargets.ts}): Promise<TxWriter> {
511
+ return this.$write(this.$getAbiItem('function', '${abi.name}'), sender${callInputArguments});
512
+ }
513
+ `,
514
+ js: `
515
+ // ${$abiUtils.getMethodSignature(abi)}
516
+ async ${abi.name} (sender, ${fnInputArgumentsTargets.js}) {
517
+ return this.$write(this.$getAbiItem('function', '${abi.name}'), sender${callInputArguments});
518
+ }
519
+ `
520
+ };
479
521
  }
480
522
  function serializeConstructorMethodTs(abi) {
481
- let { fnInputArguments, callInputArguments } = serializeArgumentsTs(abi);
523
+ let { fnInputArgumentsTargets, callInputArguments } = serializeArgumentsTs(abi);
482
524
  if (callInputArguments) {
483
525
  callInputArguments = `, ${callInputArguments}`;
484
526
  }
485
- return `
486
- async $constructor (deployer: TSender, ${fnInputArguments}): Promise<TxWriter> {
487
- throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract');
488
- }
489
- `;
527
+ return {
528
+ ts: `
529
+ async $constructor (deployer: TSender, ${fnInputArgumentsTargets.ts}): Promise<TxWriter> {
530
+ throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract');
531
+ }
532
+ `,
533
+ js: `
534
+ async $constructor (deployer, ${fnInputArgumentsTargets.js}) {
535
+ throw new Error('Not implemented. Typing purpose. Use the ContractDeployer class to deploy the contract');
536
+ }
537
+ `
538
+ };
490
539
  }
491
540
  function serializeWriteMethodTsOverloads(abis) {
492
541
  let overrides = abis.map(abi => {
493
- let { fnInputArguments, fnResult } = serializeArgumentsTs(abi);
542
+ let { fnInputArgumentsTargets, fnResult } = serializeArgumentsTs(abi);
494
543
  return `
495
544
  // ${$abiUtils.getMethodSignature(abi)}
496
- async ${abi.name} (sender: TSender, ${fnInputArguments}): Promise<TxWriter>
545
+ async ${abi.name} (sender: TSender, ${fnInputArgumentsTargets.ts}): Promise<TxWriter>
497
546
  `;
498
547
  }).join('\n');
499
548
  let abi = abis[0];
500
549
  let sigs = abis.map(abi => serializeMethodAbi(abi)).map(x => `'${x}'`).join(', ');
501
- return `
502
- ${overrides}
503
- async ${abi.name} (sender: TSender, ...args): Promise<TxWriter> {
504
- let abi = this.$getAbiItemOverload([ ${sigs} ], args);
505
- return this.$write(abi, sender, ...args);
506
- }
507
- `;
550
+ return {
551
+ ts: `
552
+ ${overrides}
553
+ async ${abi.name} (sender: TSender, ...args): Promise<TxWriter> {
554
+ let abi = this.$getAbiItemOverload([ ${sigs} ], args);
555
+ return this.$write(abi, sender, ...args);
556
+ }
557
+ `,
558
+ js: `
559
+ async ${abi.name} (sender, ...args) {
560
+ let abi = this.$getAbiItemOverload([ ${sigs} ], args);
561
+ return this.$write(abi, sender, ...args);
562
+ }
563
+ `
564
+ };
508
565
  }
509
566
  function serializeArgumentsTs(abi) {
510
567
  let inputs = abi.inputs.map((input, i) => {
@@ -517,22 +574,38 @@ var Gen;
517
574
  }
518
575
  return result;
519
576
  });
520
- let fnInputArguments = inputs
577
+ let fnInputArgumentsArr = inputs
521
578
  ?.map((input) => {
522
579
  let tsType = $abiType.getTsType(input.type, input);
523
580
  if (tsType == null) {
524
581
  throw new Error(`Unknown abi type in arguments: ${input.type}`);
525
582
  }
526
- return `${input.name}: ${tsType}`;
583
+ return { name: input.name, type: tsType };
584
+ }) ?? [];
585
+ let fnInputArgumentsTs = fnInputArgumentsArr
586
+ .map((input) => {
587
+ return `${input.name}: ${input.type}`;
527
588
  })
528
- ?.join(', ') ?? '';
589
+ .join(', ');
590
+ let fnInputArgumentsJs = fnInputArgumentsArr
591
+ .map((input) => {
592
+ return `${input.name}`;
593
+ })
594
+ .join(', ');
529
595
  let callInputArguments = inputs
530
596
  ?.map(input => {
531
597
  return `${input.name}`;
532
598
  })
533
599
  ?.join(', ') ?? '';
534
600
  let fnResult = serializeMethodTsReturns(abi.outputs);
535
- return { fnInputArguments, callInputArguments, fnResult };
601
+ return {
602
+ fnInputArgumentsTargets: {
603
+ ts: fnInputArgumentsTs,
604
+ js: fnInputArgumentsJs,
605
+ },
606
+ callInputArguments,
607
+ fnResult
608
+ };
536
609
  }
537
610
  function isObjectParams(params) {
538
611
  return params?.every(x => Boolean(x.name));
@@ -610,34 +683,44 @@ var Gen;
610
683
  function serializeTxCallerMethods(className, abiJson) {
611
684
  let methods = abiJson.filter(x => x.type === 'function');
612
685
  let writeMethods = methods.filter(abi => $abiUtils.isReadMethod(abi) === false);
613
- let lines = [];
614
- writeMethods.forEach(method => {
615
- lines.push(serializeMethodTs(method));
686
+ let lines = writeMethods.map(method => {
687
+ return serializeMethodTs(method);
616
688
  });
617
- return lines.join('\n');
689
+ return {
690
+ ts: lines.map(x => x.ts).join('\n'),
691
+ js: lines.map(x => x.js).join('\n'),
692
+ };
618
693
  function serializeMethodTs(abi) {
619
- let { fnInputArguments, callInputArguments, fnResult } = serializeArgumentsTs(abi);
694
+ let { fnInputArgumentsTargets, callInputArguments, fnResult } = serializeArgumentsTs(abi);
620
695
  if (callInputArguments) {
621
696
  callInputArguments = `, ${callInputArguments}`;
622
697
  }
623
- return ` ${abi.name} (sender: TSender, ${fnInputArguments}): Promise<{ error?: Error & { data?: { type: string, params } }, result? }>`;
698
+ return {
699
+ ts: ` ${abi.name} (sender: TSender, ${fnInputArgumentsTargets.ts}): Promise<{ error?: Error & { data?: { type: string, params } }, result? }>`,
700
+ js: ` ${abi.name} (sender, ${fnInputArgumentsTargets.js})`,
701
+ };
624
702
  }
625
703
  }
626
704
  Gen.serializeTxCallerMethods = serializeTxCallerMethods;
627
705
  function serializeTxDataMethods(className, abiJson) {
628
706
  let methods = abiJson.filter(x => x.type === 'function');
629
707
  let writeMethods = methods.filter(abi => $abiUtils.isReadMethod(abi) === false);
630
- let lines = [];
631
- writeMethods.forEach(method => {
632
- lines.push(serializeInterfaceMethodTs(method));
708
+ let lines = writeMethods.map(method => {
709
+ return serializeInterfaceMethodTs(method);
633
710
  });
634
- return lines.join('\n');
711
+ return {
712
+ ts: lines.map(x => x.ts).join('\n'),
713
+ js: lines.map(x => x.js).join('\n'),
714
+ };
635
715
  function serializeInterfaceMethodTs(abi) {
636
- let { fnInputArguments, callInputArguments, fnResult } = serializeArgumentsTs(abi);
716
+ let { fnInputArgumentsTargets, callInputArguments, fnResult } = serializeArgumentsTs(abi);
637
717
  if (callInputArguments) {
638
718
  callInputArguments = `, ${callInputArguments}`;
639
719
  }
640
- return ` ${abi.name} (sender: TSender, ${fnInputArguments}): Promise<TEth.TxLike>`;
720
+ return {
721
+ ts: ` ${abi.name} (sender: TSender, ${fnInputArgumentsTargets.ts}): Promise<TEth.TxLike>`,
722
+ js: ` ${abi.name} (sender, ${fnInputArgumentsTargets.js})`,
723
+ };
641
724
  }
642
725
  }
643
726
  Gen.serializeTxDataMethods = serializeTxDataMethods;
@@ -3,6 +3,7 @@ import { TAddress } from '../models/TAddress';
3
3
  import { TPlatform } from '../models/TPlatform';
4
4
  export declare class GeneratorStorageReader {
5
5
  generate(opts: {
6
+ target?: 'js' | 'ts';
6
7
  network: TPlatform;
7
8
  name: string;
8
9
  contractName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorStorageReader.js","sourceRoot":"","sources":["../../../src/gen/GeneratorStorageReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeneratorStorageReader.js","sourceRoot":"","sources":["../../../src/gen/GeneratorStorageReader.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { $path } from '../utils/$path.mjs';
8
8
  import { $gen } from './utils/$gen.mjs';
9
9
  export class GeneratorStorageReader {
10
10
  async generate(opts) {
11
+ let targetType = opts.target ?? 'ts';
11
12
  let { client, sources, contractName, address } = opts;
12
13
  let files = alot.fromObject(sources ?? {}).map(x => {
13
14
  return {
@@ -36,8 +37,8 @@ export class GeneratorStorageReader {
36
37
  $require.String(file?.content ?? file?.path, `Expected a source content to resolve slots`);
37
38
  let slots = await SlotsParser.slots({ code: file.content, path: file.path }, contractName, { files });
38
39
  let methods = this.serializeSlots(slots);
39
- let codeMethods = methods.join('\n\n');
40
- let templatePath = $path.resolve(`/src/gen/ContractStorageReaderTemplate.ts`);
40
+ let codeMethods = methods.map(x => x[targetType]).join('\n\n');
41
+ let templatePath = $path.resolve(`/src/gen/ContractStorageReaderTemplate.${targetType}`);
41
42
  let template = await File.readAsync(templatePath, { skipHooks: true });
42
43
  let className = $gen.toClassName(opts.name + 'StorageReader');
43
44
  let code = template
@@ -53,17 +54,29 @@ export class GeneratorStorageReader {
53
54
  serializeSlots(slots) {
54
55
  return slots
55
56
  .map(slot => this.serializeSlot(slot))
56
- .map(Str.formatMethod);
57
+ .map(entry => {
58
+ return {
59
+ ts: Str.formatMethod(entry.ts),
60
+ js: Str.formatMethod(entry.js),
61
+ };
62
+ });
57
63
  }
58
64
  serializeSlot(slot) {
59
65
  let name = slot.name;
60
66
  let type = slot.type;
61
67
  let { parametersTypes, parametersCall, returnType } = this.getParameters(type);
62
- return `
63
- async ${name}(${parametersTypes ?? ''}): Promise<${returnType}> {
64
- return this.$storage.get(['${name}', ${parametersCall ?? ''}]);
65
- }
66
- `;
68
+ return {
69
+ ts: `
70
+ async ${name}(${parametersTypes?.ts ?? ''}): Promise<${returnType}> {
71
+ return this.$storage.get(['${name}', ${parametersCall ?? ''}]);
72
+ }
73
+ `,
74
+ js: `
75
+ async ${name}(${parametersTypes?.js ?? ''}) {
76
+ return this.$storage.get(['${name}', ${parametersCall ?? ''}]);
77
+ }
78
+ `
79
+ };
67
80
  }
68
81
  getParameters(type) {
69
82
  if (type.startsWith('mapping')) {
@@ -72,7 +85,10 @@ export class GeneratorStorageReader {
72
85
  let keyTsType = $abiType.getTsTypeFromDefinition(keyType);
73
86
  let valueTsType = $abiType.getTsTypeFromDefinition(valueType);
74
87
  return {
75
- parametersTypes: `key: ${keyTsType}`,
88
+ parametersTypes: {
89
+ ts: `key: ${keyTsType}`,
90
+ js: `key`
91
+ },
76
92
  returnType: `${valueTsType}`,
77
93
  parametersCall: 'key',
78
94
  };
@@ -1 +1 @@
1
- {"version":3,"file":"$config.js","sourceRoot":"","sources":["../../../src/utils/$config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"$config.js","sourceRoot":"","sources":["../../../src/utils/$config.ts"],"names":[],"mappings":"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"}