dequanto 0.2.31 → 0.2.32

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.
@@ -312,29 +312,15 @@ class ContractBase {
312
312
  if ($abis.length === 1) {
313
313
  return $abis[0];
314
314
  }
315
- $abis = $abis.filter(abi => {
316
- for (let i = 0; i < args.length; i++) {
317
- let item = abi.inputs[i];
318
- let arg = args[i];
319
- if (item.type === 'address' && _address_1.$address.isValid(arg)) {
320
- continue;
321
- }
322
- if (item.type === 'bool' && typeof arg === 'boolean') {
323
- continue;
324
- }
325
- if (item.type === 'string' && typeof arg === 'string') {
326
- continue;
327
- }
328
- if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
329
- continue;
330
- }
331
- if (/tuple/.test(item.type) && (typeof arg === 'object')) {
332
- continue;
333
- }
334
- return false;
335
- }
336
- return true;
337
- });
315
+ $abis = filterABIbyArguments($abis, args, 'shallow');
316
+ if ($abis.length === 1) {
317
+ return $abis[0];
318
+ }
319
+ $abis = filterABIbyArguments($abis, args, 'single');
320
+ if ($abis.length === 1) {
321
+ return $abis[0];
322
+ }
323
+ $abis = filterABIbyArguments($abis, args, 'both');
338
324
  if ($abis.length === 1) {
339
325
  return $abis[0];
340
326
  }
@@ -488,5 +474,64 @@ var BlockWalker;
488
474
  }
489
475
  BlockWalker.onBlock = onBlock;
490
476
  })(BlockWalker || (BlockWalker = {}));
477
+ // Tuple check type detects how an argument satisfies the "tuple"
478
+ // shallow: checks only that the argument is an object type
479
+ // single: checks that all tuple components (keys) are present in the argument
480
+ // both: checks that all tuple components are present in the argument AND all argument keys exist in the tuple components
481
+ function filterABIbyArguments(abis, args, tupleCheck) {
482
+ return abis.filter(abi => {
483
+ for (let i = 0; i < args.length; i++) {
484
+ let item = abi.inputs[i];
485
+ let arg = args[i];
486
+ if (item.type === 'address' && _address_1.$address.isValid(arg)) {
487
+ continue;
488
+ }
489
+ if (item.type === 'bool' && typeof arg === 'boolean') {
490
+ continue;
491
+ }
492
+ if (item.type === 'string' && typeof arg === 'string') {
493
+ continue;
494
+ }
495
+ if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
496
+ continue;
497
+ }
498
+ if (/tuple/.test(item.type)) {
499
+ arg ??= {};
500
+ if (tupleCheck === 'shallow') {
501
+ if (typeof arg === 'object') {
502
+ continue;
503
+ }
504
+ }
505
+ if (tupleCheck === 'single' || tupleCheck === 'both') {
506
+ // E.g. Solidity structs:
507
+ // 1. struct FooV1 { uint256 a; uint256 b; }
508
+ // 2. struct FooV2 { uint256 a; uint256 b; uint256 c; }
509
+ // If we call the 2. overloaded function the single check will match both structs
510
+ // therefore we need later to call with tupleCheck === 'both' to detect correct overload
511
+ const components = item.components ?? [];
512
+ const satisfies = components.every(x => x.name in arg) ?? false;
513
+ if (!satisfies) {
514
+ return false;
515
+ }
516
+ if (tupleCheck === 'single') {
517
+ continue;
518
+ }
519
+ }
520
+ if (tupleCheck === 'both') {
521
+ const components = item.components ?? [];
522
+ for (let key in arg) {
523
+ const found = components.find(x => x.name === key);
524
+ if (!found) {
525
+ return false;
526
+ }
527
+ }
528
+ continue;
529
+ }
530
+ }
531
+ return false;
532
+ }
533
+ return true;
534
+ });
535
+ }
491
536
  //# sourceMappingURL=ContractBase.js.map
492
537
  //# sourceMappingURL=ContractBase.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContractBase.js","sourceRoot":"","sources":["../../../src/contracts/ContractBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractBase.js","sourceRoot":"","sources":["../../../src/contracts/ContractBase.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContractBase.js","sourceRoot":"","sources":["../../../src/contracts/ContractBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContractBase.js","sourceRoot":"","sources":["../../../src/contracts/ContractBase.ts"],"names":[],"mappings":"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"}
