@sentio/sdk 2.18.0 → 2.18.1-rc.10

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 (40) hide show
  1. package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +49 -23
  2. package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
  3. package/lib/eth/builtin/internal/erc1155-processor.js +19 -8
  4. package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
  5. package/lib/eth/builtin/internal/erc20-processor.js +39 -18
  6. package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
  7. package/lib/eth/builtin/internal/erc20bytes-processor.js +21 -9
  8. package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
  9. package/lib/eth/builtin/internal/erc721-processor.js +31 -14
  10. package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
  11. package/lib/eth/builtin/internal/weth9-processor.js +25 -11
  12. package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
  13. package/lib/eth/codegen/file.js +4 -1
  14. package/lib/eth/codegen/file.js.map +1 -1
  15. package/lib/eth/codegen/function-calls.js +2 -1
  16. package/lib/eth/codegen/function-calls.js.map +1 -1
  17. package/lib/eth/eth.d.ts +2 -2
  18. package/lib/eth/eth.js +12 -13
  19. package/lib/eth/eth.js.map +1 -1
  20. package/lib/eth/provider.js +1 -1
  21. package/lib/eth/provider.js.map +1 -1
  22. package/lib/utils/call.d.ts +6 -0
  23. package/lib/utils/call.js +21 -0
  24. package/lib/utils/call.js.map +1 -0
  25. package/lib/utils/index.d.ts +1 -0
  26. package/lib/utils/index.js +1 -0
  27. package/lib/utils/index.js.map +1 -1
  28. package/package.json +3 -3
  29. package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +50 -24
  30. package/src/eth/builtin/internal/erc1155-processor.ts +20 -9
  31. package/src/eth/builtin/internal/erc20-processor.ts +40 -19
  32. package/src/eth/builtin/internal/erc20bytes-processor.ts +22 -10
  33. package/src/eth/builtin/internal/erc721-processor.ts +32 -15
  34. package/src/eth/builtin/internal/weth9-processor.ts +26 -12
  35. package/src/eth/codegen/file.ts +4 -1
  36. package/src/eth/codegen/function-calls.ts +2 -1
  37. package/src/eth/eth.ts +11 -13
  38. package/src/eth/provider.ts +1 -1
  39. package/src/utils/call.ts +20 -0
  40. package/src/utils/index.ts +1 -0
@@ -7,103 +7,114 @@ export class WETH9ContractView extends ContractView {
7
7
  this.callStatic.contract = contract;
8
8
  }
9
9
  async name(overrides) {
10
+ const stack = new Error().stack;
10
11
  try {
11
12
  return await this.contract.getFunction("name()")(overrides || {});
12
13
  }
13
14
  catch (e) {
14
- throw transformEtherError(e, undefined);
15
+ throw transformEtherError(e, undefined, stack);
15
16
  }
16
17
  }
17
18
  async totalSupply(overrides) {
19
+ const stack = new Error().stack;
18
20
  try {
19
21
  return await this.contract.getFunction("totalSupply()")(overrides || {});
20
22
  }
21
23
  catch (e) {
22
- throw transformEtherError(e, undefined);
24
+ throw transformEtherError(e, undefined, stack);
23
25
  }
24
26
  }
25
27
  async decimals(overrides) {
28
+ const stack = new Error().stack;
26
29
  try {
27
30
  return await this.contract.getFunction("decimals()")(overrides || {});
28
31
  }
29
32
  catch (e) {
30
- throw transformEtherError(e, undefined);
33
+ throw transformEtherError(e, undefined, stack);
31
34
  }
32
35
  }
33
36
  async balanceOf(arg0, overrides) {
37
+ const stack = new Error().stack;
34
38
  try {
35
39
  return await this.contract.getFunction("balanceOf(address)")(arg0, overrides || {});
36
40
  }
37
41
  catch (e) {
38
- throw transformEtherError(e, undefined);
42
+ throw transformEtherError(e, undefined, stack);
39
43
  }
40
44
  }
41
45
  async symbol(overrides) {
46
+ const stack = new Error().stack;
42
47
  try {
43
48
  return await this.contract.getFunction("symbol()")(overrides || {});
44
49
  }
45
50
  catch (e) {
46
- throw transformEtherError(e, undefined);
51
+ throw transformEtherError(e, undefined, stack);
47
52
  }
48
53
  }
49
54
  async allowance(arg0, arg1, overrides) {
55
+ const stack = new Error().stack;
50
56
  try {
51
57
  return await this.contract.getFunction("allowance(address,address)")(arg0, arg1, overrides || {});
52
58
  }
53
59
  catch (e) {
54
- throw transformEtherError(e, undefined);
60
+ throw transformEtherError(e, undefined, stack);
55
61
  }
56
62
  }
57
63
  callStatic = {
58
64
  contract: this.contract,
59
65
  async approve(guy, wad, overrides) {
66
+ const stack = new Error().stack;
60
67
  try {
61
68
  return await this.contract
62
69
  .getFunction("approve(address,uint256)")
63
70
  .staticCall(guy, wad, overrides || {});
64
71
  }
65
72
  catch (e) {
66
- throw transformEtherError(e, undefined);
73
+ throw transformEtherError(e, undefined, stack);
67
74
  }
68
75
  },
69
76
  async transferFrom(src, dst, wad, overrides) {
77
+ const stack = new Error().stack;
70
78
  try {
71
79
  return await this.contract
72
80
  .getFunction("transferFrom(address,address,uint256)")
73
81
  .staticCall(src, dst, wad, overrides || {});
74
82
  }
75
83
  catch (e) {
76
- throw transformEtherError(e, undefined);
84
+ throw transformEtherError(e, undefined, stack);
77
85
  }
78
86
  },
79
87
  async withdraw(wad, overrides) {
88
+ const stack = new Error().stack;
80
89
  try {
81
90
  return await this.contract
82
91
  .getFunction("withdraw(uint256)")
83
92
  .staticCall(wad, overrides || {});
84
93
  }
85
94
  catch (e) {
86
- throw transformEtherError(e, undefined);
95
+ throw transformEtherError(e, undefined, stack);
87
96
  }
88
97
  },
89
98
  async transfer(dst, wad, overrides) {
99
+ const stack = new Error().stack;
90
100
  try {
91
101
  return await this.contract
92
102
  .getFunction("transfer(address,uint256)")
93
103
  .staticCall(dst, wad, overrides || {});
94
104
  }
95
105
  catch (e) {
96
- throw transformEtherError(e, undefined);
106
+ throw transformEtherError(e, undefined, stack);
97
107
  }
98
108
  },
99
109
  async deposit(overrides) {
110
+ const stack = new Error().stack;
100
111
  try {
101
112
  return await this.contract
102
113
  .getFunction("deposit()")
103
114
  .staticCall(overrides || {});
104
115
  }
105
116
  catch (e) {
106
- throw transformEtherError(e, undefined);
117
+ throw transformEtherError(e, undefined, stack);
107
118
  }
108
119
  },
109
120
  };
@@ -319,6 +330,9 @@ export function getWETH9ContractOnContext(context, address) {
319
330
  const view = getWETH9Contract(context.getChainId(), address);
320
331
  const boundView = new WETH9BoundContractView(address, view);
321
332
  boundView.context = context;
333
+ if (boundView.callStatic) {
334
+ boundView.callStatic.context = context;
335
+ }
322
336
  return boundView;
323
337
  }
