@sentio/sdk 1.8.2 → 1.10.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 (51) hide show
  1. package/lib/base-processor-template.d.ts +6 -0
  2. package/lib/base-processor-template.js +5 -0
  3. package/lib/base-processor-template.js.map +1 -1
  4. package/lib/base-processor.d.ts +1 -1
  5. package/lib/base-processor.js +9 -2
  6. package/lib/base-processor.js.map +1 -1
  7. package/lib/builtin/internal/erc20_processor.d.ts +148 -14
  8. package/lib/builtin/internal/erc20_processor.js +114 -6
  9. package/lib/builtin/internal/erc20_processor.js.map +1 -1
  10. package/lib/builtin/internal/erc20bytes_processor.d.ts +80 -12
  11. package/lib/builtin/internal/erc20bytes_processor.js +58 -4
  12. package/lib/builtin/internal/erc20bytes_processor.js.map +1 -1
  13. package/lib/builtin/internal/weth9_processor.d.ts +92 -16
  14. package/lib/builtin/internal/weth9_processor.js +74 -8
  15. package/lib/builtin/internal/weth9_processor.js.map +1 -1
  16. package/lib/context.js +1 -0
  17. package/lib/context.js.map +1 -1
  18. package/lib/index.d.ts +1 -0
  19. package/lib/index.js.map +1 -1
  20. package/lib/target-ethers-sentio/codegen.js +13 -1
  21. package/lib/target-ethers-sentio/codegen.js.map +1 -1
  22. package/lib/target-ethers-sentio/functions.d.ts +3 -0
  23. package/lib/target-ethers-sentio/functions.js +61 -0
  24. package/lib/target-ethers-sentio/functions.js.map +1 -0
  25. package/lib/test/erc20-template.js +2 -2
  26. package/lib/test/erc20-template.js.map +1 -1
  27. package/lib/test/erc20.js +6 -4
  28. package/lib/test/erc20.js.map +1 -1
  29. package/lib/test/erc20.test.js +25 -0
  30. package/lib/test/erc20.test.js.map +1 -1
  31. package/lib/test/test-processor-server.d.ts +5 -1
  32. package/lib/test/test-processor-server.js +41 -0
  33. package/lib/test/test-processor-server.js.map +1 -1
  34. package/lib/trace.d.ts +5 -5
  35. package/lib/trace.js +21 -0
  36. package/lib/trace.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/base-processor-template.ts +13 -0
  39. package/src/base-processor.ts +10 -3
  40. package/src/builtin/internal/erc20_processor.ts +330 -7
  41. package/src/builtin/internal/erc20bytes_processor.ts +174 -5
  42. package/src/builtin/internal/weth9_processor.ts +195 -9
  43. package/src/context.ts +1 -0
  44. package/src/index.ts +1 -0
  45. package/src/target-ethers-sentio/codegen.ts +13 -1
  46. package/src/target-ethers-sentio/functions.ts +68 -0
  47. package/src/test/erc20-template.ts +2 -2
  48. package/src/test/erc20.test.ts +29 -0
  49. package/src/test/erc20.ts +6 -4
  50. package/src/test/test-processor-server.ts +47 -0
  51. package/src/trace.ts +27 -5
@@ -5,10 +5,15 @@ import { Event } from '@ethersproject/contracts';
5
5
  import { BaseProcessor } from './base-processor';
6
6
  import { BindOptions } from './bind-options';
7
7
  import { PromiseOrVoid } from './promise-or-void';