@@ -306,29 +306,15 @@ export class ContractBase {
306
306
  if ($abis.length === 1) {
307
307
  return $abis[0];
308
308
  }
309
- $abis = $abis.filter(abi => {
310
- for (let i = 0; i < args.length; i++) {
311
- let item = abi.inputs[i];
312
- let arg = args[i];
313
- if (item.type === 'address' && $address.isValid(arg)) {
314
- continue;
315
- }
316
- if (item.type === 'bool' && typeof arg === 'boolean') {
317
- continue;
318
- }
319
- if (item.type === 'string' && typeof arg === 'string') {
320
- continue;
321
- }
322
- if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
323
- continue;
324
- }
325
- if (/tuple/.test(item.type) && (typeof arg === 'object')) {
326
- continue;
327
- }
328
- return false;
329
- }
330
- return true;
331
- });
309
+ $abis = filterABIbyArguments($abis, args, 'shallow');
310
+ if ($abis.length === 1) {
311
+ return $abis[0];
312
+ }
313
+ $abis = filterABIbyArguments($abis, args, 'single');
314
+ if ($abis.length === 1) {
315
+ return $abis[0];
316
+ }
317
+ $abis = filterABIbyArguments($abis, args, 'both');
332
318
  if ($abis.length === 1) {
333
319
  return $abis[0];
334
320
  }
@@ -481,5 +467,64 @@ var BlockWalker;
481
467
  }
482
468
  BlockWalker.onBlock = onBlock;
483
469
  })(BlockWalker || (BlockWalker = {}));
470
+ // Tuple check type detects how an argument satisfies the "tuple"
471
+ // shallow: checks only that the argument is an object type
472
+ // single: checks that all tuple components (keys) are present in the argument
473
+ // both: checks that all tuple components are present in the argument AND all argument keys exist in the tuple components
474
+ function filterABIbyArguments(abis, args, tupleCheck) {
475
+ return abis.filter(abi => {
476
+ for (let i = 0; i < args.length; i++) {
477
+ let item = abi.inputs[i];
478
+ let arg = args[i];
479
+ if (item.type === 'address' && $address.isValid(arg)) {
480
+ continue;
481
+ }
482
+ if (item.type === 'bool' && typeof arg === 'boolean') {
483
+ continue;
484
+ }
485
+ if (item.type === 'string' && typeof arg === 'string') {
486
+ continue;
487
+ }
488
+ if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
489
+ continue;
490
+ }
491
+ if (/tuple/.test(item.type)) {
492
+ arg ??= {};
493
+ if (tupleCheck === 'shallow') {
494
+ if (typeof arg === 'object') {
495
+ continue;
496
+ }
497
+ }
498
+ if (tupleCheck === 'single' || tupleCheck === 'both') {
499
+ // E.g. Solidity structs:
500
+ // 1. struct FooV1 { uint256 a; uint256 b; }
501
+ // 2. struct FooV2 { uint256 a; uint256 b; uint256 c; }
502
+ // If we call the 2. overloaded function the single check will match both structs
503
+ // therefore we need later to call with tupleCheck === 'both' to detect correct overload
504
+ const components = item.components ?? [];
505
+ const satisfies = components.every(x => x.name in arg) ?? false;
506
+ if (!satisfies) {
507
+ return false;
508
+ }
509
+ if (tupleCheck === 'single') {
510
+ continue;
511
+ }
512
+ }
513
+ if (tupleCheck === 'both') {
514
+ const components = item.components ?? [];
515
+ for (let key in arg) {
516
+ const found = components.find(x => x.name === key);
517
+ if (!found) {
518
+ return false;
519
+ }
520
+ }
521
+ continue;
522
+ }
523
+ }
524
+ return false;
525
+ }
526
+ return true;
527
+ });
528
+ }
484
529
  //# sourceMappingURL=ContractBase.js.map
485
530
  //# sourceMappingURL=ContractBase.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dequanto",
