@sentio/sdk 1.30.3 → 1.31.0

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.
Files changed (85) hide show
  1. package/lib/builtin/erc1155/index.d.ts +2 -0
  2. package/lib/builtin/erc1155/index.js +22 -0
  3. package/lib/builtin/erc1155/index.js.map +1 -0
  4. package/lib/builtin/erc1155/test-utils.d.ts +6 -0
  5. package/lib/builtin/erc1155/test-utils.js +57 -0
  6. package/lib/builtin/erc1155/test-utils.js.map +1 -0
  7. package/lib/builtin/erc721/index.d.ts +2 -0
  8. package/lib/builtin/erc721/index.js +22 -0
  9. package/lib/builtin/erc721/index.js.map +1 -0
  10. package/lib/builtin/erc721/test-utils.d.ts +5 -0
  11. package/lib/builtin/erc721/test-utils.js +46 -0
  12. package/lib/builtin/erc721/test-utils.js.map +1 -0
  13. package/lib/builtin/internal/ERC1155.d.ts +199 -0
  14. package/lib/builtin/internal/ERC1155.js +3 -0
  15. package/lib/builtin/internal/ERC1155.js.map +1 -0
  16. package/lib/builtin/internal/ERC721.d.ts +252 -0
  17. package/lib/builtin/internal/ERC721.js +3 -0
  18. package/lib/builtin/internal/ERC721.js.map +1 -0
  19. package/lib/builtin/internal/erc1155_processor.d.ts +134 -0
  20. package/lib/builtin/internal/erc1155_processor.js +337 -0
  21. package/lib/builtin/internal/erc1155_processor.js.map +1 -0
  22. package/lib/builtin/internal/erc721_processor.d.ts +169 -0
  23. package/lib/builtin/internal/erc721_processor.js +479 -0
  24. package/lib/builtin/internal/erc721_processor.js.map +1 -0
  25. package/lib/builtin/internal/factories/ERC1155__factory.d.ts +35 -0
  26. package/lib/builtin/internal/factories/ERC1155__factory.js +332 -0
  27. package/lib/builtin/internal/factories/ERC1155__factory.js.map +1 -0
  28. package/lib/builtin/internal/factories/ERC721__factory.d.ts +51 -0
  29. package/lib/builtin/internal/factories/ERC721__factory.js +364 -0
  30. package/lib/builtin/internal/factories/ERC721__factory.js.map +1 -0
  31. package/lib/builtin/internal/factories/index.d.ts +2 -0
  32. package/lib/builtin/internal/factories/index.js +5 -1
  33. package/lib/builtin/internal/factories/index.js.map +1 -1
  34. package/lib/builtin/internal/index.d.ts +4 -0
  35. package/lib/builtin/internal/index.js +5 -1
  36. package/lib/builtin/internal/index.js.map +1 -1
  37. package/lib/core/account-processor.d.ts +58 -0
  38. package/lib/core/account-processor.js +147 -0
  39. package/lib/core/account-processor.js.map +1 -0
  40. package/lib/core/base-processor.d.ts +5 -2
  41. package/lib/core/base-processor.js.map +1 -1
  42. package/lib/core/bind-options.d.ts +5 -0
  43. package/lib/core/bind-options.js +7 -1
  44. package/lib/core/bind-options.js.map +1 -1
  45. package/lib/core/context.d.ts +7 -1
  46. package/lib/core/context.js +30 -18
  47. package/lib/core/context.js.map +1 -1
  48. package/lib/core/meter.js +6 -0
  49. package/lib/core/meter.js.map +1 -1
  50. package/lib/gen/chainquery/protos/chainquery.d.ts +1 -0
  51. package/lib/gen/chainquery/protos/chainquery.js +17 -1
  52. package/lib/gen/chainquery/protos/chainquery.js.map +1 -1
  53. package/lib/gen/processor/protos/processor.d.ts +11 -0
  54. package/lib/gen/processor/protos/processor.js +84 -3
  55. package/lib/gen/processor/protos/processor.js.map +1 -1
  56. package/lib/service.d.ts +1 -0
  57. package/lib/service.js +67 -42
  58. package/lib/service.js.map +1 -1
  59. package/lib/testing/test-processor-server.d.ts +6 -2
  60. package/lib/testing/test-processor-server.js +66 -5
  61. package/lib/testing/test-processor-server.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/abis/ERC1155.json +314 -0
  64. package/src/abis/ERC721.json +346 -0
  65. package/src/builtin/erc1155/index.ts +6 -0
  66. package/src/builtin/erc1155/test-utils.ts +89 -0
  67. package/src/builtin/erc721/index.ts +6 -0
  68. package/src/builtin/erc721/test-utils.ts +71 -0
  69. package/src/builtin/internal/ERC1155.ts +529 -0
  70. package/src/builtin/internal/ERC721.ts +639 -0
  71. package/src/builtin/internal/erc1155_processor.ts +580 -0
  72. package/src/builtin/internal/erc721_processor.ts +768 -0
  73. package/src/builtin/internal/factories/ERC1155__factory.ts +335 -0
  74. package/src/builtin/internal/factories/ERC721__factory.ts +364 -0
  75. package/src/builtin/internal/factories/index.ts +2 -0
  76. package/src/builtin/internal/index.ts +4 -0
  77. package/src/core/account-processor.ts +217 -0
  78. package/src/core/base-processor.ts +6 -2
  79. package/src/core/bind-options.ts +6 -0
  80. package/src/core/context.ts +42 -27
  81. package/src/core/meter.ts +8 -2
  82. package/src/gen/chainquery/protos/chainquery.ts +18 -1
  83. package/src/gen/processor/protos/processor.ts +88 -1
  84. package/src/service.ts +71 -44
  85. package/src/testing/test-processor-server.ts +71 -5