324
338
  //# sourceMappingURL=weth9-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"weth9-processor.js","sourceRoot":"","sources":["../../../../src/eth/builtin/internal/weth9-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { BigNumberish, Overrides } from \"ethers\";\nimport {\n addContractByABI,\n getContractByABI,\n addProcessor,\n getProcessor,\n getProvider,\n transformEtherError,\n BindOptions,\n BaseProcessor,\n BaseProcessorTemplate,\n BoundContractView,\n ContractContext,\n ContractView,\n DummyProvider,\n EthChainId,\n TypedCallTrace,\n EthContext,\n EthFetchConfig,\n} from \"@sentio/sdk/eth\";\n\nimport { WETH9__factory } from \"./index.js\";\nimport {\n WETH9,\n ApprovalEvent,\n ApprovalEventFilter,\n TransferEvent,\n TransferEventFilter,\n DepositEvent,\n DepositEventFilter,\n WithdrawalEvent,\n WithdrawalEventFilter,\n} from \"./WETH9.js\";\n\nexport interface NameCallObject {}\n\nexport type NameCallTrace = TypedCallTrace<[], NameCallObject>;\n\nexport interface ApproveCallObject {\n guy: string;\n wad: bigint;\n}\n\nexport type ApproveCallTrace = TypedCallTrace<\n [string, bigint],\n ApproveCallObject\n>;\n\nexport interface TotalSupplyCallObject {}\n\nexport type TotalSupplyCallTrace = TypedCallTrace<[], TotalSupplyCallObject>;\n\nexport interface TransferFromCallObject {\n src: string;\n dst: string;\n wad: bigint;\n}\n\nexport type TransferFromCallTrace = TypedCallTrace<\n [string, string, bigint],\n TransferFromCallObject\n>;\n\nexport interface WithdrawCallObject {\n wad: bigint;\n}\n\nexport type WithdrawCallTrace = TypedCallTrace<[bigint], WithdrawCallObject>;\n\nexport interface DecimalsCallObject {}\n\nexport type DecimalsCallTrace = TypedCallTrace<[], DecimalsCallObject>;\n\nexport interface BalanceOfCallObject {}\n\nexport type BalanceOfCallTrace = TypedCallTrace<[string], BalanceOfCallObject>;\n\nexport interface SymbolCallObject {}\n\nexport type SymbolCallTrace = TypedCallTrace<[], SymbolCallObject>;\n\nexport interface TransferCallObject {\n dst: string;\n wad: bigint;\n}\n\nexport type TransferCallTrace = TypedCallTrace<\n [string, bigint],\n TransferCallObject\n>;\n\nexport interface DepositCallObject {}\n\nexport type DepositCallTrace = TypedCallTrace<[], DepositCallObject>;\n\nexport interface AllowanceCallObject {}\n\nexport type AllowanceCallTrace = TypedCallTrace<\n [string, string],\n AllowanceCallObject\n>;\n\nconst templateContract = WETH9__factory.connect(\"0x0\", DummyProvider);\n\nexport class WETH9ContractView extends ContractView<WETH9> {\n constructor(contract: WETH9) {\n super(contract);\n this.callStatic.contract = contract;\n }\n\n async name(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"name()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"totalSupply()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"decimals()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"balanceOf(address)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n try {\n return await this.contract.getFunction(\"symbol()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n async allowance(\n arg0: string,\n arg1: string,\n overrides?: Overrides\n ): Promise<bigint> {\n try {\n return await this.contract.getFunction(\"allowance(address,address)\")(\n arg0,\n arg1,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n }\n\n callStatic = {\n contract: this.contract,\n\n async approve(\n guy: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n try {\n return await this.contract\n .getFunction(\"approve(address,uint256)\")\n .staticCall(guy, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n },\n async transferFrom(\n src: string,\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n try {\n return await this.contract\n .getFunction(\"transferFrom(address,address,uint256)\")\n .staticCall(src, dst, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n },\n async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {\n try {\n return await this.contract\n .getFunction(\"withdraw(uint256)\")\n .staticCall(wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n },\n async transfer(\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n try {\n return await this.contract\n .getFunction(\"transfer(address,uint256)\")\n .staticCall(dst, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n },\n async deposit(overrides?: Overrides): Promise<void> {\n try {\n return await this.contract\n .getFunction(\"deposit()\")\n .staticCall(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined);\n }\n },\n };\n}\n\nexport class WETH9BoundContractView extends BoundContractView<\n WETH9,\n WETH9ContractView\n> {\n async name(overrides?: Overrides): Promise<string> {\n return await this.view.name({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n return await this.view.totalSupply({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n return await this.view.decimals({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n return await this.view.balanceOf(arg0, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n return await this.view.symbol({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async allowance(\n arg0: string,\n arg1: string,\n overrides?: Overrides\n ): Promise<bigint> {\n return await this.view.allowance(arg0, arg1, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n callStatic = {\n view: this.view,\n context: this.context,\n\n async approve(\n guy: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.approve(guy, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async transferFrom(\n src: string,\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.transferFrom(src, dst, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {\n return await this.view.callStatic.withdraw(wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async transfer(\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.transfer(dst, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async deposit(overrides?: Overrides): Promise<void> {\n return await this.view.callStatic.deposit({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n };\n}\n\nexport type WETH9Context = ContractContext<WETH9, WETH9BoundContractView>;\n\nexport class WETH9Processor extends BaseProcessor<\n WETH9,\n WETH9BoundContractView\n> {\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onCallName(\n handler: (call: NameCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x06fdde03\", handler as any, fetchConfig);\n }\n\n onCallApprove(\n handler: (call: ApproveCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x095ea7b3\", handler as any, fetchConfig);\n }\n\n onCallTotalSupply(\n handler: (call: TotalSupplyCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x18160ddd\", handler as any, fetchConfig);\n }\n\n onCallTransferFrom(\n handler: (call: TransferFromCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x23b872dd\", handler as any, fetchConfig);\n }\n\n onCallWithdraw(\n handler: (call: WithdrawCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x2e1a7d4d\", handler as any, fetchConfig);\n }\n\n onCallDecimals(\n handler: (call: DecimalsCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x313ce567\", handler as any, fetchConfig);\n }\n\n onCallBalanceOf(\n handler: (call: BalanceOfCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x70a08231\", handler as any, fetchConfig);\n }\n\n onCallSymbol(\n handler: (call: SymbolCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x95d89b41\", handler as any, fetchConfig);\n }\n\n onCallTransfer(\n handler: (call: TransferCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xa9059cbb\", handler as any, fetchConfig);\n }\n\n onCallDeposit(\n handler: (call: DepositCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xd0e30db0\", handler as any, fetchConfig);\n }\n\n onCallAllowance(\n handler: (call: AllowanceCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xdd62ed3e\", handler as any, fetchConfig);\n }\n\n public static filters = {\n Approval(src?: string | null, guy?: string | null, wad?: null) {\n return templateContract.filters[\"Approval(address,address,uint256)\"](\n src,\n guy,\n wad\n );\n },\n Transfer(src?: string | null, dst?: string | null, wad?: null) {\n return templateContract.filters[\"Transfer(address,address,uint256)\"](\n src,\n dst,\n wad\n );\n },\n Deposit(dst?: string | null, wad?: null) {\n return templateContract.filters[\"Deposit(address,uint256)\"](dst, wad);\n },\n Withdrawal(src?: string | null, wad?: null) {\n return templateContract.filters[\"Withdrawal(address,uint256)\"](src, wad);\n },\n };\n\n protected CreateBoundContractView(): WETH9BoundContractView {\n const view = getWETH9Contract(this.config.network, this.config.address);\n return new WETH9BoundContractView(this.config.address, view);\n }\n\n public static bind(options: BindOptions): WETH9Processor {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n}\n\nexport class WETH9ProcessorTemplate extends BaseProcessorTemplate<\n WETH9,\n WETH9BoundContractView\n> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n}\n\nexport function getWETH9Contract(\n chainId: EthChainId,\n address: string\n): WETH9ContractView {\n let contract = getContractByABI(\n \"WETH9\",\n address,\n chainId\n ) as WETH9ContractView;\n if (!contract) {\n const rawContract = WETH9__factory.connect(address, getProvider(chainId));\n contract = new WETH9ContractView(rawContract);\n addContractByABI(\"WETH9\", address, chainId, contract);\n }\n return contract;\n}\n\nexport function getWETH9ContractOnContext(\n context: EthContext,\n address: string\n): WETH9BoundContractView {\n const view = getWETH9Contract(context.getChainId(), address);\n const boundView = new WETH9BoundContractView(address, view);\n boundView.context = context as any;\n return boundView;\n}\n"]}