3
- "version": "0.2.31",
3
+ "version": "0.2.32",
4
4
  "author": {
5
5
  "name": "Alex Kit",
6
6
  "email": "alex.kit@atmajs.com"
@@ -60,7 +60,7 @@ export abstract class ContractBase {
60
60
 
61
61
  storage?: ContractStorageReaderBase
62
62
 
63
- constructor (
63
+ constructor(
64
64
  public address: TAddress,
65
65
  public client: Web3Client,
66
66
  public explorer: IBlockchainExplorer
@@ -77,28 +77,28 @@ export abstract class ContractBase {
77
77
  }
78
78
  }
79
79
 
80
- public async $getStorageAt (position: number | bigint | TEth.Hex) {
80
+ public async $getStorageAt(position: number | bigint | TEth.Hex) {
81
81
  let reader = await this.getContractReader();
82
82
  return reader.getStorageAt(this.address, position);
83
83
  }
84
- public $parseInputData (buffer: TEth.BufferLike, value?: string) {
84
+ public $parseInputData(buffer: TEth.BufferLike, value?: string) {
85
85
  return $abiUtils.parseMethodCallData(this.abi, buffer);
86
86
  }
87
- public async $executeBatch <T extends readonly unknown[] | ContractReaderUtils.IContractReadParams[]>(values: T): Promise<
87
+ public async $executeBatch<T extends readonly unknown[] | ContractReaderUtils.IContractReadParams[]>(values: T): Promise<
88
88
  { -readonly [P in keyof T]: ContractReaderUtils.TIContractReadParamsInferred<T[P]>; }
89
89
  > {
90
90
  let reader = await this.getContractReader();
91
91
  return reader.executeBatch(values);
92
92
  }
93
93
 
94
- async getPastLogs <TEvents extends TEventsBase, TEventName extends keyof TEvents> (
94
+ async getPastLogs<TEvents extends TEventsBase, TEventName extends keyof TEvents>(
95
95
  event: TEventName | TEventName[]
96
96
  , options?: TEventLogOptions<TEventParams<TEvents, TEventName>>
97
97
  ): Promise<ITxLogItem<TEventParams<TEvents, TEventName>, TEventName>[]> {
98
98
  return await this.$getPastLogsParsed(event as string | string[], options) as any;
99
99
  }
100
100
 
101
- public $config (builderConfig?: ITxBuilderOptions, writerConfig?: ITxWriterOptions): this {
101
+ public $config(builderConfig?: ITxBuilderOptions, writerConfig?: ITxWriterOptions): this {
102
102
  let $contract = $class.curry(this, {
103
103
  builderConfig: {
104
104
  ...(this.builderConfig ?? {}),
@@ -119,7 +119,7 @@ export abstract class ContractBase {
119
119
  }
120
120
 
121
121
  @memd.deco.memoize({ perInstance: true })
122
- public $call () {
122
+ public $call() {
123
123
  let abiArr = this.abi;
124
124
  let writer = this.getContractWriter();
125
125
 
@@ -127,7 +127,7 @@ export abstract class ContractBase {
127
127
  let fns = alot(methods).map(abiMethod => {
128
128
  return {
129
129
  name: abiMethod.name,
130
- async fn (sender: TAccount,...args: any[]) {
130
+ async fn(sender: TAccount, ...args: any[]) {
131
131
  return ContractBaseUtils.$call(
132
132
  writer,
133
133
  abiMethod,
@@ -146,7 +146,7 @@ export abstract class ContractBase {
146
146
  }
147
147
 
148
148
  @memd.deco.memoize({ perInstance: true })
149
- public $data (params?: {
149
+ public $data(params?: {
150
150
  estimateGas?: boolean
151
151
  getNonce?: boolean
152
152
  from?: TAddress
@@ -160,14 +160,14 @@ export abstract class ContractBase {
160
160
  let writeFns = alot(writeMethods).map(method => {
161
161
  return {
162
162
  name: method.name,
163
- async fn (sender: TAccount,...args: any[]) {
163
+ async fn(sender: TAccount, ...args: any[]) {
164
164
  let writer: TxWriter = await $top
165
165
  .$config({
166
166
  send: 'manual',
167
167
  gasEstimation: false,
168
168
  nonce: params?.getNonce ? void 0 : 0,
169
169
  })
170
- [method.name](sender, ...args);
170
+ [method.name](sender, ...args);
171
171
 
172
172
  if (params?.getNonce) {
173
173
  await writer.builder.ensureNonce();
@@ -192,7 +192,7 @@ export abstract class ContractBase {
192
192
  let readFns = alot(readMethods).map(method => {
193
193
  return {
194
194
  name: method.name,
195
- async fn (...args: any[]) {
195
+ async fn(...args: any[]) {
196
196
  return {
197
197
  to: $top.address,
198
198
  data: $abiUtils.serializeMethodCallData(method, args)
@@ -209,7 +209,7 @@ export abstract class ContractBase {
209
209
  }
210
210
 
211
211
  @memd.deco.memoize({ perInstance: true })
212
- public $gas () {
212
+ public $gas() {
213
213
  let abiArr = this.abi;
214
214
  let writer = this.getContractWriter();
215
215
 
@@ -217,7 +217,7 @@ export abstract class ContractBase {
217
217
  let fns = alot(methods).map(abiMethod => {
218
218
  return {
219
219
  name: abiMethod.name,
220
- async fn (sender: IAccount,...args: any[]) {
220
+ async fn(sender: IAccount, ...args: any[]) {
221
221
  return ContractBaseUtils.$gas(
222
222
  writer,
223
223
  abiMethod,
@@ -235,11 +235,11 @@ export abstract class ContractBase {
235
235
  return $contract as any;
236
236
  }
237
237
 
238
- public $req () {
238
+ public $req() {
239
239
  return FnRequestWrapper.create(this);
240
240
  }
241
241
 
242
- public $signed (builderConfig?: ITxBuilderOptions, writerConfig?: ITxWriterOptions) {
242
+ public $signed(builderConfig?: ITxBuilderOptions, writerConfig?: ITxWriterOptions) {
243
243
  let instance = this.$signedCreate();
244
244
  if (builderConfig != null || writerConfig != null) {
245
245
  instance = instance.$config(builderConfig, writerConfig);
@@ -248,18 +248,18 @@ export abstract class ContractBase {
248
248
  }
249
249
 
250
250
  @memd.deco.memoize({ perInstance: true })
251
- private $signedCreate () {
251
+ private $signedCreate() {
252
252
  return FnSignedWrapper.create(this);
253
253
  }
254
254
 
255
255
  @memd.deco.memoize({ perInstance: true })
256
- public $receipt <T extends this> (this: T): T {
256
+ public $receipt<T extends this>(this: T): T {
257
257
  let $top = this;
258
258
  let methods = this.abi.filter(abi => abi.type === 'function' && $abiUtils.isReadMethod(abi) === false);
259
259
  let fns = alot(methods).map(abiMethod => {
260
260
  return {
261
261
  name: abiMethod.name,
262
- async fn (sender: IAccount,...args: any[]) {
262
+ async fn(sender: IAccount, ...args: any[]) {
263
263
  let tx: TxWriter = await $top[abiMethod.name](sender, ...args);
264
264
  let receipt = await tx.wait();
265
265
  return tx;
@@ -273,7 +273,7 @@ export abstract class ContractBase {
273
273
  return $contract as any;
274
274
  }
275
275
 
276
- public forBlock (mix: number | bigint | undefined | Date): this {
276
+ public forBlock(mix: number | bigint | undefined | Date): this {
277
277
  if (mix == null) {
278
278
  return this;
279
279
  }
@@ -282,14 +282,14 @@ export abstract class ContractBase {
282
282
  }
283
283
  return this.forBlockAt(mix);
284
284
  }
285
- protected forBlockNumber (blockNumber: number | bigint | undefined): this {
285
+ protected forBlockNumber(blockNumber: number | bigint | undefined): this {
286
286
  let $contract = $class.curry(this, {
287
287
  blockNumber: blockNumber,
288
288
  blockDate: null
289
289
  })
290
290
  return $contract;
291
291
  }
292
- protected forBlockAt (date: Date | undefined): this {
292
+ protected forBlockAt(date: Date | undefined): this {
293
293
  let $contract = $class.curry(this, {
294
294
  blockNumber: null,
295
295
  blockDate: date
@@ -297,7 +297,7 @@ export abstract class ContractBase {
297
297
  return $contract;
298
298
  }
299
299
 
300
- protected $read (abi: string | TAbiItem, ...params) {
300
+ protected $read(abi: string | TAbiItem, ...params) {
301
301
  if (this.builderConfig?.send === 'manual') {
302
302
  let req = <ContractReaderUtils.IContractReadParams>{
303
303
  address: this.address,
@@ -314,7 +314,7 @@ export abstract class ContractBase {
314
314
  return reader.readAsync(this.address, abi, ...params);
315
315
  }
316
316
 
317
- public $onLog (event: string, cb?) {
317
+ public $onLog(event: string, cb?) {
318
318
  let stream = this.getContractStream();
319
319
  let events = stream.on(event);
320
320
  if (cb) {
@@ -323,12 +323,12 @@ export abstract class ContractBase {
323
323
  return events;
324
324
  }
325
325
 
326
- public $onTransaction (options?: BlockWalker.IBlockWalkerOptions): SubjectStream<{ tx: TEth.Tx, block: TEth.Block, calldata: { method, arguments: any[] } }> {
326
+ public $onTransaction(options?: BlockWalker.IBlockWalkerOptions): SubjectStream<{ tx: TEth.Tx, block: TEth.Block, calldata: { method, arguments: any[] } }> {
327
327
 
328
328
  options ??= {};
329
329
  options.logProgress ??= false;
330
330
 
331
- type TSubject = {
331
+ type TSubject = {
332
332
  tx: TEth.Tx,
333
333
  block: TEth.Block,
334
334
  calldata: { method, arguments: any[] }
@@ -375,7 +375,7 @@ export abstract class ContractBase {
375
375
  return stream;
376
376
  }
377
377
 
378
- protected async $write (abi: string | TAbiItem, account: TAccount & { value?: number | string | bigint }, ...params): Promise<TxWriter> {
378
+ protected async $write(abi: string | TAbiItem, account: TAccount & { value?: number | string | bigint }, ...params): Promise<TxWriter> {
379
379
  let writer = await this.getContractWriter();
380
380
  return writer.writeAsync(account, abi, params, {
381
381
  abi: this.abi,
@@ -384,20 +384,20 @@ export abstract class ContractBase {
384
384
  });
385
385
  }
386
386
 
387
- protected $getAbiItem (type: 'event' | 'function' | 'string', name: string, argsCount?: number) {
387
+ protected $getAbiItem(type: 'event' | 'function' | 'string', name: string, argsCount?: number) {
388
388
  return ContractBaseUtils.$getAbiItem(this.abi, type, name, argsCount);
389
389
  }
390
390
 
391
- protected $getAbiItemOverload (fnName: string, args: any[])
392
- protected $getAbiItemOverload (abis: (string | TAbiItem)[], args: any[])
393
- protected $getAbiItemOverload (mix: string | (string | TAbiItem)[], args: any[]) {
391
+ protected $getAbiItemOverload(fnName: string, args: any[])
392
+ protected $getAbiItemOverload(abis: (string | TAbiItem)[], args: any[])
393
+ protected $getAbiItemOverload(mix: string | (string | TAbiItem)[], args: any[]) {
394
394
  let abis = typeof mix === 'string'
395
- ? this.abi.filter(x => x.type === 'function' && x.name === mix)
396
- : mix;
395
+ ? this.abi.filter(x => x.type === 'function' && x.name === mix)
396
+ : mix;
397
397
 
398
398
  let $abis = abis
399
399
  .map(methodAbi => {
400
- if (typeof methodAbi ==='string') {
400
+ if (typeof methodAbi === 'string') {
401
401
  return $abiParser.parseMethod(methodAbi);
402
402
  }
403
403
  return methodAbi;
@@ -410,43 +410,30 @@ export abstract class ContractBase {
410
410
  if ($abis.length === 1) {
411
411
  return $abis[0];
412
412
  }
413
- $abis = $abis.filter(abi => {
414
- for (let i = 0; i < args.length; i++) {
415
- let item = abi.inputs[i];
416
- let arg = args[i];
417
- if (item.type === 'address' && $address.isValid(arg)) {
418
- continue;
419
- }
420
- if (item.type === 'bool' && typeof arg === 'boolean') {
421
- continue;
422
- }
423
- if (item.type === 'string' && typeof arg === 'string') {
424
- continue;
425
- }
426
- if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
427
- continue;
428
- }
429
- if (/tuple/.test(item.type) && (typeof arg === 'object')) {
430
- continue;
431
- }
432
- return false;
433
- }
434
- return true;
435
- });
413
+ $abis = filterABIbyArguments($abis, args, 'shallow');
414
+ if ($abis.length === 1) {
415
+ return $abis[0];
416
+ }
417
+ $abis = filterABIbyArguments($abis, args, 'single');
436
418
  if ($abis.length === 1) {
437
419
  return $abis[0];
438
420
  }
421
+ $abis = filterABIbyArguments($abis, args, 'both');
422
+ if ($abis.length === 1) {
423
+ return $abis[0];
424
+ }
425
+
439
426
  throw new Error(`ABI not found. Got multiple overloads for the argument count ${args.length}. We should pick the ABI by parameters type.`)
440
427
  }
441
428
 
442
- protected $extractLogs (tx: TEth.TxReceipt, abiItem: TAbiItem) {
429
+ protected $extractLogs(tx: TEth.TxReceipt, abiItem: TAbiItem) {
443
430
  let logs = $contract.extractLogsForAbi(tx, abiItem);
444
431
  return logs;
445
432
  }
446
- protected $extractLog (log: TEth.Log, mix: string | string[] | TAbiItem | TAbiItem[] | '*') {
433
+ protected $extractLog(log: TEth.Log, mix: string | string[] | TAbiItem | TAbiItem[] | '*') {
447
434
  let abi: TAbiItem | TAbiItem[];
448
435
 
449
- let mixArr = typeof mix === 'string' ? [ mix ] : ((mix as TAbiItem[] | string[]) ?? []);
436
+ let mixArr = typeof mix === 'string' ? [mix] : ((mix as TAbiItem[] | string[]) ?? []);
450
437
  if (mixArr.length === 0 || (mixArr.length === 1 && mixArr[0] === '*')) {
451
438
  abi = this.abi;
452
439
  } else {
@@ -459,18 +446,18 @@ export abstract class ContractBase {
459
446
  protected async $getPastLogs(filters: RpcTypes.Filter, options?: {
460
447
  streamed?: boolean
461
448
  blockRangeLimits?: WClient['blockRangeLimits']
462
- onProgress? (info: TLogsRangeProgress<TEth.Log>)
449
+ onProgress?(info: TLogsRangeProgress<TEth.Log>)
463
450
  }) {
464
451
  return this.getContractReader().getLogs(filters, options);
465
452
  }
466
- public async $getPastLogsParsed (mix: string | TAbiItem | string[] | TAbiItem[], options?: {
453
+ public async $getPastLogsParsed(mix: string | TAbiItem | string[] | TAbiItem[], options?: {
467
454
  addresses?: TAddress[]
468
455
  fromBlock?: number | Date
469
456
  toBlock?: number | Date
470
457
  params?: {
471
458
  [key: string]: any
472
459
  }
473
- onProgress? (info: TLogsRangeProgress<ITxLogItem>)
460
+ onProgress?(info: TLogsRangeProgress<ITxLogItem>)
474
461
 
475
462
  /** if TRUE the data will be only forwarded via onProgress callback.
476
463
  * And the final array will be undefined.
@@ -516,7 +503,7 @@ export abstract class ContractBase {
516
503
  abi = this.$getAbiItem('event', mix);
517
504
  } else if (Array.isArray(mix) === false) {
518
505
  abi = mix;
519
- } else if (mix.length === 1 && typeof mix[0] ==='string' && mix[0] === '*') {
506
+ } else if (mix.length === 1 && typeof mix[0] === 'string' && mix[0] === '*') {
520
507
  abi = '*';
521
508
  } else {
522
509
  abi = mix.map(x => {
@@ -535,7 +522,7 @@ export abstract class ContractBase {
535
522
  );
536
523
  }
537
524
 
538
- private getContractReader () {
525
+ private getContractReader() {
539
526
  let reader = this.getContractReaderInner();
540
527
  if (this.blockDate != null) {
541
528
  reader.forBlockAt(this.blockDate);
@@ -551,13 +538,13 @@ export abstract class ContractBase {
551
538
  }
552
539
 
553
540
  @memd.deco.memoize({ perInstance: true })
554
- private getContractReaderInner () {
541
+ private getContractReaderInner() {
555
542
  let reader = new ContractReader(this.client, { name: this.constructor.name });
556
543
  return reader;
557
544
  }
558
545
 
559
546
  @memd.deco.memoize({ perInstance: true })
560
- protected getContractWriter () {
547
+ protected getContractWriter() {
561
548
  if (this.abi != null) {
562
549
  // Updates the singleton instance
563
550
  let logParser = di.resolve(TxTopicInMemoryProvider);
@@ -568,7 +555,7 @@ export abstract class ContractBase {
568
555
  }
569
556
 
570
557
  @memd.deco.memoize({ perInstance: true })
571
- private getContractStream () {
558
+ private getContractStream() {
572
559
  let stream = new ContractStream(this.address, this.abi, this.client);
573
560
  return stream;
574
561
  }
@@ -587,9 +574,9 @@ namespace BlockWalker {
587
574
  }
588
575
  }
589
576
 
590
- const indexers = {} as { [key: string]: BlocksTxIndexer } ;
577
+ const indexers = {} as { [key: string]: BlocksTxIndexer };
591
578
 
592
- export function onBlock (client: Web3Client, options: IBlockWalkerOptions, cb: TBlockListener ) {
579
+ export function onBlock(client: Web3Client, options: IBlockWalkerOptions, cb: TBlockListener) {
593
580
 
594
581
  let key = `${client.platform}_${options?.name ?? ''}_${options?.persistence ?? false}`;
595
582
  let current = indexers[key];
@@ -621,7 +608,7 @@ export type TContractTypes = {
621
608
  type TEventsBase = {
622
609
  [name: string]: {
623
610
  outputParams: Record<string, any>,
624
- outputArgs: any[],
611
+ outputArgs: any[],
625
612
  }
626
613
  }
627
614
 
@@ -631,8 +618,71 @@ export type TEventLogOptions<TParams> = {
631
618
  toBlock?: number | Date
632
619
  params?: TParams
633
620
  streamed?: boolean
634
- onProgress? (info: TLogsRangeProgress<ITxLogItem>)
621
+ onProgress?(info: TLogsRangeProgress<ITxLogItem>)
635
622
  blockRangeLimits?: WClient['blockRangeLimits']
636
623
  }
637
624
 
638
625
  type TEventParams<TEvents extends TEventsBase, TEventName extends keyof TEvents> = Partial<TEvents[TEventName]['outputParams']>;
626
+
627
+
628
+ // Tuple check type detects how an argument satisfies the "tuple"
629
+ // shallow: checks only that the argument is an object type
630
+ // single: checks that all tuple components (keys) are present in the argument
631
+ // both: checks that all tuple components are present in the argument AND all argument keys exist in the tuple components
632
+ function filterABIbyArguments(abis: TAbiItem[], args: any[], tupleCheck: 'shallow' | 'single' | 'both') {
633
+ return abis.filter(abi => {
634
+ for (let i = 0; i < args.length; i++) {
635
+ let item = abi.inputs[i];
636
+ let arg = args[i];
637
+ if (item.type === 'address' && $address.isValid(arg)) {
638
+ continue;
639
+ }
640
+ if (item.type === 'bool' && typeof arg === 'boolean') {
641
+ continue;
642
+ }
643
+ if (item.type === 'string' && typeof arg === 'string') {
644
+ continue;
645
+ }
646
+ if (/^u?int/.test(item.type) && (typeof arg === 'number' || typeof arg === 'bigint')) {
647
+ continue;
648
+ }
649
+ if (/tuple/.test(item.type)) {
650
+ arg ??= {};
651
+ if (tupleCheck === 'shallow') {
652
+ if (typeof arg === 'object') {
653
+ continue;
654
+ }
655
+ }
656
+ if (tupleCheck === 'single' || tupleCheck === 'both') {
657
+ // E.g. Solidity structs:
658
+ // 1. struct FooV1 { uint256 a; uint256 b; }
659
+ // 2. struct FooV2 { uint256 a; uint256 b; uint256 c; }
660
+ // If we call the 2. overloaded function the single check will match both structs
661
+ // therefore we need later to call with tupleCheck === 'both' to detect correct overload
662
+ const components = item.components ?? [];
663
+ const satisfies = components.every(x => x.name in arg) ?? false;
664
+ if (!satisfies) {
665
+ return false;
666
+ }
667
+
668
+ if (tupleCheck === 'single') {
669
+ continue;
670
+ }
671
+ }
672
+ if (tupleCheck === 'both') {
673
+ const components = item.components ?? [];
674
+ for (let key in arg) {
675
+ const found = components.find(x => x.name === key);
676
+ if (!found) {
677
+ return false;
678
+ }
679
+ }
680
+ continue;
681
+ }
682
+
683
+ }
684
+ return false;
685
+ }
686
+ return true;
687
+ });
688
+ }