@@ -0,0 +1,580 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { BigNumber, BigNumberish, CallOverrides, BytesLike } from "ethers";
5
+ import { Networkish } from "@ethersproject/providers";
6
+ import {
7
+ addContractByABI,
8
+ getContractByABI,
9
+ addProcessor,
10
+ getProcessor,
11
+ getProvider,
12
+ transformEtherError,
13
+ BindOptions,
14
+ BaseProcessor,
15
+ BaseProcessorTemplate,
16
+ BoundContractView,
17
+ ContractContext,
18
+ ContractView,
19
+ DummyProvider,
20
+ TypedCallTrace,
21
+ } from "@sentio/sdk";
22
+ import { PromiseOrValue } from "./common";
23
+ import { ERC1155, ERC1155__factory } from "./index";
24
+ import {
25
+ ApprovalForAllEvent,
26
+ ApprovalForAllEventFilter,
27
+ TransferBatchEvent,
28
+ TransferBatchEventFilter,
29
+ TransferSingleEvent,
30
+ TransferSingleEventFilter,
31
+ URIEvent,
32
+ URIEventFilter,
33
+ } from "./ERC1155";
34
+
35
+ export interface BalanceOfCallObject {
36
+ account: string;
37
+ id: BigNumber;
38
+ }
39
+
40
+ export type BalanceOfCallTrace = TypedCallTrace<
41
+ [string, BigNumber],
42
+ BalanceOfCallObject
43
+ >;
44
+
45
+ export interface BalanceOfBatchCallObject {
46
+ accounts: string[];
47
+ ids: BigNumber[];
48
+ }
49
+
50
+ export type BalanceOfBatchCallTrace = TypedCallTrace<
51
+ [string[], BigNumber[]],
52
+ BalanceOfBatchCallObject
53
+ >;
54
+
55
+ export interface IsApprovedForAllCallObject {
56
+ account: string;
57
+ operator: string;
58
+ }
59
+
60
+ export type IsApprovedForAllCallTrace = TypedCallTrace<
61
+ [string, string],
62
+ IsApprovedForAllCallObject
63
+ >;
64
+
65
+ export interface SafeBatchTransferFromCallObject {
66
+ from: string;
67
+ to: string;
68
+ ids: BigNumber[];
69
+ amounts: BigNumber[];
70
+ data: string;
71
+ }
72
+
73
+ export type SafeBatchTransferFromCallTrace = TypedCallTrace<
74
+ [string, string, BigNumber[], BigNumber[], string],
75
+ SafeBatchTransferFromCallObject
76
+ >;
77
+
78
+ export interface SafeTransferFromCallObject {
79
+ from: string;
80
+ to: string;
81
+ id: BigNumber;
82
+ amount: BigNumber;
83
+ data: string;
84
+ }
85
+
86
+ export type SafeTransferFromCallTrace = TypedCallTrace<
87
+ [string, string, BigNumber, BigNumber, string],
88
+ SafeTransferFromCallObject
89
+ >;
90
+
91
+ export interface SetApprovalForAllCallObject {
92
+ operator: string;
93
+ approved: boolean;
94
+ }
95
+
96
+ export type SetApprovalForAllCallTrace = TypedCallTrace<
97
+ [string, boolean],
98
+ SetApprovalForAllCallObject
99
+ >;
100
+
101
+ export interface SupportsInterfaceCallObject {
102
+ interfaceId: string;
103
+ }
104
+
105
+ export type SupportsInterfaceCallTrace = TypedCallTrace<
106
+ [string],
107
+ SupportsInterfaceCallObject
108
+ >;
109
+
110
+ export interface UriCallObject {
111
+ id: BigNumber;
112
+ }
113
+
114
+ export type UriCallTrace = TypedCallTrace<[BigNumber], UriCallObject>;
115
+
116
+ const templateContract = ERC1155__factory.connect("", DummyProvider);
117
+
118
+ export class ERC1155ContractView extends ContractView<ERC1155> {
119
+ constructor(contract: ERC1155) {
120
+ super(contract);
121
+ }
122
+
123
+ async balanceOf(
124
+ account: PromiseOrValue<string>,
125
+ id: PromiseOrValue<BigNumberish>,
126
+ overrides?: CallOverrides
127
+ ): Promise<BigNumber> {
128
+ try {
129
+ if (overrides) {
130
+ return await this.contract.balanceOf(account, id, overrides);
131
+ } else {
132
+ return await this.contract.balanceOf(account, id);
133
+ }
134
+ } catch (e) {
135
+ throw transformEtherError(e, undefined);
136
+ }
137
+ }
138
+
139
+ async balanceOfBatch(
140
+ accounts: PromiseOrValue<string>[],
141
+ ids: PromiseOrValue<BigNumberish>[],
142
+ overrides?: CallOverrides
143
+ ): Promise<BigNumber[]> {
144
+ try {
145
+ if (overrides) {
146
+ return await this.contract.balanceOfBatch(accounts, ids, overrides);
147
+ } else {
148
+ return await this.contract.balanceOfBatch(accounts, ids);
149
+ }
150
+ } catch (e) {
151
+ throw transformEtherError(e, undefined);
152
+ }
153
+ }
154
+
155
+ async isApprovedForAll(
156
+ account: PromiseOrValue<string>,
157
+ operator: PromiseOrValue<string>,
158
+ overrides?: CallOverrides
159
+ ): Promise<boolean> {
160
+ try {
161
+ if (overrides) {
162
+ return await this.contract.isApprovedForAll(
163
+ account,
164
+ operator,
165
+ overrides
166
+ );
167
+ } else {
168
+ return await this.contract.isApprovedForAll(account, operator);
169
+ }
170
+ } catch (e) {
171
+ throw transformEtherError(e, undefined);
172
+ }
173
+ }
174
+
175
+ async supportsInterface(
176
+ interfaceId: PromiseOrValue<BytesLike>,
177
+ overrides?: CallOverrides
178
+ ): Promise<boolean> {
179
+ try {
180
+ if (overrides) {
181
+ return await this.contract.supportsInterface(interfaceId, overrides);
182
+ } else {
183
+ return await this.contract.supportsInterface(interfaceId);
184
+ }
185
+ } catch (e) {
186
+ throw transformEtherError(e, undefined);
187
+ }
188
+ }
189
+
190
+ async uri(
191
+ id: PromiseOrValue<BigNumberish>,
192
+ overrides?: CallOverrides
193
+ ): Promise<string> {
194
+ try {
195
+ if (overrides) {
196
+ return await this.contract.uri(id, overrides);
197
+ } else {
198
+ return await this.contract.uri(id);
199
+ }
200
+ } catch (e) {
201
+ throw transformEtherError(e, undefined);
202
+ }
203
+ }
204
+ }
205
+
206
+ export class ERC1155BoundContractView extends BoundContractView<
207
+ ERC1155,
208
+ ERC1155ContractView
209
+ > {
210
+ // constructor (contract: ERC1155) {
211
+ // super(contract);
212
+ // }
213
+
214
+ async balanceOf(
215
+ account: PromiseOrValue<string>,
216
+ id: PromiseOrValue<BigNumberish>,
217
+ overrides?: CallOverrides
218
+ ): Promise<BigNumber> {
219
+ try {
220
+ if (!overrides && this.context) {
221
+ overrides = {
222
+ blockTag: this.context.blockNumber.toNumber(),
223
+ };
224
+ }
225
+ if (overrides) {
226
+ return await this.view.balanceOf(account, id, overrides);
227
+ } else {
228
+ return await this.view.balanceOf(account, id);
229
+ }
230
+ } catch (e) {
231
+ throw transformEtherError(e, this.context);
232
+ }
233
+ }
234
+
235
+ async balanceOfBatch(
236
+ accounts: PromiseOrValue<string>[],
237
+ ids: PromiseOrValue<BigNumberish>[],
238
+ overrides?: CallOverrides
239
+ ): Promise<BigNumber[]> {
240
+ try {
241
+ if (!overrides && this.context) {
242
+ overrides = {
243
+ blockTag: this.context.blockNumber.toNumber(),
244
+ };
245
+ }
246
+ if (overrides) {
247
+ return await this.view.balanceOfBatch(accounts, ids, overrides);
248
+ } else {
249
+ return await this.view.balanceOfBatch(accounts, ids);
250
+ }
251
+ } catch (e) {
252
+ throw transformEtherError(e, this.context);
253
+ }
254
+ }
255
+
256
+ async isApprovedForAll(
257
+ account: PromiseOrValue<string>,
258
+ operator: PromiseOrValue<string>,
259
+ overrides?: CallOverrides
260
+ ): Promise<boolean> {
261
+ try {
262
+ if (!overrides && this.context) {
263
+ overrides = {
264
+ blockTag: this.context.blockNumber.toNumber(),
265
+ };
266
+ }
267
+ if (overrides) {
268
+ return await this.view.isApprovedForAll(account, operator, overrides);
269
+ } else {
270
+ return await this.view.isApprovedForAll(account, operator);
271
+ }
272
+ } catch (e) {
273
+ throw transformEtherError(e, this.context);
274
+ }
275
+ }
276
+
277
+ async supportsInterface(
278
+ interfaceId: PromiseOrValue<BytesLike>,
279
+ overrides?: CallOverrides
280
+ ): Promise<boolean> {
281
+ try {
282
+ if (!overrides && this.context) {
283
+ overrides = {
284
+ blockTag: this.context.blockNumber.toNumber(),
285
+ };
286
+ }
287
+ if (overrides) {
288
+ return await this.view.supportsInterface(interfaceId, overrides);
289
+ } else {
290
+ return await this.view.supportsInterface(interfaceId);
291
+ }
292
+ } catch (e) {
293
+ throw transformEtherError(e, this.context);
294
+ }
295
+ }
296
+
297
+ async uri(
298
+ id: PromiseOrValue<BigNumberish>,
299
+ overrides?: CallOverrides
300
+ ): Promise<string> {
301
+ try {
302
+ if (!overrides && this.context) {
303
+ overrides = {
304
+ blockTag: this.context.blockNumber.toNumber(),
305
+ };
306
+ }
307
+ if (overrides) {
308
+ return await this.view.uri(id, overrides);
309
+ } else {
310
+ return await this.view.uri(id);
311
+ }
312
+ } catch (e) {
313
+ throw transformEtherError(e, this.context);
314
+ }
315
+ }
316
+ }
317
+
318
+ export type ERC1155Context = ContractContext<ERC1155, ERC1155BoundContractView>;
319
+
320
+ export class ERC1155ProcessorTemplate extends BaseProcessorTemplate<
321
+ ERC1155,
322
+ ERC1155BoundContractView
323
+ > {
324
+ bindInternal(options: BindOptions) {
325
+ if (!options.name) {
326
+ options.name = "ERC1155";
327
+ }
328
+ let processor = getProcessor(options) as ERC1155Processor;
329
+ if (!processor) {
330
+ processor = new ERC1155Processor(options);
331
+ addProcessor(options, processor);
332
+ }
333
+ return processor;
334
+ }
335
+
336
+ onEventApprovalForAll(
337
+ handler: (event: ApprovalForAllEvent, ctx: ERC1155Context) => void,
338
+ filter?: ApprovalForAllEventFilter | ApprovalForAllEventFilter[]
339
+ ) {
340
+ if (!filter) {
341
+ // @ts-ignore
342
+ filter = ERC1155Processor.filters[
343
+ // @ts-ignore
344
+ "ApprovalForAll(address,address,bool)"
345
+ ](null, null, null);
346
+ }
347
+ return super.onEvent(handler, filter!);
348
+ }
349
+
350
+ onEventTransferBatch(
351
+ handler: (event: TransferBatchEvent, ctx: ERC1155Context) => void,
352
+ filter?: TransferBatchEventFilter | TransferBatchEventFilter[]
353
+ ) {
354
+ if (!filter) {
355
+ // @ts-ignore
356
+ filter = ERC1155Processor.filters[
357
+ // @ts-ignore
358
+ "TransferBatch(address,address,address,uint256[],uint256[])"
359
+ ](null, null, null, null, null);
360
+ }
361
+ return super.onEvent(handler, filter!);
362
+ }
363
+
364
+ onEventTransferSingle(
365
+ handler: (event: TransferSingleEvent, ctx: ERC1155Context) => void,
366
+ filter?: TransferSingleEventFilter | TransferSingleEventFilter[]
367
+ ) {
368
+ if (!filter) {
369
+ // @ts-ignore
370
+ filter = ERC1155Processor.filters[
371
+ // @ts-ignore
372
+ "TransferSingle(address,address,address,uint256,uint256)"
373
+ ](null, null, null, null, null);
374
+ }
375
+ return super.onEvent(handler, filter!);
376
+ }
377
+
378
+ onEventURI(
379
+ handler: (event: URIEvent, ctx: ERC1155Context) => void,
380
+ filter?: URIEventFilter | URIEventFilter[]
381
+ ) {
382
+ if (!filter) {
383
+ // @ts-ignore
384
+ filter = ERC1155Processor.filters[
385
+ // @ts-ignore
386
+ "URI(string,uint256)"
387
+ ](null, null);
388
+ }
389
+ return super.onEvent(handler, filter!);
390
+ }
391
+
392
+ onCallBalanceOf(
393
+ handler: (call: BalanceOfCallTrace, ctx: ERC1155Context) => void
394
+ ) {
395
+ return super.onTrace("0x00fdd58e", handler);
396
+ }
397
+
398
+ onCallBalanceOfBatch(
399
+ handler: (call: BalanceOfBatchCallTrace, ctx: ERC1155Context) => void
400
+ ) {
401
+ return super.onTrace("0x4e1273f4", handler);
402
+ }
403
+
404
+ onCallIsApprovedForAll(
405
+ handler: (call: IsApprovedForAllCallTrace, ctx: ERC1155Context) => void
406
+ ) {
407
+ return super.onTrace("0xe985e9c5", handler);
408
+ }
409
+
410
+ onCallSafeBatchTransferFrom(
411
+ handler: (call: SafeBatchTransferFromCallTrace, ctx: ERC1155Context) => void
412
+ ) {
413
+ return super.onTrace("0x2eb2c2d6", handler);
414
+ }
415
+
416
+ onCallSafeTransferFrom(
417
+ handler: (call: SafeTransferFromCallTrace, ctx: ERC1155Context) => void
418
+ ) {
419
+ return super.onTrace("0xf242432a", handler);
420
+ }
421
+
422
+ onCallSetApprovalForAll(
423
+ handler: (call: SetApprovalForAllCallTrace, ctx: ERC1155Context) => void
424
+ ) {
425
+ return super.onTrace("0xa22cb465", handler);
426
+ }
427
+
428
+ onCallSupportsInterface(
429
+ handler: (call: SupportsInterfaceCallTrace, ctx: ERC1155Context) => void
430
+ ) {
431
+ return super.onTrace("0x01ffc9a7", handler);
432
+ }
433
+
434
+ onCallUri(handler: (call: UriCallTrace, ctx: ERC1155Context) => void) {
435
+ return super.onTrace("0x0e89341c", handler);
436
+ }
437
+ }
438
+
439
+ export class ERC1155Processor extends BaseProcessor<
440
+ ERC1155,
441
+ ERC1155BoundContractView
442
+ > {
443
+ onEventApprovalForAll(
444
+ handler: (event: ApprovalForAllEvent, ctx: ERC1155Context) => void,
445
+ filter?: ApprovalForAllEventFilter | ApprovalForAllEventFilter[]
446
+ ) {
447
+ if (!filter) {
448
+ // @ts-ignore
449
+ filter = ERC1155Processor.filters[
450
+ // @ts-ignore
451
+ "ApprovalForAll(address,address,bool)"
452
+ ](null, null, null);
453
+ }
454
+ return super.onEvent(handler, filter!);
455
+ }
456
+
457
+ onEventTransferBatch(
458
+ handler: (event: TransferBatchEvent, ctx: ERC1155Context) => void,
459
+ filter?: TransferBatchEventFilter | TransferBatchEventFilter[]
460
+ ) {
461
+ if (!filter) {
462
+ // @ts-ignore
463
+ filter = ERC1155Processor.filters[
464
+ // @ts-ignore
465
+ "TransferBatch(address,address,address,uint256[],uint256[])"
466
+ ](null, null, null, null, null);
467
+ }
468
+ return super.onEvent(handler, filter!);
469
+ }
470
+
471
+ onEventTransferSingle(
472
+ handler: (event: TransferSingleEvent, ctx: ERC1155Context) => void,
473
+ filter?: TransferSingleEventFilter | TransferSingleEventFilter[]
474
+ ) {
475
+ if (!filter) {
476
+ // @ts-ignore
477
+ filter = ERC1155Processor.filters[
478
+ // @ts-ignore
479
+ "TransferSingle(address,address,address,uint256,uint256)"
480
+ ](null, null, null, null, null);
481
+ }
482
+ return super.onEvent(handler, filter!);
483
+ }
484
+
485
+ onEventURI(
486
+ handler: (event: URIEvent, ctx: ERC1155Context) => void,
487
+ filter?: URIEventFilter | URIEventFilter[]
488
+ ) {
489
+ if (!filter) {
490
+ // @ts-ignore
491
+ filter = ERC1155Processor.filters[
492
+ // @ts-ignore
493
+ "URI(string,uint256)"
494
+ ](null, null);
495
+ }
496
+ return super.onEvent(handler, filter!);
497
+ }
498
+
499
+ onCallBalanceOf(
500
+ handler: (call: BalanceOfCallTrace, ctx: ERC1155Context) => void
501
+ ) {
502
+ return super.onTrace("0x00fdd58e", handler);
503
+ }
504
+
505
+ onCallBalanceOfBatch(
506
+ handler: (call: BalanceOfBatchCallTrace, ctx: ERC1155Context) => void
507
+ ) {
508
+ return super.onTrace("0x4e1273f4", handler);
509
+ }
510
+
511
+ onCallIsApprovedForAll(
512
+ handler: (call: IsApprovedForAllCallTrace, ctx: ERC1155Context) => void
513
+ ) {
514
+ return super.onTrace("0xe985e9c5", handler);
515
+ }
516
+
517
+ onCallSafeBatchTransferFrom(
518
+ handler: (call: SafeBatchTransferFromCallTrace, ctx: ERC1155Context) => void
519
+ ) {
520
+ return super.onTrace("0x2eb2c2d6", handler);
521
+ }
522
+
523
+ onCallSafeTransferFrom(
524
+ handler: (call: SafeTransferFromCallTrace, ctx: ERC1155Context) => void
525
+ ) {
526
+ return super.onTrace("0xf242432a", handler);
527
+ }
528
+
529
+ onCallSetApprovalForAll(
530
+ handler: (call: SetApprovalForAllCallTrace, ctx: ERC1155Context) => void
531
+ ) {
532
+ return super.onTrace("0xa22cb465", handler);
533
+ }
534
+
535
+ onCallSupportsInterface(
536
+ handler: (call: SupportsInterfaceCallTrace, ctx: ERC1155Context) => void
537
+ ) {
538
+ return super.onTrace("0x01ffc9a7", handler);
539
+ }
540
+
541
+ onCallUri(handler: (call: UriCallTrace, ctx: ERC1155Context) => void) {
542
+ return super.onTrace("0x0e89341c", handler);
543
+ }
544
+
545
+ public static filters = templateContract.filters;
546
+
547
+ protected CreateBoundContractView(): ERC1155BoundContractView {
548
+ const view = getERC1155Contract(this.config.address, this.config.network);
549
+ return new ERC1155BoundContractView(view);
550
+ }
551
+
552
+ public static bind(options: BindOptions): ERC1155Processor {
553
+ if (!options.name) {
554
+ options.name = "ERC1155";
555
+ }
556
+ let processor = getProcessor(options) as ERC1155Processor;
557
+ if (!processor) {
558
+ processor = new ERC1155Processor(options);
559
+ addProcessor(options, processor);
560
+ }
561
+ return processor;
562
+ }
563
+ }
564
+
565
+ export function getERC1155Contract(
566
+ address: string,
567
+ network: Networkish = 1
568
+ ): ERC1155ContractView {
569
+ let contract = getContractByABI(
570
+ "ERC1155",
571
+ address,
572
+ network
573
+ ) as ERC1155ContractView;
574
+ if (!contract) {
575
+ const rawContract = ERC1155__factory.connect(address, getProvider(network));
576
+ contract = new ERC1155ContractView(rawContract);
577
+ addContractByABI("ERC1155", address, network, contract);
578
+ }
579
+ return contract;
580
+ }