1
+ {"version":3,"file":"weth9-processor.js","sourceRoot":"","sources":["../../../../src/eth/builtin/internal/weth9-processor.ts"],"names":[],"mappings":"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","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nimport { BigNumberish, Overrides } from \"ethers\";\nimport {\n addContractByABI,\n getContractByABI,\n addProcessor,\n getProcessor,\n getProvider,\n transformEtherError,\n BindOptions,\n BaseProcessor,\n BaseProcessorTemplate,\n BoundContractView,\n ContractContext,\n ContractView,\n DummyProvider,\n EthChainId,\n TypedCallTrace,\n EthContext,\n EthFetchConfig,\n} from \"@sentio/sdk/eth\";\n\nimport { WETH9__factory } from \"./index.js\";\nimport {\n WETH9,\n ApprovalEvent,\n ApprovalEventFilter,\n TransferEvent,\n TransferEventFilter,\n DepositEvent,\n DepositEventFilter,\n WithdrawalEvent,\n WithdrawalEventFilter,\n} from \"./WETH9.js\";\n\nexport interface NameCallObject {}\n\nexport type NameCallTrace = TypedCallTrace<[], NameCallObject>;\n\nexport interface ApproveCallObject {\n guy: string;\n wad: bigint;\n}\n\nexport type ApproveCallTrace = TypedCallTrace<\n [string, bigint],\n ApproveCallObject\n>;\n\nexport interface TotalSupplyCallObject {}\n\nexport type TotalSupplyCallTrace = TypedCallTrace<[], TotalSupplyCallObject>;\n\nexport interface TransferFromCallObject {\n src: string;\n dst: string;\n wad: bigint;\n}\n\nexport type TransferFromCallTrace = TypedCallTrace<\n [string, string, bigint],\n TransferFromCallObject\n>;\n\nexport interface WithdrawCallObject {\n wad: bigint;\n}\n\nexport type WithdrawCallTrace = TypedCallTrace<[bigint], WithdrawCallObject>;\n\nexport interface DecimalsCallObject {}\n\nexport type DecimalsCallTrace = TypedCallTrace<[], DecimalsCallObject>;\n\nexport interface BalanceOfCallObject {}\n\nexport type BalanceOfCallTrace = TypedCallTrace<[string], BalanceOfCallObject>;\n\nexport interface SymbolCallObject {}\n\nexport type SymbolCallTrace = TypedCallTrace<[], SymbolCallObject>;\n\nexport interface TransferCallObject {\n dst: string;\n wad: bigint;\n}\n\nexport type TransferCallTrace = TypedCallTrace<\n [string, bigint],\n TransferCallObject\n>;\n\nexport interface DepositCallObject {}\n\nexport type DepositCallTrace = TypedCallTrace<[], DepositCallObject>;\n\nexport interface AllowanceCallObject {}\n\nexport type AllowanceCallTrace = TypedCallTrace<\n [string, string],\n AllowanceCallObject\n>;\n\nconst templateContract = WETH9__factory.connect(\"0x0\", DummyProvider);\n\nexport class WETH9ContractView extends ContractView<WETH9> {\n constructor(contract: WETH9) {\n super(contract);\n this.callStatic.contract = contract;\n }\n\n async name(overrides?: Overrides): Promise<string> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"name()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"totalSupply()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"decimals()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"balanceOf(address)\")(\n arg0,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"symbol()\")(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n async allowance(\n arg0: string,\n arg1: string,\n overrides?: Overrides\n ): Promise<bigint> {\n const stack = new Error().stack;\n try {\n return await this.contract.getFunction(\"allowance(address,address)\")(\n arg0,\n arg1,\n overrides || {}\n );\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n }\n\n callStatic = {\n contract: this.contract,\n\n async approve(\n guy: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n const stack = new Error().stack;\n try {\n return await this.contract\n .getFunction(\"approve(address,uint256)\")\n .staticCall(guy, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n },\n async transferFrom(\n src: string,\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n const stack = new Error().stack;\n try {\n return await this.contract\n .getFunction(\"transferFrom(address,address,uint256)\")\n .staticCall(src, dst, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n },\n async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {\n const stack = new Error().stack;\n try {\n return await this.contract\n .getFunction(\"withdraw(uint256)\")\n .staticCall(wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n },\n async transfer(\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n const stack = new Error().stack;\n try {\n return await this.contract\n .getFunction(\"transfer(address,uint256)\")\n .staticCall(dst, wad, overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n },\n async deposit(overrides?: Overrides): Promise<void> {\n const stack = new Error().stack;\n try {\n return await this.contract\n .getFunction(\"deposit()\")\n .staticCall(overrides || {});\n } catch (e) {\n throw transformEtherError(e, undefined, stack);\n }\n },\n };\n}\n\nexport class WETH9BoundContractView extends BoundContractView<\n WETH9,\n WETH9ContractView\n> {\n async name(overrides?: Overrides): Promise<string> {\n return await this.view.name({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async totalSupply(overrides?: Overrides): Promise<bigint> {\n return await this.view.totalSupply({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async decimals(overrides?: Overrides): Promise<bigint> {\n return await this.view.decimals({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async balanceOf(arg0: string, overrides?: Overrides): Promise<bigint> {\n return await this.view.balanceOf(arg0, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async symbol(overrides?: Overrides): Promise<string> {\n return await this.view.symbol({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n async allowance(\n arg0: string,\n arg1: string,\n overrides?: Overrides\n ): Promise<bigint> {\n return await this.view.allowance(arg0, arg1, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n }\n\n callStatic = {\n view: this.view,\n context: this.context,\n\n async approve(\n guy: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.approve(guy, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async transferFrom(\n src: string,\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.transferFrom(src, dst, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {\n return await this.view.callStatic.withdraw(wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async transfer(\n dst: string,\n wad: BigNumberish,\n overrides?: Overrides\n ): Promise<boolean> {\n return await this.view.callStatic.transfer(dst, wad, {\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n async deposit(overrides?: Overrides): Promise<void> {\n return await this.view.callStatic.deposit({\n blockTag: this.context.blockNumber,\n ...overrides,\n });\n },\n };\n}\n\nexport type WETH9Context = ContractContext<WETH9, WETH9BoundContractView>;\n\nexport class WETH9Processor extends BaseProcessor<\n WETH9,\n WETH9BoundContractView\n> {\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onCallName(\n handler: (call: NameCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x06fdde03\", handler as any, fetchConfig);\n }\n\n onCallApprove(\n handler: (call: ApproveCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x095ea7b3\", handler as any, fetchConfig);\n }\n\n onCallTotalSupply(\n handler: (call: TotalSupplyCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x18160ddd\", handler as any, fetchConfig);\n }\n\n onCallTransferFrom(\n handler: (call: TransferFromCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x23b872dd\", handler as any, fetchConfig);\n }\n\n onCallWithdraw(\n handler: (call: WithdrawCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x2e1a7d4d\", handler as any, fetchConfig);\n }\n\n onCallDecimals(\n handler: (call: DecimalsCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x313ce567\", handler as any, fetchConfig);\n }\n\n onCallBalanceOf(\n handler: (call: BalanceOfCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x70a08231\", handler as any, fetchConfig);\n }\n\n onCallSymbol(\n handler: (call: SymbolCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0x95d89b41\", handler as any, fetchConfig);\n }\n\n onCallTransfer(\n handler: (call: TransferCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xa9059cbb\", handler as any, fetchConfig);\n }\n\n onCallDeposit(\n handler: (call: DepositCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xd0e30db0\", handler as any, fetchConfig);\n }\n\n onCallAllowance(\n handler: (call: AllowanceCallTrace, ctx: WETH9Context) => void,\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n return super.onEthTrace(\"0xdd62ed3e\", handler as any, fetchConfig);\n }\n\n public static filters = {\n Approval(src?: string | null, guy?: string | null, wad?: null) {\n return templateContract.filters[\"Approval(address,address,uint256)\"](\n src,\n guy,\n wad\n );\n },\n Transfer(src?: string | null, dst?: string | null, wad?: null) {\n return templateContract.filters[\"Transfer(address,address,uint256)\"](\n src,\n dst,\n wad\n );\n },\n Deposit(dst?: string | null, wad?: null) {\n return templateContract.filters[\"Deposit(address,uint256)\"](dst, wad);\n },\n Withdrawal(src?: string | null, wad?: null) {\n return templateContract.filters[\"Withdrawal(address,uint256)\"](src, wad);\n },\n };\n\n protected CreateBoundContractView(): WETH9BoundContractView {\n const view = getWETH9Contract(this.config.network, this.config.address);\n return new WETH9BoundContractView(this.config.address, view);\n }\n\n public static bind(options: BindOptions): WETH9Processor {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n}\n\nexport class WETH9ProcessorTemplate extends BaseProcessorTemplate<\n WETH9,\n WETH9BoundContractView\n> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"WETH9\";\n }\n let processor = getProcessor(options) as WETH9Processor;\n if (!processor) {\n processor = new WETH9Processor(options);\n addProcessor(options, processor);\n }\n return processor;\n }\n\n onEventApproval(\n handler: (event: ApprovalEvent, ctx: WETH9Context) => void,\n filter?: ApprovalEventFilter | ApprovalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Approval(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventTransfer(\n handler: (event: TransferEvent, ctx: WETH9Context) => void,\n filter?: TransferEventFilter | TransferEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Transfer(address,address,uint256)\"](\n null,\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventDeposit(\n handler: (event: DepositEvent, ctx: WETH9Context) => void,\n filter?: DepositEventFilter | DepositEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Deposit(address,uint256)\"](null, null);\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n\n onEventWithdrawal(\n handler: (event: WithdrawalEvent, ctx: WETH9Context) => void,\n filter?: WithdrawalEventFilter | WithdrawalEventFilter[],\n fetchConfig?: Partial<EthFetchConfig>\n ): this {\n if (!filter) {\n filter = templateContract.filters[\"Withdrawal(address,uint256)\"](\n null,\n null\n );\n }\n return super.onEthEvent(handler, filter!, fetchConfig);\n }\n}\n\nexport function getWETH9Contract(\n chainId: EthChainId,\n address: string\n): WETH9ContractView {\n let contract = getContractByABI(\n \"WETH9\",\n address,\n chainId\n ) as WETH9ContractView;\n if (!contract) {\n const rawContract = WETH9__factory.connect(address, getProvider(chainId));\n contract = new WETH9ContractView(rawContract);\n addContractByABI(\"WETH9\", address, chainId, contract);\n }\n return contract;\n}\n\nexport function getWETH9ContractOnContext(\n context: EthContext,\n address: string\n): WETH9BoundContractView {\n const view = getWETH9Contract(context.getChainId(), address);\n const boundView = new WETH9BoundContractView(address, view);\n boundView.context = context;\n if (boundView.callStatic) {\n boundView.callStatic.context = context;\n }\n return boundView;\n}\n"]}
@@ -127,7 +127,10 @@ export class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${c
127
127
  ${contract.name}BoundContractView {
128
128
  const view = get${contract.name}Contract(context.getChainId(), address)
129
129
  const boundView = new ${contract.name}BoundContractView(address, view)
130
- boundView.context = context as any;
130
+ boundView.context = context;
131
+ if (boundView.callStatic) {
132
+ boundView.callStatic.context = context;
133
+ }
131
134
  return boundView;
132
135
  }
133
136
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/eth/codegen/file.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Contract,\n createImportsForUsedIdentifiers,\n EventDeclaration,\n getFullSignatureAsSymbolForEvent,\n getFullSignatureForEvent,\n} from 'typechain'\n\nimport { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js'\nimport { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js'\nimport { generateEventFilters, generateEventHandlers } from './event-handler.js'\nimport { generateBoundViewFunctions, generateViewFunctions } from './function-calls.js'\n\nexport function codeGenIndex(contract: Contract): string {\n return ` \n export * from './internal/${contract.name.toLowerCase()}-processor.js'\n export * from './internal/${contract.name.toLowerCase()}-test-utils.js'\n export * from './internal/${contract.name}.js'\n export * from './internal/factories/${contract.name}__factory.js'\n `\n}\n\nexport function codeGenSentioFile(contract: Contract): string {\n const source = `\n ${Object.values(contract.functions).map(codegenCallTraceTypes).join('\\n')}\n\n const templateContract = ${contract.name}__factory.connect(\"0x0\", DummyProvider)\n\n export class ${contract.name}ContractView extends ContractView<${contract.name}> {\n constructor (contract: ${contract.name}) {\n super(contract);\n this.callStatic.contract = contract;\n }\n\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateViewFunctions(true, fs))\n .join('\\n')}\n \n callStatic = {\n contract: this.contract,\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateViewFunctions(false, fs))\n .join(',\\n')}\n }\n }\n \n export class ${contract.name}BoundContractView extends BoundContractView<${contract.name}, \n ${contract.name}ContractView> {\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateBoundViewFunctions(true, fs))\n .join('\\n')}\n \n callStatic = {\n view: this.view,\n context: this.context,\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateBoundViewFunctions(false, fs))\n .join(',\\n')}\n }\n }\n\n export type ${contract.name}Context = ContractContext<${contract.name}, ${contract.name}BoundContractView>\n\n export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n\n ${Object.values(contract.functions)\n .map((f) => generateCallHandlers(f, contract.name))\n .join('\\n')}\n\n public static filters = {\n ${Object.values(contract.events)\n .map((events) => generateEventFilters(events))\n .join(',')}\n }\n \n protected CreateBoundContractView(): ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(this.config.network, this.config.address)\n return new ${contract.name}BoundContractView(this.config.address, view)\n }\n\n public static bind(options: BindOptions): ${contract.name}Processor {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n}\n\nexport class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${contract.name}, ${\n contract.name\n }BoundContractView> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n \n ${Object.values(contract.functions)\n .map((functions) => {\n generateCallHandlers(functions, contract.name)\n })\n .join('\\n')}\n }\n\n export function get${contract.name}Contract(chainId: EthChainId, address: string): ${contract.name}ContractView {\n let contract = getContractByABI(\"${contract.name}\", address, chainId) as ${contract.name}ContractView\n if (!contract) {\n const rawContract = ${contract.name}__factory.connect(address, getProvider(chainId))\n contract = new ${contract.name}ContractView(rawContract)\n addContractByABI(\"${contract.name}\", address, chainId, contract)\n }\n return contract\n }\n \n export function get${contract.name}ContractOnContext(context: EthContext, address: string): \n ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(context.getChainId(), address)\n const boundView = new ${contract.name}BoundContractView(address, view) \n boundView.context = context as any;\n return boundView;\n }\n `\n const eventsImports = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return [`${events[0].name}Event`, `${events[0].name}EventFilter`]\n } else {\n return events.flatMap((e) => [\n `${getFullSignatureAsSymbolForEvent(e)}_Event`,\n `${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,\n ])\n }\n })\n\n const structImports = Object.values(contract.structs).flatMap((structs) => {\n return structs.flatMap((s) => {\n if (!s.structName) {\n return []\n }\n if (s.structName.namespace) {\n return [s.structName.namespace]\n } else {\n return [s.structName.identifier + 'StructOutput', s.structName.identifier + 'Struct']\n }\n })\n })\n // dedup namespace\n const uniqueStructImports = [...new Set(structImports)]\n\n const imports = createImportsForUsedIdentifiers(\n {\n ethers: ['BigNumberish', 'Overrides', 'BytesLike'],\n // 'ethers/providers': ['Networkish'],\n '@sentio/sdk/eth': [\n 'addContractByABI',\n 'getContractByABI',\n 'addProcessor',\n 'getProcessor',\n 'getProvider',\n 'transformEtherError',\n 'Trace',\n 'BindOptions',\n 'BaseProcessor',\n 'BaseProcessorTemplate',\n 'BoundContractView',\n 'ContractContext',\n 'ContractView',\n 'DummyProvider',\n 'EthChainId',\n 'TypedCallTrace',\n 'EthContext',\n 'EthFetchConfig',\n ],\n // '@sentio/sdk/eth': ['BaseContext'],\n // '@sentio/protos': ['EthFetchConfig'],\n './common.js': ['PromiseOrValue'],\n './index.js': [`${contract.name}__factory`],\n [`./${contract.name}.js`]: [`${contract.name}`, ...eventsImports, ...uniqueStructImports],\n },\n source\n )\n\n return imports + source\n}\n\nexport function codeGenTestUtilsFile(contract: Contract): string {\n const source = `\n const mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n }\n ${Object.values(contract.events)\n .map((events) => {\n if (events.length === 1) {\n return generateMockEventLogFunction(events[0], contract.name, false)\n } else {\n return events.map((e) => generateMockEventLogFunction(e, contract.name, true)).join('\\n')\n }\n })\n .join('\\n')}\n `\n\n const possibleImports = {\n 'ethers/providers': ['LogParams'],\n '@sentio/sdk/eth': ['EthChainId'],\n } as any\n possibleImports[`./${contract.name}.js`] = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return `${events[0].name}EventObject`\n } else {\n return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`)\n }\n })\n\n possibleImports[`./${contract.name.toLowerCase()}-processor.js`] = [`get${contract.name}Contract`]\n\n const imports = createImportsForUsedIdentifiers(possibleImports, source)\n\n return imports + source\n}\n\nfunction generateMockEventLogFunction(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n let eventName = event.name\n if (includeArgTypes) {\n eventName = getFullSignatureAsSymbolForEvent(event) + '_'\n }\n\n const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`)\n\n return `\n export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {\n const contract = get${contractName}Contract(EthChainId.ETHEREUM, contractAddress)\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n '${getFullSignatureForEvent(event)}',\n [${eventArgs.join(', ')}]\n )\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n }\n }\n `\n}\n"]}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/eth/codegen/file.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Contract,\n createImportsForUsedIdentifiers,\n EventDeclaration,\n getFullSignatureAsSymbolForEvent,\n getFullSignatureForEvent,\n} from 'typechain'\n\nimport { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js'\nimport { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js'\nimport { generateEventFilters, generateEventHandlers } from './event-handler.js'\nimport { generateBoundViewFunctions, generateViewFunctions } from './function-calls.js'\n\nexport function codeGenIndex(contract: Contract): string {\n return ` \n export * from './internal/${contract.name.toLowerCase()}-processor.js'\n export * from './internal/${contract.name.toLowerCase()}-test-utils.js'\n export * from './internal/${contract.name}.js'\n export * from './internal/factories/${contract.name}__factory.js'\n `\n}\n\nexport function codeGenSentioFile(contract: Contract): string {\n const source = `\n ${Object.values(contract.functions).map(codegenCallTraceTypes).join('\\n')}\n\n const templateContract = ${contract.name}__factory.connect(\"0x0\", DummyProvider)\n\n export class ${contract.name}ContractView extends ContractView<${contract.name}> {\n constructor (contract: ${contract.name}) {\n super(contract);\n this.callStatic.contract = contract;\n }\n\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateViewFunctions(true, fs))\n .join('\\n')}\n \n callStatic = {\n contract: this.contract,\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateViewFunctions(false, fs))\n .join(',\\n')}\n }\n }\n \n export class ${contract.name}BoundContractView extends BoundContractView<${contract.name}, \n ${contract.name}ContractView> {\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateBoundViewFunctions(true, fs))\n .join('\\n')}\n \n callStatic = {\n view: this.view,\n context: this.context,\n ${Object.values(contract.functions)\n .filter((f) => !reservedKeywords.has(f[0].name))\n .flatMap((fs) => generateBoundViewFunctions(false, fs))\n .join(',\\n')}\n }\n }\n\n export type ${contract.name}Context = ContractContext<${contract.name}, ${contract.name}BoundContractView>\n\n export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n\n ${Object.values(contract.functions)\n .map((f) => generateCallHandlers(f, contract.name))\n .join('\\n')}\n\n public static filters = {\n ${Object.values(contract.events)\n .map((events) => generateEventFilters(events))\n .join(',')}\n }\n \n protected CreateBoundContractView(): ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(this.config.network, this.config.address)\n return new ${contract.name}BoundContractView(this.config.address, view)\n }\n\n public static bind(options: BindOptions): ${contract.name}Processor {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n}\n\nexport class ${contract.name}ProcessorTemplate extends BaseProcessorTemplate<${contract.name}, ${\n contract.name\n }BoundContractView> {\n bindInternal(options: BindOptions) {\n if (!options.name) {\n options.name = \"${contract.name}\"\n }\n let processor = getProcessor(options) as ${contract.name}Processor\n if (!processor) {\n processor = new ${contract.name}Processor(options)\n addProcessor(options, processor)\n }\n return processor\n }\n\n ${Object.values(contract.events)\n .map((events) => generateEventHandlers(events, contract.name))\n .join('\\n')}\n \n ${Object.values(contract.functions)\n .map((functions) => {\n generateCallHandlers(functions, contract.name)\n })\n .join('\\n')}\n }\n\n export function get${contract.name}Contract(chainId: EthChainId, address: string): ${contract.name}ContractView {\n let contract = getContractByABI(\"${contract.name}\", address, chainId) as ${contract.name}ContractView\n if (!contract) {\n const rawContract = ${contract.name}__factory.connect(address, getProvider(chainId))\n contract = new ${contract.name}ContractView(rawContract)\n addContractByABI(\"${contract.name}\", address, chainId, contract)\n }\n return contract\n }\n \n export function get${contract.name}ContractOnContext(context: EthContext, address: string): \n ${contract.name}BoundContractView {\n const view = get${contract.name}Contract(context.getChainId(), address)\n const boundView = new ${contract.name}BoundContractView(address, view) \n boundView.context = context;\n if (boundView.callStatic) {\n boundView.callStatic.context = context;\n }\n return boundView;\n }\n `\n const eventsImports = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return [`${events[0].name}Event`, `${events[0].name}EventFilter`]\n } else {\n return events.flatMap((e) => [\n `${getFullSignatureAsSymbolForEvent(e)}_Event`,\n `${getFullSignatureAsSymbolForEvent(e)}_EventFilter`,\n ])\n }\n })\n\n const structImports = Object.values(contract.structs).flatMap((structs) => {\n return structs.flatMap((s) => {\n if (!s.structName) {\n return []\n }\n if (s.structName.namespace) {\n return [s.structName.namespace]\n } else {\n return [s.structName.identifier + 'StructOutput', s.structName.identifier + 'Struct']\n }\n })\n })\n // dedup namespace\n const uniqueStructImports = [...new Set(structImports)]\n\n const imports = createImportsForUsedIdentifiers(\n {\n ethers: ['BigNumberish', 'Overrides', 'BytesLike'],\n // 'ethers/providers': ['Networkish'],\n '@sentio/sdk/eth': [\n 'addContractByABI',\n 'getContractByABI',\n 'addProcessor',\n 'getProcessor',\n 'getProvider',\n 'transformEtherError',\n 'Trace',\n 'BindOptions',\n 'BaseProcessor',\n 'BaseProcessorTemplate',\n 'BoundContractView',\n 'ContractContext',\n 'ContractView',\n 'DummyProvider',\n 'EthChainId',\n 'TypedCallTrace',\n 'EthContext',\n 'EthFetchConfig',\n ],\n // '@sentio/sdk/eth': ['BaseContext'],\n // '@sentio/protos': ['EthFetchConfig'],\n './common.js': ['PromiseOrValue'],\n './index.js': [`${contract.name}__factory`],\n [`./${contract.name}.js`]: [`${contract.name}`, ...eventsImports, ...uniqueStructImports],\n },\n source\n )\n\n return imports + source\n}\n\nexport function codeGenTestUtilsFile(contract: Contract): string {\n const source = `\n const mockField = {\n blockHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n blockNumber: 0,\n logIndex: 0,\n removed: false,\n transactionHash:\n \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n transactionIndex: 0,\n }\n ${Object.values(contract.events)\n .map((events) => {\n if (events.length === 1) {\n return generateMockEventLogFunction(events[0], contract.name, false)\n } else {\n return events.map((e) => generateMockEventLogFunction(e, contract.name, true)).join('\\n')\n }\n })\n .join('\\n')}\n `\n\n const possibleImports = {\n 'ethers/providers': ['LogParams'],\n '@sentio/sdk/eth': ['EthChainId'],\n } as any\n possibleImports[`./${contract.name}.js`] = Object.values(contract.events).flatMap((events) => {\n if (events.length === 1) {\n return `${events[0].name}EventObject`\n } else {\n return events.flatMap((e) => `${getFullSignatureAsSymbolForEvent(e)}_EventObject`)\n }\n })\n\n possibleImports[`./${contract.name.toLowerCase()}-processor.js`] = [`get${contract.name}Contract`]\n\n const imports = createImportsForUsedIdentifiers(possibleImports, source)\n\n return imports + source\n}\n\nfunction generateMockEventLogFunction(event: EventDeclaration, contractName: string, includeArgTypes: boolean): string {\n let eventName = event.name\n if (includeArgTypes) {\n eventName = getFullSignatureAsSymbolForEvent(event) + '_'\n }\n\n const eventArgs = event.inputs.map((input, i) => `event.${input.name ?? `arg${i.toString()}`}`)\n\n return `\n export function mock${eventName}Log(contractAddress: string, event: ${eventName}EventObject): LogParams {\n const contract = get${contractName}Contract(EthChainId.ETHEREUM, contractAddress)\n const encodedLog = contract.rawContract.interface.encodeEventLog(\n '${getFullSignatureForEvent(event)}',\n [${eventArgs.join(', ')}]\n )\n return {\n ...mockField,\n index: 0,\n address: contractAddress,\n data: encodedLog.data,\n topics: encodedLog.topics,\n }\n }\n `\n}\n"]}
@@ -28,10 +28,11 @@ export function generateViewFunction(view, fn, includeArgTypes) {
28
28
  async ${declName}(${generateInputTypes(fn.inputs, {
29
29
  useStructs: true,
30
30
  })}overrides?: Overrides): ${generateReturnTypes(fn)} {
31
+ const stack = new Error().stack
31
32
  try {
32
33
  return await ${func}${call}(${fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''} overrides || {})
33
34
  } catch (e) {
34
- throw transformEtherError(e, undefined)
35
+ throw transformEtherError(e, undefined, stack)
35
36
  }
36
37
  }
37
38
  `,
@@ -1 +1 @@
1
- {"version":3,"file":"function-calls.js","sourceRoot":"","sources":["../../../src/eth/codegen/function-calls.ts"],"names":[],"mappings":"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","sourcesContent":["// https://github.com/dethcrypto/TypeChain/blob/015abb28bd22826611051f27e0ec96a00f9a0b61/packages/target-ethers-v5/src/codegen/functions.ts#L54\nimport { FunctionDeclaration } from 'typechain'\nimport { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types.js'\nimport { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.js'\n\nfunction generateReturnTypes(fn: FunctionDeclaration) {\n // sounds like returnResultObject should be true but we need to set false to make it work\n return `Promise<${generateOutputTypes({ returnResultObject: false, useStructs: true }, fn.outputs)}>`\n}\n\nexport function generateViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {\n const includeArgTypes = functions.length !== 1\n return functions.flatMap((fn) => generateViewFunction(view, fn, includeArgTypes))\n}\n\nexport function generateViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {\n const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'\n if (view !== isView) {\n return []\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n\n const call = view ? '' : '.staticCall'\n\n const func = `this.contract.getFunction(\"` + getFullSignatureForFunction(fn) + '\")'\n // if (overrides) {\n // return await ${call}(${\n // fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n // } overrides)\n // } else {\n // return await ${call}(${fn.inputs.map((input, index) => input.name || `arg${index}`).join(',')})\n // }\n return [\n `\n async ${declName}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n try { \n return await ${func}${call}(${\n fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n } overrides || {})\n } catch (e) {\n throw transformEtherError(e, undefined)\n }\n }\n `,\n ]\n}\n\nexport function generateBoundViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {\n const includeArgTypes = functions.length !== 1\n return functions.flatMap((fn) => generateBoundViewFunction(view, fn, includeArgTypes))\n}\n\nexport function generateBoundViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {\n const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'\n if (view !== isView) {\n return []\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n\n const qualifier = view ? 'view' : 'view.callStatic'\n\n return [\n `\n async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n return await this.${qualifier}.${declName}(${\n fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n } {\n blockTag: this.context.blockNumber,\n ...overrides\n })\n }\n `,\n ]\n}\n"]}
1
+ {"version":3,"file":"function-calls.js","sourceRoot":"","sources":["../../../src/eth/codegen/function-calls.ts"],"names":[],"mappings":"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","sourcesContent":["// https://github.com/dethcrypto/TypeChain/blob/015abb28bd22826611051f27e0ec96a00f9a0b61/packages/target-ethers-v5/src/codegen/functions.ts#L54\nimport { FunctionDeclaration } from 'typechain'\nimport { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types.js'\nimport { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.js'\n\nfunction generateReturnTypes(fn: FunctionDeclaration) {\n // sounds like returnResultObject should be true but we need to set false to make it work\n return `Promise<${generateOutputTypes({ returnResultObject: false, useStructs: true }, fn.outputs)}>`\n}\n\nexport function generateViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {\n const includeArgTypes = functions.length !== 1\n return functions.flatMap((fn) => generateViewFunction(view, fn, includeArgTypes))\n}\n\nexport function generateViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {\n const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'\n if (view !== isView) {\n return []\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n\n const call = view ? '' : '.staticCall'\n\n const func = `this.contract.getFunction(\"` + getFullSignatureForFunction(fn) + '\")'\n // if (overrides) {\n // return await ${call}(${\n // fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n // } overrides)\n // } else {\n // return await ${call}(${fn.inputs.map((input, index) => input.name || `arg${index}`).join(',')})\n // }\n return [\n `\n async ${declName}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n const stack = new Error().stack\n try { \n return await ${func}${call}(${\n fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n } overrides || {})\n } catch (e) {\n throw transformEtherError(e, undefined, stack)\n }\n }\n `,\n ]\n}\n\nexport function generateBoundViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {\n const includeArgTypes = functions.length !== 1\n return functions.flatMap((fn) => generateBoundViewFunction(view, fn, includeArgTypes))\n}\n\nexport function generateBoundViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {\n const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'\n if (view !== isView) {\n return []\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n\n const qualifier = view ? 'view' : 'view.callStatic'\n\n return [\n `\n async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n return await this.${qualifier}.${declName}(${\n fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''\n } {\n blockTag: this.context.blockNumber,\n ...overrides\n })\n }\n `,\n ]\n}\n"]}
package/lib/eth/eth.d.ts CHANGED
@@ -22,10 +22,10 @@ export interface RichBlock extends BlockParams {
22
22
  }