8
+ import { Trace } from './trace';
8
9
  export declare abstract class BaseProcessorTemplate<TContract extends BaseContract, TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>> {
9
10
  id: number;
10
11
  binds: Set<string>;
11
12
  blockHandlers: ((block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid)[];
13
+ traceHandlers: {
14
+ signature: string;
15
+ handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid;
16
+ }[];
12
17
  eventHandlers: {
13
18
  handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid;
14
19
  filter: EventFilter | EventFilter[];
@@ -17,5 +22,6 @@ export declare abstract class BaseProcessorTemplate<TContract extends BaseContra
17
22
  bind(options: BindOptions): BaseProcessor<TContract, TBoundContractView> | undefined;
18
23
  onEvent(handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid, filter: EventFilter | EventFilter[]): this;
19
24
  onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
25
+ onTrace(signature: string, handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
20
26
  protected abstract bindInternal(options: BindOptions): BaseProcessor<TContract, TBoundContractView>;
21
27
  }
@@ -11,6 +11,7 @@ class BaseProcessorTemplate {
11
11
  id;
12
12
  binds = new Set();
13
13
  blockHandlers = [];
14
+ traceHandlers = [];
14
15
  eventHandlers = [];
15
16
  constructor() {
16
17
  this.id = global.PROCESSOR_STATE.templates.length;
@@ -70,6 +71,10 @@ class BaseProcessorTemplate {
70
71
  this.blockHandlers.push(handler);
71
72
  return this;
72
73
  }
74
+ onTrace(signature, handler) {
75
+ this.traceHandlers.push({ signature, handler });
76
+ return this;
77
+ }
73
78
  }
74
79
  exports.BaseProcessorTemplate = BaseProcessorTemplate;
75
80
  //# sourceMappingURL=base-processor-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-processor-template.js","sourceRoot":"","sources":["../src/base-processor-template.ts"],"names":[],"mappings":";;;;;;AAKA,iDAAiE;AAEjE,gDAAuB;AACvB,wDAAqD;AAGrD,MAAsB,qBAAqB;IAIzC,EAAE,CAAQ;IACV,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IACzB,aAAa,GAAqF,EAAE,CAAA;IACpG,aAAa,GAGP,EAAE,CAAA;IAER;QACE,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAA;QACjD,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEM,IAAI,CAAC,OAAoB;QAC9B,MAAM,GAAG,GAAG,IAAA,kCAAmB,EAAC,OAAO,CAAC,CAAA;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvB,OAAM;SACP;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAE5C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;YACnC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;SACzC;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;YACnC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SACtB;QAED,MAAM,QAAQ,GAAqB;YACjC,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,QAAQ,EAAE;gBACR,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAU,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG;gBAC/E,GAAG,EAAE,EAAE;aACR;YACD,UAAU,EAAE,cAAI,CAAC,IAAI;YACrB,QAAQ,EAAE,cAAI,CAAC,IAAI;SACpB,CAAA;QACD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE;gBAC1C,QAAQ,CAAC,UAAU,GAAG,cAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;aAC1D;iBAAM;gBACL,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;aACzC;SACF;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBACxC,QAAQ,CAAC,QAAQ,GAAG,cAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;aACtD;iBAAM;gBACL,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;aACrC;SACF;QACD,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAExD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEM,OAAO,CACZ,OAAqF,EACrF,MAAmC;QAEnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACtB,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,OAAO,CAAC,OAAqF;QAClG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;CAGF;AAhFD,sDAgFC","sourcesContent":["import { BoundContractView, Context, ContractView } from './context'\nimport { Block } from '@ethersproject/abstract-provider'\nimport { BaseContract, EventFilter } from 'ethers'\nimport { Event } from '@ethersproject/contracts'\nimport { BaseProcessor } from './base-processor'\nimport { BindOptions, getOptionsSignature } from './bind-options'\nimport { TemplateInstance } from './gen/processor/protos/processor'\nimport Long from 'long'\nimport { getNetwork } from '@ethersproject/providers'\nimport { PromiseOrVoid } from './promise-or-void'\n\nexport abstract class BaseProcessorTemplate<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n id: number\n binds = new Set<string>()\n blockHandlers: ((block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid)[] = []\n eventHandlers: {\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n filter: EventFilter | EventFilter[]\n }[] = []\n\n constructor() {\n this.id = global.PROCESSOR_STATE.templates.length\n global.PROCESSOR_STATE.templates.push(this)\n }\n\n public bind(options: BindOptions) {\n const sig = getOptionsSignature(options)\n if (this.binds.has(sig)) {\n return\n }\n this.binds.add(sig)\n\n const processor = this.bindInternal(options)\n\n for (const eh of this.eventHandlers) {\n processor.onEvent(eh.handler, eh.filter)\n }\n for (const bh of this.blockHandlers) {\n processor.onBlock(bh)\n }\n\n const instance: TemplateInstance = {\n templateId: this.id,\n contract: {\n address: options.address,\n name: options.name || '',\n chainId: options.network ? getNetwork(options.network).chainId.toString() : '1',\n abi: '',\n },\n startBlock: Long.ZERO,\n endBlock: Long.ZERO,\n }\n if (options.startBlock) {\n if (typeof options.startBlock === 'number') {\n instance.startBlock = Long.fromNumber(options.startBlock)\n } else {\n instance.startBlock = options.startBlock\n }\n }\n if (options.endBlock) {\n if (typeof options.endBlock === 'number') {\n instance.endBlock = Long.fromNumber(options.endBlock)\n } else {\n instance.endBlock = options.endBlock\n }\n }\n global.PROCESSOR_STATE.templatesInstances.push(instance)\n\n return processor\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n this.eventHandlers.push({\n handler: handler,\n filter: filter,\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n this.blockHandlers.push(handler)\n return this\n }\n\n protected abstract bindInternal(options: BindOptions): BaseProcessor<TContract, TBoundContractView>\n}\n"]}
1
+ {"version":3,"file":"base-processor-template.js","sourceRoot":"","sources":["../src/base-processor-template.ts"],"names":[],"mappings":"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","sourcesContent":["import { BoundContractView, Context, ContractView } from './context'\nimport { Block } from '@ethersproject/abstract-provider'\nimport { BaseContract, EventFilter } from 'ethers'\nimport { Event } from '@ethersproject/contracts'\nimport { BaseProcessor } from './base-processor'\nimport { BindOptions, getOptionsSignature } from './bind-options'\nimport { TemplateInstance } from './gen/processor/protos/processor'\nimport Long from 'long'\nimport { getNetwork } from '@ethersproject/providers'\nimport { PromiseOrVoid } from './promise-or-void'\nimport { Trace } from './trace'\n\nexport abstract class BaseProcessorTemplate<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n id: number\n binds = new Set<string>()\n blockHandlers: ((block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid)[] = []\n traceHandlers: {\n signature: string\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n }[] = []\n eventHandlers: {\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n filter: EventFilter | EventFilter[]\n }[] = []\n\n constructor() {\n this.id = global.PROCESSOR_STATE.templates.length\n global.PROCESSOR_STATE.templates.push(this)\n }\n\n public bind(options: BindOptions) {\n const sig = getOptionsSignature(options)\n if (this.binds.has(sig)) {\n return\n }\n this.binds.add(sig)\n\n const processor = this.bindInternal(options)\n\n for (const eh of this.eventHandlers) {\n processor.onEvent(eh.handler, eh.filter)\n }\n for (const bh of this.blockHandlers) {\n processor.onBlock(bh)\n }\n\n const instance: TemplateInstance = {\n templateId: this.id,\n contract: {\n address: options.address,\n name: options.name || '',\n chainId: options.network ? getNetwork(options.network).chainId.toString() : '1',\n abi: '',\n },\n startBlock: Long.ZERO,\n endBlock: Long.ZERO,\n }\n if (options.startBlock) {\n if (typeof options.startBlock === 'number') {\n instance.startBlock = Long.fromNumber(options.startBlock)\n } else {\n instance.startBlock = options.startBlock\n }\n }\n if (options.endBlock) {\n if (typeof options.endBlock === 'number') {\n instance.endBlock = Long.fromNumber(options.endBlock)\n } else {\n instance.endBlock = options.endBlock\n }\n }\n global.PROCESSOR_STATE.templatesInstances.push(instance)\n\n return processor\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n this.eventHandlers.push({\n handler: handler,\n filter: filter,\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n this.blockHandlers.push(handler)\n return this\n }\n\n public onTrace(\n signature: string,\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n ) {\n this.traceHandlers.push({ signature, handler })\n return this\n }\n\n protected abstract bindInternal(options: BindOptions): BaseProcessor<TContract, TBoundContractView>\n}\n"]}
@@ -26,5 +26,5 @@ export declare abstract class BaseProcessor<TContract extends BaseContract, TBou
26
26
  onEvent(handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid, filter: EventFilter | EventFilter[]): this;
27
27
  onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
28
28
  onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
29
- onTrace(signature: string, handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
29
+ protected onTrace(signature: string, handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid): this;
30
30
  }
@@ -7,7 +7,6 @@ exports.BaseProcessor = exports.TraceHandler = exports.EventsHandler = void 0;
7
7
  const providers_1 = require("@ethersproject/providers");
8
8
  const long_1 = __importDefault(require("long"));
9
9
  const context_1 = require("./context");
10
- const ethers_1 = require("ethers");
11
10
  class EventsHandler {
12
11
  filters;
13
12
  handler;
@@ -124,7 +123,15 @@ class BaseProcessor {
124
123
  handler: async function (trace) {
125
124
  const contractInterface = contractView.rawContract.interface;
126
125
  const fragment = contractInterface.getFunction(signature);
127
- trace.args = contractInterface._abiCoder.decode(fragment.inputs, ethers_1.utils.hexDataSlice(trace.action.input, 4));
126
+ if (!trace.action.input) {
127
+ return {
128
+ gauges: [],
129
+ counters: [],
130
+ logs: [],
131
+ };
132
+ }
133
+ const traceData = '0x' + trace.action.input.slice(10);
134
+ trace.args = contractInterface._abiCoder.decode(fragment.inputs, traceData);
128
135
  const ctx = new context_1.Context(contractView, chainId, undefined, undefined, trace);
129
136
  await handler(trace, ctx);
130
137
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../src/base-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { Block, Log, getNetwork } from '@ethersproject/providers'\nimport { BaseContract, EventFilter } from '@ethersproject/contracts'\nimport Long from 'long'\n\nimport { BoundContractView, Context, ContractView } from './context'\nimport { ProcessResult } from './gen/processor/protos/processor'\nimport { BindInternalOptions, BindOptions } from './bind-options'\nimport { PromiseOrVoid } from './promise-or-void'\nimport { Trace } from './trace'\nimport { utils } from 'ethers'\n\nexport class EventsHandler {\n filters: EventFilter[]\n handler: (event: Log) => Promise<ProcessResult>\n}\n\nexport class TraceHandler {\n signature: string\n handler: (trace: Trace) => Promise<ProcessResult>\n}\n\nexport abstract class BaseProcessor<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n blockHandlers: ((block: Block) => Promise<ProcessResult>)[] = []\n eventHandlers: EventsHandler[] = []\n traceHandlers: TraceHandler[] = []\n\n name: string\n config: BindInternalOptions\n\n constructor(config: BindOptions) {\n this.config = {\n address: config.address,\n name: config.name || '',\n network: config.network ? config.network : 1,\n startBlock: new Long(0),\n }\n if (config.startBlock) {\n if (typeof config.startBlock === 'number') {\n this.config.startBlock = Long.fromNumber(config.startBlock)\n } else {\n this.config.startBlock = config.startBlock\n }\n }\n if (config.endBlock) {\n if (typeof config.endBlock === 'number') {\n this.config.endBlock = Long.fromNumber(config.endBlock)\n } else {\n this.config.endBlock = config.endBlock\n }\n }\n }\n\n protected abstract CreateBoundContractView(): TBoundContractView\n\n public getChainId(): number {\n return getNetwork(this.config.network).chainId\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const contractView = this.CreateBoundContractView()\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = contractView.rawContract.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return contractView.rawContract.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n }\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n },\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.blockHandlers.push(async function (block: Block) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, block, undefined)\n await handler(block, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n })\n return this\n }\n\n public onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const _filters: EventFilter[] = []\n const tmpContract = this.CreateBoundContractView()\n\n for (const key in tmpContract.filters) {\n _filters.push(tmpContract.filters[key]())\n }\n return this.onEvent(function (log, ctx) {\n return handler(log, ctx)\n }, _filters)\n }\n\n public onTrace(\n signature: string,\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n ) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.traceHandlers.push({\n signature,\n handler: async function (trace: Trace) {\n const contractInterface = contractView.rawContract.interface\n const fragment = contractInterface.getFunction(signature)\n trace.args = contractInterface._abiCoder.decode(fragment.inputs, utils.hexDataSlice(trace.action.input, 4))\n\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, undefined, trace)\n await handler(trace, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n },\n })\n return this\n }\n}\n"]}
1
+ {"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../src/base-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Event } from '@ethersproject/contracts'\nimport { BytesLike } from '@ethersproject/bytes'\nimport { Block, Log, getNetwork } from '@ethersproject/providers'\nimport { BaseContract, EventFilter } from '@ethersproject/contracts'\nimport Long from 'long'\n\nimport { BoundContractView, Context, ContractView } from './context'\nimport { ProcessResult } from './gen/processor/protos/processor'\nimport { BindInternalOptions, BindOptions } from './bind-options'\nimport { PromiseOrVoid } from './promise-or-void'\nimport { Trace } from './trace'\n\nexport class EventsHandler {\n filters: EventFilter[]\n handler: (event: Log) => Promise<ProcessResult>\n}\n\nexport class TraceHandler {\n signature: string\n handler: (trace: Trace) => Promise<ProcessResult>\n}\n\nexport abstract class BaseProcessor<\n TContract extends BaseContract,\n TBoundContractView extends BoundContractView<TContract, ContractView<TContract>>\n> {\n blockHandlers: ((block: Block) => Promise<ProcessResult>)[] = []\n eventHandlers: EventsHandler[] = []\n traceHandlers: TraceHandler[] = []\n\n name: string\n config: BindInternalOptions\n\n constructor(config: BindOptions) {\n this.config = {\n address: config.address,\n name: config.name || '',\n network: config.network ? config.network : 1,\n startBlock: new Long(0),\n }\n if (config.startBlock) {\n if (typeof config.startBlock === 'number') {\n this.config.startBlock = Long.fromNumber(config.startBlock)\n } else {\n this.config.startBlock = config.startBlock\n }\n }\n if (config.endBlock) {\n if (typeof config.endBlock === 'number') {\n this.config.endBlock = Long.fromNumber(config.endBlock)\n } else {\n this.config.endBlock = config.endBlock\n }\n }\n }\n\n protected abstract CreateBoundContractView(): TBoundContractView\n\n public getChainId(): number {\n return getNetwork(this.config.network).chainId\n }\n\n public onEvent(\n handler: (event: Event, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid,\n filter: EventFilter | EventFilter[]\n ) {\n const chainId = this.getChainId()\n\n let _filters: EventFilter[] = []\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n const contractView = this.CreateBoundContractView()\n this.eventHandlers.push({\n filters: _filters,\n handler: async function (log) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, log)\n // let event: Event = <Event>deepCopy(log);\n const event: Event = <Event>log\n const parsed = contractView.rawContract.interface.parseLog(log)\n if (parsed) {\n event.args = parsed.args\n event.decode = (data: BytesLike, topics?: Array<any>) => {\n return contractView.rawContract.interface.decodeEventLog(parsed.eventFragment, data, topics)\n }\n event.event = parsed.name\n event.eventSignature = parsed.signature\n\n // TODO fix this bug\n await handler(event, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n }\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n },\n })\n return this\n }\n\n public onBlock(handler: (block: Block, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.blockHandlers.push(async function (block: Block) {\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, block, undefined)\n await handler(block, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n })\n return this\n }\n\n public onAllEvents(handler: (event: Log, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid) {\n const _filters: EventFilter[] = []\n const tmpContract = this.CreateBoundContractView()\n\n for (const key in tmpContract.filters) {\n _filters.push(tmpContract.filters[key]())\n }\n return this.onEvent(function (log, ctx) {\n return handler(log, ctx)\n }, _filters)\n }\n\n protected onTrace(\n signature: string,\n handler: (trace: Trace, ctx: Context<TContract, TBoundContractView>) => PromiseOrVoid\n ) {\n const chainId = this.getChainId()\n const contractView = this.CreateBoundContractView()\n\n this.traceHandlers.push({\n signature,\n handler: async function (trace: Trace) {\n const contractInterface = contractView.rawContract.interface\n const fragment = contractInterface.getFunction(signature)\n if (!trace.action.input) {\n return {\n gauges: [],\n counters: [],\n logs: [],\n }\n }\n const traceData = '0x' + trace.action.input.slice(10)\n trace.args = contractInterface._abiCoder.decode(fragment.inputs, traceData)\n\n const ctx = new Context<TContract, TBoundContractView>(contractView, chainId, undefined, undefined, trace)\n await handler(trace, ctx)\n return {\n gauges: ctx.gauges,\n counters: ctx.counters,\n logs: [],\n }\n },\n })\n return this\n }\n}\n"]}
@@ -1,41 +1,175 @@
1
- import { CallOverrides } from "ethers";
1
+ import { BigNumber, CallOverrides } from "ethers";
2
2
  import { Networkish } from "@ethersproject/providers";
3
- import { BindOptions, BaseProcessor, BaseProcessorTemplate, BoundContractView, Context, ContractView } from "@sentio/sdk";
3
+ import { BindOptions, BaseProcessor, BaseProcessorTemplate, BoundContractView, Context, ContractView, TypedCallTrace } from "@sentio/sdk";
4
4
  import { PromiseOrValue } from "./common";
5
5
  import { ERC20 } from "./index";
6
6
  import { ApprovalEvent, ApprovalEventFilter, OwnershipTransferredEvent, OwnershipTransferredEventFilter, TransferEvent, TransferEventFilter } from "./ERC20";
7
+ export interface AllowanceCallObject {
8
+ owner: string;
9
+ spender: string;
10
+ }
11
+ export declare type AllowanceCallTrace = TypedCallTrace<[
12
+ string,
13
+ string
14
+ ], AllowanceCallObject>;
15
+ export interface ApproveCallObject {
16
+ spender: string;
17
+ amount: BigNumber;
18
+ }
19
+ export declare type ApproveCallTrace = TypedCallTrace<[
20
+ string,
21
+ BigNumber
22
+ ], ApproveCallObject>;
23
+ export interface BalanceOfCallObject {
24
+ account: string;
25
+ }
26
+ export declare type BalanceOfCallTrace = TypedCallTrace<[string], BalanceOfCallObject>;
27
+ export interface BurnCallObject {
28
+ amount: BigNumber;
29
+ }
30
+ export declare type BurnCallTrace = TypedCallTrace<[BigNumber], BurnCallObject>;
31
+ export interface BurnFromCallObject {
32
+ account: string;
33
+ amount: BigNumber;
34
+ }
35
+ export declare type BurnFromCallTrace = TypedCallTrace<[
36
+ string,
37
+ BigNumber
38
+ ], BurnFromCallObject>;
39
+ export interface DecimalsCallObject {
40
+ }
41
+ export declare type DecimalsCallTrace = TypedCallTrace<[], DecimalsCallObject>;
42
+ export interface DecreaseAllowanceCallObject {
43
+ spender: string;
44
+ subtractedValue: BigNumber;
45
+ }
46
+ export declare type DecreaseAllowanceCallTrace = TypedCallTrace<[
47
+ string,
48
+ BigNumber
49
+ ], DecreaseAllowanceCallObject>;
50
+ export interface IncreaseAllowanceCallObject {
51
+ spender: string;
52
+ addedValue: BigNumber;
53
+ }
54
+ export declare type IncreaseAllowanceCallTrace = TypedCallTrace<[
55
+ string,
56
+ BigNumber
57
+ ], IncreaseAllowanceCallObject>;
58
+ export interface LockerCallObject {
59
+ }
60
+ export declare type LockerCallTrace = TypedCallTrace<[], LockerCallObject>;
61
+ export interface NameCallObject {
62
+ }
63
+ export declare type NameCallTrace = TypedCallTrace<[], NameCallObject>;
64
+ export interface OwnerCallObject {
65
+ }
66
+ export declare type OwnerCallTrace = TypedCallTrace<[], OwnerCallObject>;
67
+ export interface RenounceOwnershipCallObject {
68
+ }
69
+ export declare type RenounceOwnershipCallTrace = TypedCallTrace<[
70
+ ], RenounceOwnershipCallObject>;
71
+ export interface SetLockerCallObject {
72
+ _locker: string;
73
+ }
74
+ export declare type SetLockerCallTrace = TypedCallTrace<[string], SetLockerCallObject>;
75
+ export interface SymbolCallObject {
76
+ }
77
+ export declare type SymbolCallTrace = TypedCallTrace<[], SymbolCallObject>;
78
+ export interface TotalSupplyCallObject {
79
+ }
80
+ export declare type TotalSupplyCallTrace = TypedCallTrace<[], TotalSupplyCallObject>;
81
+ export interface TransferCallObject {
82
+ recipient: string;
83
+ amount: BigNumber;
84
+ }
85
+ export declare type TransferCallTrace = TypedCallTrace<[
86
+ string,
87
+ BigNumber
88
+ ], TransferCallObject>;
89
+ export interface TransferFromCallObject {
90
+ sender: string;
91
+ recipient: string;
92
+ amount: BigNumber;
93
+ }
94
+ export declare type TransferFromCallTrace = TypedCallTrace<[
95
+ string,
96
+ string,
97
+ BigNumber
98
+ ], TransferFromCallObject>;
99
+ export interface TransferOwnershipCallObject {
100
+ newOwner: string;
101
+ }
102
+ export declare type TransferOwnershipCallTrace = TypedCallTrace<[
103
+ string
104
+ ], TransferOwnershipCallObject>;
7
105
  export declare class ERC20ContractView extends ContractView<ERC20> {
8
106
  constructor(contract: ERC20);
9
- allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
10
- balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
107
+ allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
108
+ balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
11
109
  decimals(overrides?: CallOverrides): Promise<number>;
12
110
  locker(overrides?: CallOverrides): Promise<string>;
13
111
  name(overrides?: CallOverrides): Promise<string>;
14
112
  owner(overrides?: CallOverrides): Promise<string>;
15
113
  symbol(overrides?: CallOverrides): Promise<string>;
16
- totalSupply(overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
114
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
17
115
  }
18
116
  export declare class ERC20BoundContractView extends BoundContractView<ERC20, ERC20ContractView> {
19
- allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
20
- balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
117
+ allowance(owner: PromiseOrValue<string>, spender: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
118
+ balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
21
119
  decimals(overrides?: CallOverrides): Promise<number>;
22
120
  locker(overrides?: CallOverrides): Promise<string>;
23
121
  name(overrides?: CallOverrides): Promise<string>;
24
122
  owner(overrides?: CallOverrides): Promise<string>;
25
123
  symbol(overrides?: CallOverrides): Promise<string>;
26
- totalSupply(overrides?: CallOverrides): Promise<import("ethers").BigNumber>;
124
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
27
125
  }
28
126
  export declare type ERC20Context = Context<ERC20, ERC20BoundContractView>;
29
127
  export declare class ERC20ProcessorTemplate extends BaseProcessorTemplate<ERC20, ERC20BoundContractView> {
30
128
  bindInternal(options: BindOptions): ERC20Processor;
31
- onApproval(handler: (event: ApprovalEvent, ctx: ERC20Context) => void, filter?: ApprovalEventFilter | ApprovalEventFilter[]): this;
32
- onOwnershipTransferred(handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void, filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]): this;
33
- onTransfer(handler: (event: TransferEvent, ctx: ERC20Context) => void, filter?: TransferEventFilter | TransferEventFilter[]): this;
129
+ onEventApproval(handler: (event: ApprovalEvent, ctx: ERC20Context) => void, filter?: ApprovalEventFilter | ApprovalEventFilter[]): this;
130
+ onEventOwnershipTransferred(handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void, filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]): this;
131
+ onEventTransfer(handler: (event: TransferEvent, ctx: ERC20Context) => void, filter?: TransferEventFilter | TransferEventFilter[]): this;
132
+ onCallAllowance(handler: (call: AllowanceCallTrace, ctx: ERC20Context) => void): this;
133
+ onCallApprove(handler: (call: ApproveCallTrace, ctx: ERC20Context) => void): this;
134
+ onCallBalanceOf(handler: (call: BalanceOfCallTrace, ctx: ERC20Context) => void): this;
135
+ onCallBurn(handler: (call: BurnCallTrace, ctx: ERC20Context) => void): this;
136
+ onCallBurnFrom(handler: (call: BurnFromCallTrace, ctx: ERC20Context) => void): this;
137
+ onCallDecimals(handler: (call: DecimalsCallTrace, ctx: ERC20Context) => void): this;
138
+ onCallDecreaseAllowance(handler: (call: DecreaseAllowanceCallTrace, ctx: ERC20Context) => void): this;
139
+ onCallIncreaseAllowance(handler: (call: IncreaseAllowanceCallTrace, ctx: ERC20Context) => void): this;
140
+ onCallLocker(handler: (call: LockerCallTrace, ctx: ERC20Context) => void): this;
141
+ onCallName(handler: (call: NameCallTrace, ctx: ERC20Context) => void): this;
142
+ onCallOwner(handler: (call: OwnerCallTrace, ctx: ERC20Context) => void): this;
143
+ onCallRenounceOwnership(handler: (call: RenounceOwnershipCallTrace, ctx: ERC20Context) => void): this;
144
+ onCallSetLocker(handler: (call: SetLockerCallTrace, ctx: ERC20Context) => void): this;
145
+ onCallSymbol(handler: (call: SymbolCallTrace, ctx: ERC20Context) => void): this;
146
+ onCallTotalSupply(handler: (call: TotalSupplyCallTrace, ctx: ERC20Context) => void): this;
147
+ onCallTransfer(handler: (call: TransferCallTrace, ctx: ERC20Context) => void): this;
148
+ onCallTransferFrom(handler: (call: TransferFromCallTrace, ctx: ERC20Context) => void): this;
149
+ onCallTransferOwnership(handler: (call: TransferOwnershipCallTrace, ctx: ERC20Context) => void): this;
34
150
  }