23
23
  export declare class SimpleEthersError extends Error {
24
24
  e: Error;
25
- constructor(message: string, e: Error);
25
+ constructor(message: string, e: Error, stack?: string);
26
26
  toString(): string;
27
27
  }
28
- export declare function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined): Error;
28
+ export declare function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined, stack?: string): Error;
29
29
  export declare function fixEmptyKey(result: LogDescription): Result;
30
30
  export declare function formatEthData(data: {
31
31
  log?: any;
package/lib/eth/eth.js CHANGED
@@ -4,38 +4,37 @@ import { getAddress } from 'ethers/address';
4
4
  import { getBigInt, getNumber, hexlify } from 'ethers/utils';
5
5
  export class SimpleEthersError extends Error {
6
6
  e;
7
- constructor(message, e) {
7
+ constructor(message, e, stack) {
8
8
  super(message);
9
- this.stack = e.stack;
9
+ this.stack = stack;
10
10
  }
11
11
  toString() {
12
12
  return this.message + '\n' + this.stack?.toString();
13
13
  }
14
14
  }
15
- export function transformEtherError(e, ctx) {
15
+ export function transformEtherError(e, ctx, stack) {
16
16
  if (e instanceof SimpleEthersError) {
17
17
  return e;
18
18
  }
19
19
  const checkPage = 'Check here for possible cause and fix: https://docs.sentio.xyz/best-practices/handling-errors#ethers-error';
20
20
  let msg = '';
21
21
  const err = e;
22
- if (err.code === 'CALL_EXCEPTION') {
22
+ if (err.code === 'CALL_EXCEPTION' || err.code === 'BAD_DATA') {
23
+ const stack = new Error().stack;
23
24
  if (err.data === '0x') {
24
25
  if (ctx) {
25
- msg =
26
- "jsonrpc eth_call return '0x' (likely contract not existed) at chain " +
27
- ctx.chainId +
28
- ': ' +
29
- JSON.stringify(e);
26
+ msg = `jsonrpc eth_call return '0x' (likely contract not existed) at chain ${ctx.chainId}, ${checkPage}:\n${e.message}`;
30
27
  }
31
28
  else {
32
- msg = "jsonrpc eth_call return '0x' (likely contract not existed): " + JSON.stringify(err);
29
+ msg = `jsonrpc eth_call return '0x' (likely contract not existed), ${checkPage}:\n${e.message}`;
33
30
  }
34
- msg += '\n' + checkPage;
35
- return new SimpleEthersError(msg, err);
31
+ return new SimpleEthersError(msg, err, stack);
32
+ }
33
+ else {
34
+ return new SimpleEthersError(`eth call error, ${checkPage}:\nerr.message`, err, stack);
36
35
  }
37
36
  }
38
- msg = 'ethers call error\n' + JSON.stringify(e) + '\n' + e.stack?.toString() + '\n' + checkPage;
37
+ msg = 'other error during call error\n' + JSON.stringify(e) + '\n' + stack?.toString() + '\n' + checkPage;
39
38
  return new Error(msg);
40
39
  }
41
40
  export function fixEmptyKey(result) {
@@ -1 +1 @@
1
- {"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/eth/eth.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LogParams,\n formatBlock,\n formatLog,\n TransactionReceiptParams,\n formatTransactionResponse,\n allowNull,\n arrayOf,\n formatHash,\n formatReceiptLog,\n object,\n formatData,\n} from 'ethers/providers'\nimport { CallExceptionError, LogDescription, Result, DeferredTopicFilter, BlockParams } from 'ethers'\nimport { ContractContext } from './context.js'\nimport { getAddress } from 'ethers/address'\nimport { getBigInt, getNumber, hexlify } from 'ethers/utils'\n\nexport interface IResult {\n /**\n * Returns the Result as a normal Array.\n */\n toArray(): Array<any>\n /**\n * Returns the Result as an Object with each name-value pair.\n */\n toObject(): Record<string, any>\n}\n\nexport interface TypedEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {\n args: TArgsObject & IResult\n name: string\n}\n\nexport type TypedEventFilter<_TEvent extends TypedEvent> = DeferredTopicFilter\n\nexport interface RichBlock extends BlockParams {\n traces?: Trace[]\n transactionReceipts?: TransactionReceiptParams[]\n}\n\nexport class SimpleEthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error) {\n super(message)\n this.stack = e.stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined): Error {\n if (e instanceof SimpleEthersError) {\n return e\n }\n\n const checkPage =\n 'Check here for possible cause and fix: https://docs.sentio.xyz/best-practices/handling-errors#ethers-error'\n\n let msg = ''\n const err = e as CallExceptionError\n if (err.code === 'CALL_EXCEPTION') {\n if (err.data === '0x') {\n if (ctx) {\n msg =\n \"jsonrpc eth_call return '0x' (likely contract not existed) at chain \" +\n ctx.chainId +\n ': ' +\n JSON.stringify(e)\n } else {\n msg = \"jsonrpc eth_call return '0x' (likely contract not existed): \" + JSON.stringify(err)\n }\n msg += '\\n' + checkPage\n return new SimpleEthersError(msg, err)\n }\n }\n\n msg = 'ethers call error\\n' + JSON.stringify(e) + '\\n' + e.stack?.toString() + '\\n' + checkPage\n return new Error(msg)\n}\n\nexport function fixEmptyKey(result: LogDescription): Result {\n const keys = []\n\n for (const [i, arg] of result.fragment.inputs.entries()) {\n if (arg.name === '') {\n keys.push('arg' + i)\n } else {\n keys.push(arg.name)\n }\n }\n return Result.fromItems(Array.from(result.args.values()), keys)\n}\n\nconst _formatTransactionReceipt = object(\n {\n to: allowNull(getAddress, null),\n from: allowNull(getAddress, null),\n contractAddress: allowNull(getAddress, null),\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n index: getNumber,\n root: allowNull(hexlify),\n gasUsed: getBigInt,\n logsBloom: allowNull(formatData),\n blockHash: formatHash,\n hash: formatHash,\n logs: allowNull(arrayOf(formatReceiptLog)), // Only thing that different\n blockNumber: getNumber,\n //confirmations: allowNull(getNumber, null),\n cumulativeGasUsed: getBigInt,\n effectiveGasPrice: allowNull(getBigInt),\n status: allowNull(getNumber),\n type: allowNull(getNumber, 0),\n },\n {\n effectiveGasPrice: ['gasPrice'],\n hash: ['transactionHash'],\n index: ['transactionIndex'],\n }\n)\n\nfunction formatTransactionReceipt(value: any): TransactionReceiptParams {\n return _formatTransactionReceipt(value)\n}\n\nexport function formatEthData(data: {\n log?: any\n block?: any\n trace?: any\n transaction?: any\n transactionReceipt?: any\n}) {\n const log = data.log ? formatLog(data.log) : undefined\n if (data.block && !data.block.transactions) {\n data.block.transactions = []\n }\n const block = data.block ? formatRichBlock(data.block) : undefined\n const trace = data.trace ? (data.trace as Trace) : undefined\n const transaction = data.transaction ? formatTransactionResponse(data.transaction) : undefined\n const transactionReceipt = data.transactionReceipt ? formatTransactionReceipt(data.transactionReceipt) : undefined\n return {\n log,\n block,\n trace,\n transaction,\n transactionReceipt,\n }\n}\n\nexport function formatRichBlock(block: RichBlock): RichBlock {\n formatBlock(block)\n if (block.transactionReceipts) {\n block.transactionReceipts = block.transactionReceipts.map((t) => formatTransactionReceipt(t))\n }\n return block\n}\n\nexport interface TypedCallTrace<TArgsArray extends Array<any> = any, TArgsObject = any> extends Trace {\n args: TArgsObject & IResult\n name: string\n functionSignature: string\n}\n\nexport interface Trace {\n action: TraceAction\n blockHash: string\n blockNumber: number\n result: TraceResult\n subtraces: number\n traceAddress: number[]\n transactionHash: string\n transactionPosition: number\n type: string\n error?: string\n}\n// export type CallType = \"call\" | \"callcode\" | \"delegatecall\" | \"staticcall\"\n\nexport interface TraceAction {\n from: string\n to?: string\n value: number\n gas: number\n input?: string\n callType?: string\n\n init?: string\n address?: string\n balance?: string\n refundAddress?: string\n}\n\n// TODO are more field missing for FailedCall, FailedCreate\nexport interface TraceResult {\n gasUsed: number\n output?: string\n address?: string\n code?: string\n}\n\n// const TRACE: Trace = {\n// action: {\n// from: '0xd771111cbfa2bbdafbf9f0e58b49b3f827da31f5',\n// callType: 'call',\n// gas: 0x12154,\n// input:\n// '0xb1a417f4000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f5000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131888b5aaf000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000',\n// to: '0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4',\n// value: 0x131888b5aaf0000,\n// },\n// blockHash: '0x5451711bc530a7c04128fedbe149eb359c10eccd44a83909d448c5244c7eea26',\n// blockNumber: 15533908,\n// result: { gasUsed: 0x114c1, output: '0x' },\n// subtraces: 1,\n// traceAddress: [],\n// transactionHash: '0x66dce11d6217042ed709a38e507e7762c93b1bde4a0447ae7a243493bbdffc0e',\n// transactionPosition: 73,\n// type: 'call',\n// }\n\n// const trac2: Trace =\n// {\n// \"action\": {\n// \"from\": \"0x95ba4cf87d6723ad9c0db21737d862be80e93911\",\n// \"gas\": 0x630d0b,\n// \"init\": \"0x608060405234801561001057600080fd5b50604051602080610b2983398101806040528101908080519060200190929190505050808060405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c657fe5b6100de81610169640100000000026401000000009004565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001026000191614151561014a57fe5b6101623361024e640100000000026401000000009004565b5050610290565b60006101878261027d6401000000000261084b176401000000009004565b1515610221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b61088a8061029f6000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed2400290000000000000000000000000882477e7895bdc5cea7cb1552ed914ab157fe56\",\n// \"value\": 0x0\n// },\n// \"blockHash\": \"0xb2f6986457f5a24ff088a0beb5567c8c1fe2da02687c78e743507ee7c982b977\",\n// \"blockNumber\": 6082465,\n// \"result\": {\n// \"address\": \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n// \"code\": \"0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed240029\",\n// \"gasUsed\": 0x74f42\n// },\n// \"subtraces\": 0,\n// \"traceAddress\": [],\n// \"transactionHash\": \"0xe7e0fe390354509cd08c9a0168536938600ddc552b3f7cb96030ebef62e75895\",\n// \"transactionPosition\": 22,\n// \"type\": \"create\"\n// }\n\nexport function isNullAddress(address: string) {\n try {\n // Normalize the input address\n const normalizedAddress = getAddress(address)\n // Check if the normalized address is equal to the null address (all zeros)\n return normalizedAddress === '0x0000000000000000000000000000000000000000'\n } catch (error) {\n return false\n }\n}\n\nexport function validateAndNormalizeAddress(address: string): string {\n const normalizedAddress = getAddress(address)\n return normalizedAddress.toLowerCase()\n}\n"]}
1
+ {"version":3,"file":"eth.js","sourceRoot":"","sources":["../../src/eth/eth.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LogParams,\n formatBlock,\n formatLog,\n TransactionReceiptParams,\n formatTransactionResponse,\n allowNull,\n arrayOf,\n formatHash,\n formatReceiptLog,\n object,\n formatData,\n} from 'ethers/providers'\nimport { CallExceptionError, LogDescription, Result, DeferredTopicFilter, BlockParams } from 'ethers'\nimport { ContractContext } from './context.js'\nimport { getAddress } from 'ethers/address'\nimport { getBigInt, getNumber, hexlify } from 'ethers/utils'\n\nexport interface IResult {\n /**\n * Returns the Result as a normal Array.\n */\n toArray(): Array<any>\n /**\n * Returns the Result as an Object with each name-value pair.\n */\n toObject(): Record<string, any>\n}\n\nexport interface TypedEvent<TArgsArray extends Array<any> = any, TArgsObject = any> extends LogParams {\n args: TArgsObject & IResult\n name: string\n}\n\nexport type TypedEventFilter<_TEvent extends TypedEvent> = DeferredTopicFilter\n\nexport interface RichBlock extends BlockParams {\n traces?: Trace[]\n transactionReceipts?: TransactionReceiptParams[]\n}\n\nexport class SimpleEthersError extends Error {\n e: Error\n\n constructor(message: string, e: Error, stack?: string) {\n super(message)\n this.stack = stack\n }\n\n toString() {\n return this.message + '\\n' + this.stack?.toString()\n }\n}\n\nexport function transformEtherError(e: Error, ctx: ContractContext<any, any> | undefined, stack?: string): Error {\n if (e instanceof SimpleEthersError) {\n return e\n }\n\n const checkPage =\n 'Check here for possible cause and fix: https://docs.sentio.xyz/best-practices/handling-errors#ethers-error'\n\n let msg = ''\n const err = e as CallExceptionError\n if (err.code === 'CALL_EXCEPTION' || err.code === 'BAD_DATA') {\n const stack = new Error().stack\n if (err.data === '0x') {\n if (ctx) {\n msg = `jsonrpc eth_call return '0x' (likely contract not existed) at chain ${ctx.chainId}, ${checkPage}:\\n${e.message}`\n } else {\n msg = `jsonrpc eth_call return '0x' (likely contract not existed), ${checkPage}:\\n${e.message}`\n }\n return new SimpleEthersError(msg, err, stack)\n } else {\n return new SimpleEthersError(`eth call error, ${checkPage}:\\nerr.message`, err, stack)\n }\n }\n\n msg = 'other error during call error\\n' + JSON.stringify(e) + '\\n' + stack?.toString() + '\\n' + checkPage\n return new Error(msg)\n}\n\nexport function fixEmptyKey(result: LogDescription): Result {\n const keys = []\n\n for (const [i, arg] of result.fragment.inputs.entries()) {\n if (arg.name === '') {\n keys.push('arg' + i)\n } else {\n keys.push(arg.name)\n }\n }\n return Result.fromItems(Array.from(result.args.values()), keys)\n}\n\nconst _formatTransactionReceipt = object(\n {\n to: allowNull(getAddress, null),\n from: allowNull(getAddress, null),\n contractAddress: allowNull(getAddress, null),\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n index: getNumber,\n root: allowNull(hexlify),\n gasUsed: getBigInt,\n logsBloom: allowNull(formatData),\n blockHash: formatHash,\n hash: formatHash,\n logs: allowNull(arrayOf(formatReceiptLog)), // Only thing that different\n blockNumber: getNumber,\n //confirmations: allowNull(getNumber, null),\n cumulativeGasUsed: getBigInt,\n effectiveGasPrice: allowNull(getBigInt),\n status: allowNull(getNumber),\n type: allowNull(getNumber, 0),\n },\n {\n effectiveGasPrice: ['gasPrice'],\n hash: ['transactionHash'],\n index: ['transactionIndex'],\n }\n)\n\nfunction formatTransactionReceipt(value: any): TransactionReceiptParams {\n return _formatTransactionReceipt(value)\n}\n\nexport function formatEthData(data: {\n log?: any\n block?: any\n trace?: any\n transaction?: any\n transactionReceipt?: any\n}) {\n const log = data.log ? formatLog(data.log) : undefined\n if (data.block && !data.block.transactions) {\n data.block.transactions = []\n }\n const block = data.block ? formatRichBlock(data.block) : undefined\n const trace = data.trace ? (data.trace as Trace) : undefined\n const transaction = data.transaction ? formatTransactionResponse(data.transaction) : undefined\n const transactionReceipt = data.transactionReceipt ? formatTransactionReceipt(data.transactionReceipt) : undefined\n return {\n log,\n block,\n trace,\n transaction,\n transactionReceipt,\n }\n}\n\nexport function formatRichBlock(block: RichBlock): RichBlock {\n formatBlock(block)\n if (block.transactionReceipts) {\n block.transactionReceipts = block.transactionReceipts.map((t) => formatTransactionReceipt(t))\n }\n return block\n}\n\nexport interface TypedCallTrace<TArgsArray extends Array<any> = any, TArgsObject = any> extends Trace {\n args: TArgsObject & IResult\n name: string\n functionSignature: string\n}\n\nexport interface Trace {\n action: TraceAction\n blockHash: string\n blockNumber: number\n result: TraceResult\n subtraces: number\n traceAddress: number[]\n transactionHash: string\n transactionPosition: number\n type: string\n error?: string\n}\n// export type CallType = \"call\" | \"callcode\" | \"delegatecall\" | \"staticcall\"\n\nexport interface TraceAction {\n from: string\n to?: string\n value: number\n gas: number\n input?: string\n callType?: string\n\n init?: string\n address?: string\n balance?: string\n refundAddress?: string\n}\n\n// TODO are more field missing for FailedCall, FailedCreate\nexport interface TraceResult {\n gasUsed: number\n output?: string\n address?: string\n code?: string\n}\n\n// const TRACE: Trace = {\n// action: {\n// from: '0xd771111cbfa2bbdafbf9f0e58b49b3f827da31f5',\n// callType: 'call',\n// gas: 0x12154,\n// input:\n// '0xb1a417f4000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f5000000000000000000000000d771111cbfa2bbdafbf9f0e58b49b3f827da31f500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000131888b5aaf000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000',\n// to: '0x0baba1ad5be3a5c0a66e7ac838a129bf948f1ea4',\n// value: 0x131888b5aaf0000,\n// },\n// blockHash: '0x5451711bc530a7c04128fedbe149eb359c10eccd44a83909d448c5244c7eea26',\n// blockNumber: 15533908,\n// result: { gasUsed: 0x114c1, output: '0x' },\n// subtraces: 1,\n// traceAddress: [],\n// transactionHash: '0x66dce11d6217042ed709a38e507e7762c93b1bde4a0447ae7a243493bbdffc0e',\n// transactionPosition: 73,\n// type: 'call',\n// }\n\n// const trac2: Trace =\n// {\n// \"action\": {\n// \"from\": \"0x95ba4cf87d6723ad9c0db21737d862be80e93911\",\n// \"gas\": 0x630d0b,\n// \"init\": \"0x608060405234801561001057600080fd5b50604051602080610b2983398101806040528101908080519060200190929190505050808060405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c657fe5b6100de81610169640100000000026401000000009004565b5060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001026000191614151561014a57fe5b6101623361024e640100000000026401000000009004565b5050610290565b60006101878261027d6401000000000261084b176401000000009004565b1515610221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b61088a8061029f6000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed2400290000000000000000000000000882477e7895bdc5cea7cb1552ed914ab157fe56\",\n// \"value\": 0x0\n// },\n// \"blockHash\": \"0xb2f6986457f5a24ff088a0beb5567c8c1fe2da02687c78e743507ee7c982b977\",\n// \"blockNumber\": 6082465,\n// \"result\": {\n// \"address\": \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n// \"code\": \"0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610360565b005b3480156101ae57600080fd5b506101b761051e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610576565b61021161020c610651565b610682565b565b61021b6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d9565b610265565b6102646101f9565b5b50565b6102706106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102fa576102ac836106d9565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156102f557600080fd5b610303565b6103026101f9565b5b505050565b60006103126106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103545761034d610651565b905061035d565b61035c6101f9565b5b90565b6103686106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561051257600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610466576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048f6106a8565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050d81610748565b61051b565b61051a6101f9565b5b50565b60006105286106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561056a576105636106a8565b9050610573565b6105726101f9565b5b90565b61057e6106a8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610647576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064f610777565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a3573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106e281610779565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b60006107848261084b565b151561081e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820a4a547cfc7202c5acaaae74d428e988bc62ad5024eb0165532d3a8f91db4ed240029\",\n// \"gasUsed\": 0x74f42\n// },\n// \"subtraces\": 0,\n// \"traceAddress\": [],\n// \"transactionHash\": \"0xe7e0fe390354509cd08c9a0168536938600ddc552b3f7cb96030ebef62e75895\",\n// \"transactionPosition\": 22,\n// \"type\": \"create\"\n// }\n\nexport function isNullAddress(address: string) {\n try {\n // Normalize the input address\n const normalizedAddress = getAddress(address)\n // Check if the normalized address is equal to the null address (all zeros)\n return normalizedAddress === '0x0000000000000000000000000000000000000000'\n } catch (error) {\n return false\n }\n}\n\nexport function validateAndNormalizeAddress(address: string): string {\n const normalizedAddress = getAddress(address)\n return normalizedAddress.toLowerCase()\n}\n"]}
@@ -79,7 +79,7 @@ class QueuedStaticJsonRpcProvider extends JsonRpcProvider {
79
79
  if (!perform) {
80
80
  perform = this.executor.add(() => super.send(method, params));
81
81
  perform.catch((e) => {
82
- if (e.code !== 'CALL_EXCEPTION') {
82
+ if (e.code !== 'CALL_EXCEPTION' && e.code !== 'BAD_DATA') {
83
83
  setTimeout(() => {
84
84
  if (this.#performCache.get(tag) === perform) {
85
85
  this.#performCache.delete(tag);