35
151
  export declare class ERC20Processor extends BaseProcessor<ERC20, ERC20BoundContractView> {
36
- onApproval(handler: (event: ApprovalEvent, ctx: ERC20Context) => void, filter?: ApprovalEventFilter | ApprovalEventFilter[]): this;
37
- onOwnershipTransferred(handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void, filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]): this;
38
- onTransfer(handler: (event: TransferEvent, ctx: ERC20Context) => void, filter?: TransferEventFilter | TransferEventFilter[]): this;
152
+ onEventApproval(handler: (event: ApprovalEvent, ctx: ERC20Context) => void, filter?: ApprovalEventFilter | ApprovalEventFilter[]): this;
153
+ onEventOwnershipTransferred(handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void, filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]): this;
154
+ onEventTransfer(handler: (event: TransferEvent, ctx: ERC20Context) => void, filter?: TransferEventFilter | TransferEventFilter[]): this;
155
+ onCallAllowance(handler: (call: AllowanceCallTrace, ctx: ERC20Context) => void): this;
156
+ onCallApprove(handler: (call: ApproveCallTrace, ctx: ERC20Context) => void): this;
157
+ onCallBalanceOf(handler: (call: BalanceOfCallTrace, ctx: ERC20Context) => void): this;
158
+ onCallBurn(handler: (call: BurnCallTrace, ctx: ERC20Context) => void): this;
159
+ onCallBurnFrom(handler: (call: BurnFromCallTrace, ctx: ERC20Context) => void): this;
160
+ onCallDecimals(handler: (call: DecimalsCallTrace, ctx: ERC20Context) => void): this;
161
+ onCallDecreaseAllowance(handler: (call: DecreaseAllowanceCallTrace, ctx: ERC20Context) => void): this;
162
+ onCallIncreaseAllowance(handler: (call: IncreaseAllowanceCallTrace, ctx: ERC20Context) => void): this;
163
+ onCallLocker(handler: (call: LockerCallTrace, ctx: ERC20Context) => void): this;
164
+ onCallName(handler: (call: NameCallTrace, ctx: ERC20Context) => void): this;
165
+ onCallOwner(handler: (call: OwnerCallTrace, ctx: ERC20Context) => void): this;
166
+ onCallRenounceOwnership(handler: (call: RenounceOwnershipCallTrace, ctx: ERC20Context) => void): this;
167
+ onCallSetLocker(handler: (call: SetLockerCallTrace, ctx: ERC20Context) => void): this;
168
+ onCallSymbol(handler: (call: SymbolCallTrace, ctx: ERC20Context) => void): this;
169
+ onCallTotalSupply(handler: (call: TotalSupplyCallTrace, ctx: ERC20Context) => void): this;
170
+ onCallTransfer(handler: (call: TransferCallTrace, ctx: ERC20Context) => void): this;
171
+ onCallTransferFrom(handler: (call: TransferFromCallTrace, ctx: ERC20Context) => void): this;
172
+ onCallTransferOwnership(handler: (call: TransferOwnershipCallTrace, ctx: ERC20Context) => void): this;
39
173
  static filters: {
40
174
  "Approval(address,address,uint256)"(owner?: PromiseOrValue<string> | null | undefined, spender?: PromiseOrValue<string> | null | undefined, value?: null | undefined): ApprovalEventFilter;
41
175
  Approval(owner?: PromiseOrValue<string> | null | undefined, spender?: PromiseOrValue<string> | null | undefined, value?: null | undefined): ApprovalEventFilter;
@@ -275,45 +275,153 @@ class ERC20ProcessorTemplate extends sdk_1.BaseProcessorTemplate {
275
275
  }
276
276
  return processor;
277
277
  }
278
- onApproval(handler, filter) {
278
+ onEventApproval(handler, filter) {
279
279
  if (!filter) {
280
280
  filter = ERC20Processor.filters["Approval(address,address,uint256)"](null, null, null);
281
281
  }
282
282
  return super.onEvent(handler, filter);
283
283
  }
284
- onOwnershipTransferred(handler, filter) {
284
+ onEventOwnershipTransferred(handler, filter) {
285
285
  if (!filter) {
286
286
  filter = ERC20Processor.filters["OwnershipTransferred(address,address)"](null, null);
287
287
  }
288
288
  return super.onEvent(handler, filter);
289
289
  }
290
- onTransfer(handler, filter) {
290
+ onEventTransfer(handler, filter) {
291
291
  if (!filter) {
292
292
  filter = ERC20Processor.filters["Transfer(address,address,uint256)"](null, null, null);
293
293
  }
294
294
  return super.onEvent(handler, filter);
295
295
  }
296
+ onCallAllowance(handler) {
297
+ return super.onTrace("0xdd62ed3e", handler);
298
+ }
299
+ onCallApprove(handler) {
300
+ return super.onTrace("0x095ea7b3", handler);
301
+ }
302
+ onCallBalanceOf(handler) {
303
+ return super.onTrace("0x70a08231", handler);
304
+ }
305
+ onCallBurn(handler) {
306
+ return super.onTrace("0x42966c68", handler);
307
+ }
308
+ onCallBurnFrom(handler) {
309
+ return super.onTrace("0x79cc6790", handler);
310
+ }
311
+ onCallDecimals(handler) {
312
+ return super.onTrace("0x313ce567", handler);
313
+ }
314
+ onCallDecreaseAllowance(handler) {
315
+ return super.onTrace("0xa457c2d7", handler);
316
+ }
317
+ onCallIncreaseAllowance(handler) {
318
+ return super.onTrace("0x39509351", handler);
319
+ }
320
+ onCallLocker(handler) {
321
+ return super.onTrace("0xd7b96d4e", handler);
322
+ }
323
+ onCallName(handler) {
324
+ return super.onTrace("0x06fdde03", handler);
325
+ }
326
+ onCallOwner(handler) {
327
+ return super.onTrace("0x8da5cb5b", handler);
328
+ }
329
+ onCallRenounceOwnership(handler) {
330
+ return super.onTrace("0x715018a6", handler);
331
+ }
332
+ onCallSetLocker(handler) {
333
+ return super.onTrace("0x171060ec", handler);
334
+ }
335
+ onCallSymbol(handler) {
336
+ return super.onTrace("0x95d89b41", handler);
337
+ }
338
+ onCallTotalSupply(handler) {
339
+ return super.onTrace("0x18160ddd", handler);
340
+ }
341
+ onCallTransfer(handler) {
342
+ return super.onTrace("0xa9059cbb", handler);
343
+ }
344
+ onCallTransferFrom(handler) {
345
+ return super.onTrace("0x23b872dd", handler);
346
+ }
347
+ onCallTransferOwnership(handler) {
348
+ return super.onTrace("0xf2fde38b", handler);
349
+ }
296
350
  }
297
351
  exports.ERC20ProcessorTemplate = ERC20ProcessorTemplate;
298
352
  class ERC20Processor extends sdk_1.BaseProcessor {
299
- onApproval(handler, filter) {
353
+ onEventApproval(handler, filter) {
300
354
  if (!filter) {
301
355
  filter = ERC20Processor.filters["Approval(address,address,uint256)"](null, null, null);
302
356
  }
303
357
  return super.onEvent(handler, filter);
304
358
  }
305
- onOwnershipTransferred(handler, filter) {
359
+ onEventOwnershipTransferred(handler, filter) {
306
360
  if (!filter) {
307
361
  filter = ERC20Processor.filters["OwnershipTransferred(address,address)"](null, null);
308
362
  }
309
363
  return super.onEvent(handler, filter);
310
364
  }
311
- onTransfer(handler, filter) {
365
+ onEventTransfer(handler, filter) {
312
366
  if (!filter) {
313
367
  filter = ERC20Processor.filters["Transfer(address,address,uint256)"](null, null, null);
314
368
  }
315
369
  return super.onEvent(handler, filter);
316
370
  }
371
+ onCallAllowance(handler) {
372
+ return super.onTrace("0xdd62ed3e", handler);
373
+ }
374
+ onCallApprove(handler) {
375
+ return super.onTrace("0x095ea7b3", handler);
376
+ }
377
+ onCallBalanceOf(handler) {
378
+ return super.onTrace("0x70a08231", handler);
379
+ }
380
+ onCallBurn(handler) {
381
+ return super.onTrace("0x42966c68", handler);
382
+ }
383
+ onCallBurnFrom(handler) {
384
+ return super.onTrace("0x79cc6790", handler);
385
+ }
386
+ onCallDecimals(handler) {
387
+ return super.onTrace("0x313ce567", handler);
388
+ }
389
+ onCallDecreaseAllowance(handler) {
390
+ return super.onTrace("0xa457c2d7", handler);
391
+ }
392
+ onCallIncreaseAllowance(handler) {
393
+ return super.onTrace("0x39509351", handler);
394
+ }
395
+ onCallLocker(handler) {
396
+ return super.onTrace("0xd7b96d4e", handler);
397
+ }
398
+ onCallName(handler) {
399
+ return super.onTrace("0x06fdde03", handler);
400
+ }
401
+ onCallOwner(handler) {
402
+ return super.onTrace("0x8da5cb5b", handler);
403
+ }
404
+ onCallRenounceOwnership(handler) {
405
+ return super.onTrace("0x715018a6", handler);
406
+ }
407
+ onCallSetLocker(handler) {
408
+ return super.onTrace("0x171060ec", handler);
409
+ }
410
+ onCallSymbol(handler) {
411
+ return super.onTrace("0x95d89b41", handler);
412
+ }
413
+ onCallTotalSupply(handler) {
414
+ return super.onTrace("0x18160ddd", handler);
415
+ }
416
+ onCallTransfer(handler) {
417
+ return super.onTrace("0xa9059cbb", handler);
418
+ }
419
+ onCallTransferFrom(handler) {
420
+ return super.onTrace("0x23b872dd", handler);
421
+ }
422
+ onCallTransferOwnership(handler) {
423
+ return super.onTrace("0xf2fde38b", handler);
424
+ }
317
425
  static filters = templateContract.filters;
318
426
  CreateBoundContractView() {
319
427
  const view = getERC20Contract(this.config.address, this.config.network);
@@ -1 +1 @@
1
- {"version":3,"file":"erc20_processor.js","sourceRoot":"","sources":["../../../src/builtin/internal/erc20_processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { CallOverrides } from \"ethers\";\nimport { Networkish } from \"@ethersproject/providers\";\nimport {\n addContractByABI,\n getContractByABI,\n addProcessor,\n getProcessor,\n getProvider,\n transformEtherError,\n BindOptions,\n BaseProcessor,\n BaseProcessorTemplate,\n BoundContractView,\n Context,\n ContractView,\n DummyProvider,\n getContractName,\n} from \"@sentio/sdk\";\nimport { PromiseOrValue } from \"./common\";\nimport { ERC20, ERC20__factory } from \"./index\";\nimport {\n ApprovalEvent,\n ApprovalEventFilter,\n OwnershipTransferredEvent,\n OwnershipTransferredEventFilter,\n TransferEvent,\n TransferEventFilter,\n} from \"./ERC20\";\nconst templateContract = ERC20__factory.connect(\"\", DummyProvider);\n\nexport class ERC20ContractView extends ContractView<ERC20> {\n constructor(contract: ERC20) {\n super(contract);\n }\n\n async allowance(\n owner: PromiseOrValue<string>,\n spender: PromiseOrValue<string>,\n overrides?: CallOverrides\n ) {\n try {\n if (overrides) {\n return await this.contract.allowance(owner, spender, overrides);\n } else {\n return await this.contract.allowance(owner, spender);\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.balanceOf(account, overrides);\n } else {\n return await this.contract.balanceOf(account);\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async decimals(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.decimals(overrides);\n } else {\n return await this.contract.decimals();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async locker(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.locker(overrides);\n } else {\n return await this.contract.locker();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async name(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.name(overrides);\n } else {\n return await this.contract.name();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async owner(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.owner(overrides);\n } else {\n return await this.contract.owner();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async symbol(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.symbol(overrides);\n } else {\n return await this.contract.symbol();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async totalSupply(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.totalSupply(overrides);\n } else {\n return await this.contract.totalSupply();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n}\n\nexport class ERC20BoundContractView extends BoundContractView<\n ERC20,\n ERC20ContractView\n> {\n // constructor (contract: ERC20) {\n // super(contract);\n // }\n\n async allowance(\n owner: PromiseOrValue<string>,\n spender: PromiseOrValue<string>,\n overrides?: CallOverrides\n ) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.allowance(owner, spender, overrides);\n } else {\n return await this.view.allowance(owner, spender);\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.balanceOf(account, overrides);\n } else {\n return await this.view.balanceOf(account);\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async decimals(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.decimals(overrides);\n } else {\n return await this.view.decimals();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async locker(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.locker(overrides);\n } else {\n return await this.view.locker();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async name(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.name(overrides);\n } else {\n return await this.view.name();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async owner(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.owner(overrides);\n } else {\n return await this.view.owner();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async symbol(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.symbol(overrides);\n } else {\n return await this.view.symbol();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async totalSupply(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.totalSupply(overrides);\n } else {\n return await this.view.totalSupply();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n}\n\nexport type ERC20Context = Context<ERC20, ERC20BoundContractView>;\n\nexport class ERC20ProcessorTemplate extends BaseProcessorTemplate<\n ERC20,\n ERC20BoundContractView\n> {\n bindInternal(options: BindOptions) {\n let processor = getProcessor(\"ERC20\", options) as ERC20Processor;\n if (!processor) {\n const finalOptions = Object.assign({}, options);\n finalOptions.name = getContractName(\n \"ERC20\",\n options.name,\n options.address,\n options.network\n );\n processor = new ERC20Processor(finalOptions);\n addProcessor(\"ERC20\", options, processor);\n }\n return processor;\n }\n\n onApproval(\n handler: (event: ApprovalEvent, ctx: ERC20Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onOwnershipTransferred(\n handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void,\n filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"OwnershipTransferred(address,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onTransfer(\n handler: (event: TransferEvent, ctx: ERC20Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n}\n\nexport class ERC20Processor extends BaseProcessor<\n ERC20,\n ERC20BoundContractView\n> {\n onApproval(\n handler: (event: ApprovalEvent, ctx: ERC20Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onOwnershipTransferred(\n handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void,\n filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"OwnershipTransferred(address,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onTransfer(\n handler: (event: TransferEvent, ctx: ERC20Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n public static filters = templateContract.filters;\n\n protected CreateBoundContractView(): ERC20BoundContractView {\n const view = getERC20Contract(this.config.address, this.config.network);\n return new ERC20BoundContractView(view);\n }\n\n public static bind(options: BindOptions): ERC20Processor {\n let processor = getProcessor(\"ERC20\", options) as ERC20Processor;\n if (!processor) {\n // const wrapper = getERC20Contract(options.address, options.network)\n\n const finalOptions = Object.assign({}, options);\n finalOptions.name = getContractName(\n \"ERC20\",\n options.name,\n options.address,\n options.network\n );\n processor = new ERC20Processor(finalOptions);\n addProcessor(\"ERC20\", options, processor);\n }\n return processor;\n }\n}\n\nexport function getERC20Contract(\n address: string,\n network: Networkish = 1\n): ERC20ContractView {\n let contract = getContractByABI(\n \"ERC20\",\n address,\n network\n ) as ERC20ContractView;\n if (!contract) {\n const rawContract = ERC20__factory.connect(address, getProvider(network));\n contract = new ERC20ContractView(rawContract);\n addContractByABI(\"ERC20\", address, network, contract);\n }\n return contract;\n}\n"]}
1
+ {"version":3,"file":"erc20_processor.js","sourceRoot":"","sources":["../../../src/builtin/internal/erc20_processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { BigNumber, CallOverrides } from \"ethers\";\nimport { Networkish } from \"@ethersproject/providers\";\nimport {\n addContractByABI,\n getContractByABI,\n addProcessor,\n getProcessor,\n getProvider,\n transformEtherError,\n BindOptions,\n BaseProcessor,\n BaseProcessorTemplate,\n BoundContractView,\n Context,\n ContractView,\n DummyProvider,\n getContractName,\n TypedCallTrace,\n} from \"@sentio/sdk\";\nimport { PromiseOrValue } from \"./common\";\nimport { ERC20, ERC20__factory } from \"./index\";\nimport {\n ApprovalEvent,\n ApprovalEventFilter,\n OwnershipTransferredEvent,\n OwnershipTransferredEventFilter,\n TransferEvent,\n TransferEventFilter,\n} from \"./ERC20\";\n\nexport interface AllowanceCallObject {\n owner: string;\n spender: string;\n}\n\nexport type AllowanceCallTrace = TypedCallTrace<\n [string, string],\n AllowanceCallObject\n>;\n\nexport interface ApproveCallObject {\n spender: string;\n amount: BigNumber;\n}\n\nexport type ApproveCallTrace = TypedCallTrace<\n [string, BigNumber],\n ApproveCallObject\n>;\n\nexport interface BalanceOfCallObject {\n account: string;\n}\n\nexport type BalanceOfCallTrace = TypedCallTrace<[string], BalanceOfCallObject>;\n\nexport interface BurnCallObject {\n amount: BigNumber;\n}\n\nexport type BurnCallTrace = TypedCallTrace<[BigNumber], BurnCallObject>;\n\nexport interface BurnFromCallObject {\n account: string;\n amount: BigNumber;\n}\n\nexport type BurnFromCallTrace = TypedCallTrace<\n [string, BigNumber],\n BurnFromCallObject\n>;\n\nexport interface DecimalsCallObject {}\n\nexport type DecimalsCallTrace = TypedCallTrace<[], DecimalsCallObject>;\n\nexport interface DecreaseAllowanceCallObject {\n spender: string;\n subtractedValue: BigNumber;\n}\n\nexport type DecreaseAllowanceCallTrace = TypedCallTrace<\n [string, BigNumber],\n DecreaseAllowanceCallObject\n>;\n\nexport interface IncreaseAllowanceCallObject {\n spender: string;\n addedValue: BigNumber;\n}\n\nexport type IncreaseAllowanceCallTrace = TypedCallTrace<\n [string, BigNumber],\n IncreaseAllowanceCallObject\n>;\n\nexport interface LockerCallObject {}\n\nexport type LockerCallTrace = TypedCallTrace<[], LockerCallObject>;\n\nexport interface NameCallObject {}\n\nexport type NameCallTrace = TypedCallTrace<[], NameCallObject>;\n\nexport interface OwnerCallObject {}\n\nexport type OwnerCallTrace = TypedCallTrace<[], OwnerCallObject>;\n\nexport interface RenounceOwnershipCallObject {}\n\nexport type RenounceOwnershipCallTrace = TypedCallTrace<\n [],\n RenounceOwnershipCallObject\n>;\n\nexport interface SetLockerCallObject {\n _locker: string;\n}\n\nexport type SetLockerCallTrace = TypedCallTrace<[string], SetLockerCallObject>;\n\nexport interface SymbolCallObject {}\n\nexport type SymbolCallTrace = TypedCallTrace<[], SymbolCallObject>;\n\nexport interface TotalSupplyCallObject {}\n\nexport type TotalSupplyCallTrace = TypedCallTrace<[], TotalSupplyCallObject>;\n\nexport interface TransferCallObject {\n recipient: string;\n amount: BigNumber;\n}\n\nexport type TransferCallTrace = TypedCallTrace<\n [string, BigNumber],\n TransferCallObject\n>;\n\nexport interface TransferFromCallObject {\n sender: string;\n recipient: string;\n amount: BigNumber;\n}\n\nexport type TransferFromCallTrace = TypedCallTrace<\n [string, string, BigNumber],\n TransferFromCallObject\n>;\n\nexport interface TransferOwnershipCallObject {\n newOwner: string;\n}\n\nexport type TransferOwnershipCallTrace = TypedCallTrace<\n [string],\n TransferOwnershipCallObject\n>;\n\nconst templateContract = ERC20__factory.connect(\"\", DummyProvider);\n\nexport class ERC20ContractView extends ContractView<ERC20> {\n constructor(contract: ERC20) {\n super(contract);\n }\n\n async allowance(\n owner: PromiseOrValue<string>,\n spender: PromiseOrValue<string>,\n overrides?: CallOverrides\n ) {\n try {\n if (overrides) {\n return await this.contract.allowance(owner, spender, overrides);\n } else {\n return await this.contract.allowance(owner, spender);\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.balanceOf(account, overrides);\n } else {\n return await this.contract.balanceOf(account);\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async decimals(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.decimals(overrides);\n } else {\n return await this.contract.decimals();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async locker(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.locker(overrides);\n } else {\n return await this.contract.locker();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async name(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.name(overrides);\n } else {\n return await this.contract.name();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async owner(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.owner(overrides);\n } else {\n return await this.contract.owner();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async symbol(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.symbol(overrides);\n } else {\n return await this.contract.symbol();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async totalSupply(overrides?: CallOverrides) {\n try {\n if (overrides) {\n return await this.contract.totalSupply(overrides);\n } else {\n return await this.contract.totalSupply();\n }\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n}\n\nexport class ERC20BoundContractView extends BoundContractView<\n ERC20,\n ERC20ContractView\n> {\n // constructor (contract: ERC20) {\n // super(contract);\n // }\n\n async allowance(\n owner: PromiseOrValue<string>,\n spender: PromiseOrValue<string>,\n overrides?: CallOverrides\n ) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.allowance(owner, spender, overrides);\n } else {\n return await this.view.allowance(owner, spender);\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.balanceOf(account, overrides);\n } else {\n return await this.view.balanceOf(account);\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async decimals(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.decimals(overrides);\n } else {\n return await this.view.decimals();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async locker(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.locker(overrides);\n } else {\n return await this.view.locker();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async name(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.name(overrides);\n } else {\n return await this.view.name();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async owner(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.owner(overrides);\n } else {\n return await this.view.owner();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async symbol(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.symbol(overrides);\n } else {\n return await this.view.symbol();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n\n async totalSupply(overrides?: CallOverrides) {\n try {\n if (!overrides && this.context) {\n overrides = {\n blockTag: this.context.blockNumber.toNumber(),\n };\n }\n if (overrides) {\n return await this.view.totalSupply(overrides);\n } else {\n return await this.view.totalSupply();\n }\n } catch (e) {\n throw transformEtherError(e, this.context);\n }\n }\n}\n\nexport type ERC20Context = Context<ERC20, ERC20BoundContractView>;\n\nexport class ERC20ProcessorTemplate extends BaseProcessorTemplate<\n ERC20,\n ERC20BoundContractView\n> {\n bindInternal(options: BindOptions) {\n let processor = getProcessor(\"ERC20\", options) as ERC20Processor;\n if (!processor) {\n const finalOptions = Object.assign({}, options);\n finalOptions.name = getContractName(\n \"ERC20\",\n options.name,\n options.address,\n options.network\n );\n processor = new ERC20Processor(finalOptions);\n addProcessor(\"ERC20\", options, processor);\n }\n return processor;\n }\n\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: ERC20Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onEventOwnershipTransferred(\n handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void,\n filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"OwnershipTransferred(address,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: ERC20Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onCallAllowance(\n handler: (call: AllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xdd62ed3e\", handler);\n }\n\n onCallApprove(handler: (call: ApproveCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x095ea7b3\", handler);\n }\n\n onCallBalanceOf(\n handler: (call: BalanceOfCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x70a08231\", handler);\n }\n\n onCallBurn(handler: (call: BurnCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x42966c68\", handler);\n }\n\n onCallBurnFrom(\n handler: (call: BurnFromCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x79cc6790\", handler);\n }\n\n onCallDecimals(\n handler: (call: DecimalsCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x313ce567\", handler);\n }\n\n onCallDecreaseAllowance(\n handler: (call: DecreaseAllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xa457c2d7\", handler);\n }\n\n onCallIncreaseAllowance(\n handler: (call: IncreaseAllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x39509351\", handler);\n }\n\n onCallLocker(handler: (call: LockerCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0xd7b96d4e\", handler);\n }\n\n onCallName(handler: (call: NameCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x06fdde03\", handler);\n }\n\n onCallOwner(handler: (call: OwnerCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x8da5cb5b\", handler);\n }\n\n onCallRenounceOwnership(\n handler: (call: RenounceOwnershipCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x715018a6\", handler);\n }\n\n onCallSetLocker(\n handler: (call: SetLockerCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x171060ec\", handler);\n }\n\n onCallSymbol(handler: (call: SymbolCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x95d89b41\", handler);\n }\n\n onCallTotalSupply(\n handler: (call: TotalSupplyCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x18160ddd\", handler);\n }\n\n onCallTransfer(\n handler: (call: TransferCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xa9059cbb\", handler);\n }\n\n onCallTransferFrom(\n handler: (call: TransferFromCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x23b872dd\", handler);\n }\n\n onCallTransferOwnership(\n handler: (call: TransferOwnershipCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xf2fde38b\", handler);\n }\n}\n\nexport class ERC20Processor extends BaseProcessor<\n ERC20,\n ERC20BoundContractView\n> {\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: ERC20Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onEventOwnershipTransferred(\n handler: (event: OwnershipTransferredEvent, ctx: ERC20Context) => void,\n filter?: OwnershipTransferredEventFilter | OwnershipTransferredEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"OwnershipTransferred(address,address)\"](\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: ERC20Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[]\n ) {\n if (!filter) {\n filter = ERC20Processor.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEvent(handler, filter);\n }\n\n onCallAllowance(\n handler: (call: AllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xdd62ed3e\", handler);\n }\n\n onCallApprove(handler: (call: ApproveCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x095ea7b3\", handler);\n }\n\n onCallBalanceOf(\n handler: (call: BalanceOfCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x70a08231\", handler);\n }\n\n onCallBurn(handler: (call: BurnCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x42966c68\", handler);\n }\n\n onCallBurnFrom(\n handler: (call: BurnFromCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x79cc6790\", handler);\n }\n\n onCallDecimals(\n handler: (call: DecimalsCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x313ce567\", handler);\n }\n\n onCallDecreaseAllowance(\n handler: (call: DecreaseAllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xa457c2d7\", handler);\n }\n\n onCallIncreaseAllowance(\n handler: (call: IncreaseAllowanceCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x39509351\", handler);\n }\n\n onCallLocker(handler: (call: LockerCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0xd7b96d4e\", handler);\n }\n\n onCallName(handler: (call: NameCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x06fdde03\", handler);\n }\n\n onCallOwner(handler: (call: OwnerCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x8da5cb5b\", handler);\n }\n\n onCallRenounceOwnership(\n handler: (call: RenounceOwnershipCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x715018a6\", handler);\n }\n\n onCallSetLocker(\n handler: (call: SetLockerCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x171060ec\", handler);\n }\n\n onCallSymbol(handler: (call: SymbolCallTrace, ctx: ERC20Context) => void) {\n return super.onTrace(\"0x95d89b41\", handler);\n }\n\n onCallTotalSupply(\n handler: (call: TotalSupplyCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x18160ddd\", handler);\n }\n\n onCallTransfer(\n handler: (call: TransferCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xa9059cbb\", handler);\n }\n\n onCallTransferFrom(\n handler: (call: TransferFromCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0x23b872dd\", handler);\n }\n\n onCallTransferOwnership(\n handler: (call: TransferOwnershipCallTrace, ctx: ERC20Context) => void\n ) {\n return super.onTrace(\"0xf2fde38b\", handler);\n }\n\n public static filters = templateContract.filters;\n\n protected CreateBoundContractView(): ERC20BoundContractView {\n const view = getERC20Contract(this.config.address, this.config.network);\n return new ERC20BoundContractView(view);\n }\n\n public static bind(options: BindOptions): ERC20Processor {\n let processor = getProcessor(\"ERC20\", options) as ERC20Processor;\n if (!processor) {\n // const wrapper = getERC20Contract(options.address, options.network)\n\n const finalOptions = Object.assign({}, options);\n finalOptions.name = getContractName(\n \"ERC20\",\n options.name,\n options.address,\n options.network\n );\n processor = new ERC20Processor(finalOptions);\n addProcessor(\"ERC20\", options, processor);\n }\n return processor;\n }\n}\n\nexport function getERC20Contract(\n address: string,\n network: Networkish = 1\n): ERC20ContractView {\n let contract = getContractByABI(\n \"ERC20\",\n address,\n network\n ) as ERC20ContractView;\n if (!contract) {\n const rawContract = ERC20__factory.connect(address, getProvider(network));\n contract = new ERC20ContractView(rawContract);\n addContractByABI(\"ERC20\", address, network, contract);\n }\n return contract;\n}\n"]}