@sentio/sdk 2.17.0 → 2.18.0-rc.1
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.
- package/lib/core/base-context.d.ts +2 -2
- package/lib/core/base-context.js +2 -2
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/event-logger.d.ts +11 -1
- package/lib/core/event-logger.js +33 -12
- package/lib/core/event-logger.js.map +1 -1
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.d.ts +17 -0
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js +88 -0
- package/lib/eth/builtin/internal/eacaggregatorproxy-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc1155-processor.d.ts +13 -0
- package/lib/eth/builtin/internal/erc1155-processor.js +56 -0
- package/lib/eth/builtin/internal/erc1155-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20-processor.d.ts +28 -1
- package/lib/eth/builtin/internal/erc20-processor.js +168 -0
- package/lib/eth/builtin/internal/erc20-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.d.ts +14 -1
- package/lib/eth/builtin/internal/erc20bytes-processor.js +56 -0
- package/lib/eth/builtin/internal/erc20bytes-processor.js.map +1 -1
- package/lib/eth/builtin/internal/erc721-processor.d.ts +17 -0
- package/lib/eth/builtin/internal/erc721-processor.js +88 -0
- package/lib/eth/builtin/internal/erc721-processor.js.map +1 -1
- package/lib/eth/builtin/internal/weth9-processor.d.ts +18 -1
- package/lib/eth/builtin/internal/weth9-processor.js +88 -0
- package/lib/eth/builtin/internal/weth9-processor.js.map +1 -1
- package/lib/eth/codegen/file.js +22 -4
- package/lib/eth/codegen/file.js.map +1 -1
- package/lib/eth/codegen/function-calls.d.ts +5 -0
- package/lib/eth/codegen/function-calls.js +64 -0
- package/lib/eth/codegen/function-calls.js.map +1 -0
- package/package.json +3 -3
- package/src/core/base-context.ts +3 -3
- package/src/core/event-logger.ts +39 -13
- package/src/eth/builtin/internal/eacaggregatorproxy-processor.ts +105 -0
- package/src/eth/builtin/internal/erc1155-processor.ts +111 -0
- package/src/eth/builtin/internal/erc20-processor.ts +228 -1
- package/src/eth/builtin/internal/erc20bytes-processor.ts +84 -1
- package/src/eth/builtin/internal/erc721-processor.ts +146 -0
- package/src/eth/builtin/internal/weth9-processor.ts +114 -1
- package/src/eth/codegen/file.ts +22 -4
- package/src/eth/codegen/function-calls.ts +78 -0
- package/lib/eth/codegen/view-function.d.ts +0 -5
- package/lib/eth/codegen/view-function.js +0 -60
- package/lib/eth/codegen/view-function.js.map +0 -1
- package/src/eth/codegen/view-function.ts +0 -71
@@ -1,7 +1,7 @@
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
2
2
|
/* tslint:disable */
|
3
3
|
/* eslint-disable */
|
4
|
-
import { Overrides } from "ethers";
|
4
|
+
import { BigNumberish, Overrides } from "ethers";
|
5
5
|
import {
|
6
6
|
addContractByABI,
|
7
7
|
getContractByABI,
|
@@ -108,6 +108,7 @@ const templateContract = WETH9__factory.connect("0x0", DummyProvider);
|
|
108
108
|
export class WETH9ContractView extends ContractView<WETH9> {
|
109
109
|
constructor(contract: WETH9) {
|
110
110
|
super(contract);
|
111
|
+
this.callStatic.contract = contract;
|
111
112
|
}
|
112
113
|
|
113
114
|
async name(overrides?: Overrides): Promise<string> {
|
@@ -168,6 +169,69 @@ export class WETH9ContractView extends ContractView<WETH9> {
|
|
168
169
|
throw transformEtherError(e, undefined);
|
169
170
|
}
|
170
171
|
}
|
172
|
+
|
173
|
+
callStatic = {
|
174
|
+
contract: this.contract,
|
175
|
+
|
176
|
+
async approve(
|
177
|
+
guy: string,
|
178
|
+
wad: BigNumberish,
|
179
|
+
overrides?: Overrides
|
180
|
+
): Promise<boolean> {
|
181
|
+
try {
|
182
|
+
return await this.contract
|
183
|
+
.getFunction("approve(address,uint256)")
|
184
|
+
.staticCall(guy, wad, overrides || {});
|
185
|
+
} catch (e) {
|
186
|
+
throw transformEtherError(e, undefined);
|
187
|
+
}
|
188
|
+
},
|
189
|
+
async transferFrom(
|
190
|
+
src: string,
|
191
|
+
dst: string,
|
192
|
+
wad: BigNumberish,
|
193
|
+
overrides?: Overrides
|
194
|
+
): Promise<boolean> {
|
195
|
+
try {
|
196
|
+
return await this.contract
|
197
|
+
.getFunction("transferFrom(address,address,uint256)")
|
198
|
+
.staticCall(src, dst, wad, overrides || {});
|
199
|
+
} catch (e) {
|
200
|
+
throw transformEtherError(e, undefined);
|
201
|
+
}
|
202
|
+
},
|
203
|
+
async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {
|
204
|
+
try {
|
205
|
+
return await this.contract
|
206
|
+
.getFunction("withdraw(uint256)")
|
207
|
+
.staticCall(wad, overrides || {});
|
208
|
+
} catch (e) {
|
209
|
+
throw transformEtherError(e, undefined);
|
210
|
+
}
|
211
|
+
},
|
212
|
+
async transfer(
|
213
|
+
dst: string,
|
214
|
+
wad: BigNumberish,
|
215
|
+
overrides?: Overrides
|
216
|
+
): Promise<boolean> {
|
217
|
+
try {
|
218
|
+
return await this.contract
|
219
|
+
.getFunction("transfer(address,uint256)")
|
220
|
+
.staticCall(dst, wad, overrides || {});
|
221
|
+
} catch (e) {
|
222
|
+
throw transformEtherError(e, undefined);
|
223
|
+
}
|
224
|
+
},
|
225
|
+
async deposit(overrides?: Overrides): Promise<void> {
|
226
|
+
try {
|
227
|
+
return await this.contract
|
228
|
+
.getFunction("deposit()")
|
229
|
+
.staticCall(overrides || {});
|
230
|
+
} catch (e) {
|
231
|
+
throw transformEtherError(e, undefined);
|
232
|
+
}
|
233
|
+
},
|
234
|
+
};
|
171
235
|
}
|
172
236
|
|
173
237
|
export class WETH9BoundContractView extends BoundContractView<
|
@@ -219,6 +283,55 @@ export class WETH9BoundContractView extends BoundContractView<
|
|
219
283
|
...overrides,
|
220
284
|
});
|
221
285
|
}
|
286
|
+
|
287
|
+
callStatic = {
|
288
|
+
view: this.view,
|
289
|
+
context: this.context,
|
290
|
+
|
291
|
+
async approve(
|
292
|
+
guy: string,
|
293
|
+
wad: BigNumberish,
|
294
|
+
overrides?: Overrides
|
295
|
+
): Promise<boolean> {
|
296
|
+
return await this.view.callStatic.approve(guy, wad, {
|
297
|
+
blockTag: this.context.blockNumber,
|
298
|
+
...overrides,
|
299
|
+
});
|
300
|
+
},
|
301
|
+
async transferFrom(
|
302
|
+
src: string,
|
303
|
+
dst: string,
|
304
|
+
wad: BigNumberish,
|
305
|
+
overrides?: Overrides
|
306
|
+
): Promise<boolean> {
|
307
|
+
return await this.view.callStatic.transferFrom(src, dst, wad, {
|
308
|
+
blockTag: this.context.blockNumber,
|
309
|
+
...overrides,
|
310
|
+
});
|
311
|
+
},
|
312
|
+
async withdraw(wad: BigNumberish, overrides?: Overrides): Promise<void> {
|
313
|
+
return await this.view.callStatic.withdraw(wad, {
|
314
|
+
blockTag: this.context.blockNumber,
|
315
|
+
...overrides,
|
316
|
+
});
|
317
|
+
},
|
318
|
+
async transfer(
|
319
|
+
dst: string,
|
320
|
+
wad: BigNumberish,
|
321
|
+
overrides?: Overrides
|
322
|
+
): Promise<boolean> {
|
323
|
+
return await this.view.callStatic.transfer(dst, wad, {
|
324
|
+
blockTag: this.context.blockNumber,
|
325
|
+
...overrides,
|
326
|
+
});
|
327
|
+
},
|
328
|
+
async deposit(overrides?: Overrides): Promise<void> {
|
329
|
+
return await this.view.callStatic.deposit({
|
330
|
+
blockTag: this.context.blockNumber,
|
331
|
+
...overrides,
|
332
|
+
});
|
333
|
+
},
|
334
|
+
};
|
222
335
|
}
|
223
336
|
|
224
337
|
export type WETH9Context = ContractContext<WETH9, WETH9BoundContractView>;
|
package/src/eth/codegen/file.ts
CHANGED
@@ -9,7 +9,7 @@ import {
|
|
9
9
|
import { reservedKeywords } from '@sentio/ethers-v6/dist/codegen/reserved-keywords.js'
|
10
10
|
import { codegenCallTraceTypes, generateCallHandlers } from './functions-handler.js'
|
11
11
|
import { generateEventFilters, generateEventHandlers } from './event-handler.js'
|
12
|
-
import { generateBoundViewFunctions, generateViewFunctions } from './
|
12
|
+
import { generateBoundViewFunctions, generateViewFunctions } from './function-calls.js'
|
13
13
|
|
14
14
|
export function codeGenIndex(contract: Contract): string {
|
15
15
|
return `
|
@@ -29,23 +29,41 @@ export function codeGenSentioFile(contract: Contract): string {
|
|
29
29
|
export class ${contract.name}ContractView extends ContractView<${contract.name}> {
|
30
30
|
constructor (contract: ${contract.name}) {
|
31
31
|
super(contract);
|
32
|
+
this.callStatic.contract = contract;
|
32
33
|
}
|
33
34
|
|
34
35
|
${Object.values(contract.functions)
|
35
36
|
.filter((f) => !reservedKeywords.has(f[0].name))
|
36
|
-
.
|
37
|
+
.flatMap((fs) => generateViewFunctions(true, fs))
|
37
38
|
.join('\n')}
|
39
|
+
|
40
|
+
callStatic = {
|
41
|
+
contract: this.contract,
|
42
|
+
${Object.values(contract.functions)
|
43
|
+
.filter((f) => !reservedKeywords.has(f[0].name))
|
44
|
+
.flatMap((fs) => generateViewFunctions(false, fs))
|
45
|
+
.join(',\n')}
|
46
|
+
}
|
38
47
|
}
|
39
48
|
|
40
49
|
export class ${contract.name}BoundContractView extends BoundContractView<${contract.name},
|
41
50
|
${contract.name}ContractView> {
|
42
51
|
${Object.values(contract.functions)
|
43
52
|
.filter((f) => !reservedKeywords.has(f[0].name))
|
44
|
-
.
|
53
|
+
.flatMap((fs) => generateBoundViewFunctions(true, fs))
|
45
54
|
.join('\n')}
|
55
|
+
|
56
|
+
callStatic = {
|
57
|
+
view: this.view,
|
58
|
+
context: this.context,
|
59
|
+
${Object.values(contract.functions)
|
60
|
+
.filter((f) => !reservedKeywords.has(f[0].name))
|
61
|
+
.flatMap((fs) => generateBoundViewFunctions(false, fs))
|
62
|
+
.join(',\n')}
|
63
|
+
}
|
46
64
|
}
|
47
65
|
|
48
|
-
|
66
|
+
export type ${contract.name}Context = ContractContext<${contract.name}, ${contract.name}BoundContractView>
|
49
67
|
|
50
68
|
export class ${contract.name}Processor extends BaseProcessor<${contract.name}, ${contract.name}BoundContractView> {
|
51
69
|
${Object.values(contract.events)
|
@@ -0,0 +1,78 @@
|
|
1
|
+
// https://github.com/dethcrypto/TypeChain/blob/015abb28bd22826611051f27e0ec96a00f9a0b61/packages/target-ethers-v5/src/codegen/functions.ts#L54
|
2
|
+
import { FunctionDeclaration } from 'typechain'
|
3
|
+
import { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types.js'
|
4
|
+
import { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.js'
|
5
|
+
|
6
|
+
function generateReturnTypes(fn: FunctionDeclaration) {
|
7
|
+
// sounds like returnResultObject should be true but we need to set false to make it work
|
8
|
+
return `Promise<${generateOutputTypes({ returnResultObject: false, useStructs: true }, fn.outputs)}>`
|
9
|
+
}
|
10
|
+
|
11
|
+
export function generateViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {
|
12
|
+
const includeArgTypes = functions.length !== 1
|
13
|
+
return functions.flatMap((fn) => generateViewFunction(view, fn, includeArgTypes))
|
14
|
+
}
|
15
|
+
|
16
|
+
export function generateViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {
|
17
|
+
const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'
|
18
|
+
if (view !== isView) {
|
19
|
+
return []
|
20
|
+
}
|
21
|
+
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name
|
22
|
+
|
23
|
+
const call = view ? '' : '.staticCall'
|
24
|
+
|
25
|
+
const func = `this.contract.getFunction("` + getFullSignatureForFunction(fn) + '")'
|
26
|
+
// if (overrides) {
|
27
|
+
// return await ${call}(${
|
28
|
+
// fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
29
|
+
// } overrides)
|
30
|
+
// } else {
|
31
|
+
// return await ${call}(${fn.inputs.map((input, index) => input.name || `arg${index}`).join(',')})
|
32
|
+
// }
|
33
|
+
return [
|
34
|
+
`
|
35
|
+
async ${declName}(${generateInputTypes(fn.inputs, {
|
36
|
+
useStructs: true,
|
37
|
+
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
38
|
+
try {
|
39
|
+
return await ${func}${call}(${
|
40
|
+
fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
41
|
+
} overrides || {})
|
42
|
+
} catch (e) {
|
43
|
+
throw transformEtherError(e, undefined)
|
44
|
+
}
|
45
|
+
}
|
46
|
+
`,
|
47
|
+
]
|
48
|
+
}
|
49
|
+
|
50
|
+
export function generateBoundViewFunctions(view: boolean, functions: FunctionDeclaration[]): string[] {
|
51
|
+
const includeArgTypes = functions.length !== 1
|
52
|
+
return functions.flatMap((fn) => generateBoundViewFunction(view, fn, includeArgTypes))
|
53
|
+
}
|
54
|
+
|
55
|
+
export function generateBoundViewFunction(view: boolean, fn: FunctionDeclaration, includeArgTypes: boolean): string[] {
|
56
|
+
const isView = fn.stateMutability === 'view' || fn.stateMutability === 'pure'
|
57
|
+
if (view !== isView) {
|
58
|
+
return []
|
59
|
+
}
|
60
|
+
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name
|
61
|
+
|
62
|
+
const qualifier = view ? 'view' : 'view.callStatic'
|
63
|
+
|
64
|
+
return [
|
65
|
+
`
|
66
|
+
async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {
|
67
|
+
useStructs: true,
|
68
|
+
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
69
|
+
return await this.${qualifier}.${declName}(${
|
70
|
+
fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
71
|
+
} {
|
72
|
+
blockTag: this.context.blockNumber,
|
73
|
+
...overrides
|
74
|
+
})
|
75
|
+
}
|
76
|
+
`,
|
77
|
+
]
|
78
|
+
}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { FunctionDeclaration } from 'typechain';
|
2
|
-
export declare function generateViewFunctions(functions: FunctionDeclaration[]): string;
|
3
|
-
export declare function generateViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string;
|
4
|
-
export declare function generateBoundViewFunctions(functions: FunctionDeclaration[]): string;
|
5
|
-
export declare function generateBoundViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string;
|
@@ -1,60 +0,0 @@
|
|
1
|
-
import { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types.js';
|
2
|
-
import { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.js';
|
3
|
-
function generateReturnTypes(fn) {
|
4
|
-
// sounds like returnResultObject should be true but we need to set false to make it work
|
5
|
-
return `Promise<${generateOutputTypes({ returnResultObject: false, useStructs: true }, fn.outputs)}>`;
|
6
|
-
}
|
7
|
-
export function generateViewFunctions(functions) {
|
8
|
-
if (functions.length === 1) {
|
9
|
-
return generateViewFunction(functions[0], false);
|
10
|
-
}
|
11
|
-
return functions.map((fn) => generateViewFunction(fn, true)).join('\n');
|
12
|
-
}
|
13
|
-
export function generateViewFunction(fn, includeArgTypes) {
|
14
|
-
if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {
|
15
|
-
return '';
|
16
|
-
}
|
17
|
-
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name;
|
18
|
-
const call = 'this.contract.getFunction("' + getFullSignatureForFunction(fn) + '")';
|
19
|
-
// if (overrides) {
|
20
|
-
// return await ${call}(${
|
21
|
-
// fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
22
|
-
// } overrides)
|
23
|
-
// } else {
|
24
|
-
// return await ${call}(${fn.inputs.map((input, index) => input.name || `arg${index}`).join(',')})
|
25
|
-
// }
|
26
|
-
return `
|
27
|
-
async ${declName}(${generateInputTypes(fn.inputs, {
|
28
|
-
useStructs: true,
|
29
|
-
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
30
|
-
try {
|
31
|
-
return await ${call}(${fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''} overrides || {})
|
32
|
-
} catch (e) {
|
33
|
-
throw transformEtherError(e, undefined)
|
34
|
-
}
|
35
|
-
}
|
36
|
-
`;
|
37
|
-
}
|
38
|
-
export function generateBoundViewFunctions(functions) {
|
39
|
-
if (functions.length === 1) {
|
40
|
-
return generateBoundViewFunction(functions[0], false);
|
41
|
-
}
|
42
|
-
return functions.map((fn) => generateBoundViewFunction(fn, true)).join('\n');
|
43
|
-
}
|
44
|
-
export function generateBoundViewFunction(fn, includeArgTypes) {
|
45
|
-
if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {
|
46
|
-
return '';
|
47
|
-
}
|
48
|
-
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name;
|
49
|
-
return `
|
50
|
-
async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {
|
51
|
-
useStructs: true,
|
52
|
-
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
53
|
-
return await this.view.${declName}(${fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''} {
|
54
|
-
blockTag: this.context.blockNumber,
|
55
|
-
...overrides
|
56
|
-
})
|
57
|
-
}
|
58
|
-
`;
|
59
|
-
}
|
60
|
-
//# sourceMappingURL=view-function.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"view-function.js","sourceRoot":"","sources":["../../../src/eth/codegen/view-function.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(functions: FunctionDeclaration[]): string {\n if (functions.length === 1) {\n return generateViewFunction(functions[0], false)\n }\n return functions.map((fn) => generateViewFunction(fn, true)).join('\\n')\n}\n\nexport function generateViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string {\n if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {\n return ''\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n const call = '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 async ${declName}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n try { \n return await ${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\nexport function generateBoundViewFunctions(functions: FunctionDeclaration[]): string {\n if (functions.length === 1) {\n return generateBoundViewFunction(functions[0], false)\n }\n return functions.map((fn) => generateBoundViewFunction(fn, true)).join('\\n')\n}\n\nexport function generateBoundViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string {\n if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {\n return ''\n }\n const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name\n\n return `\n async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {\n useStructs: true,\n })}overrides?: Overrides): ${generateReturnTypes(fn)} {\n return await this.view.${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"]}
|
@@ -1,71 +0,0 @@
|
|
1
|
-
// https://github.com/dethcrypto/TypeChain/blob/015abb28bd22826611051f27e0ec96a00f9a0b61/packages/target-ethers-v5/src/codegen/functions.ts#L54
|
2
|
-
import { FunctionDeclaration } from 'typechain'
|
3
|
-
import { generateInputTypes, generateOutputTypes } from '@sentio/ethers-v6/dist/codegen/types.js'
|
4
|
-
import { getFullSignatureAsSymbolForFunction, getFullSignatureForFunction } from './types.js'
|
5
|
-
|
6
|
-
function generateReturnTypes(fn: FunctionDeclaration) {
|
7
|
-
// sounds like returnResultObject should be true but we need to set false to make it work
|
8
|
-
return `Promise<${generateOutputTypes({ returnResultObject: false, useStructs: true }, fn.outputs)}>`
|
9
|
-
}
|
10
|
-
|
11
|
-
export function generateViewFunctions(functions: FunctionDeclaration[]): string {
|
12
|
-
if (functions.length === 1) {
|
13
|
-
return generateViewFunction(functions[0], false)
|
14
|
-
}
|
15
|
-
return functions.map((fn) => generateViewFunction(fn, true)).join('\n')
|
16
|
-
}
|
17
|
-
|
18
|
-
export function generateViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string {
|
19
|
-
if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {
|
20
|
-
return ''
|
21
|
-
}
|
22
|
-
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name
|
23
|
-
const call = 'this.contract.getFunction("' + getFullSignatureForFunction(fn) + '")'
|
24
|
-
// if (overrides) {
|
25
|
-
// return await ${call}(${
|
26
|
-
// fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
27
|
-
// } overrides)
|
28
|
-
// } else {
|
29
|
-
// return await ${call}(${fn.inputs.map((input, index) => input.name || `arg${index}`).join(',')})
|
30
|
-
// }
|
31
|
-
return `
|
32
|
-
async ${declName}(${generateInputTypes(fn.inputs, {
|
33
|
-
useStructs: true,
|
34
|
-
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
35
|
-
try {
|
36
|
-
return await ${call}(${
|
37
|
-
fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
38
|
-
} overrides || {})
|
39
|
-
} catch (e) {
|
40
|
-
throw transformEtherError(e, undefined)
|
41
|
-
}
|
42
|
-
}
|
43
|
-
`
|
44
|
-
}
|
45
|
-
|
46
|
-
export function generateBoundViewFunctions(functions: FunctionDeclaration[]): string {
|
47
|
-
if (functions.length === 1) {
|
48
|
-
return generateBoundViewFunction(functions[0], false)
|
49
|
-
}
|
50
|
-
return functions.map((fn) => generateBoundViewFunction(fn, true)).join('\n')
|
51
|
-
}
|
52
|
-
|
53
|
-
export function generateBoundViewFunction(fn: FunctionDeclaration, includeArgTypes: boolean): string {
|
54
|
-
if (fn.stateMutability !== 'view' && fn.stateMutability !== 'pure') {
|
55
|
-
return ''
|
56
|
-
}
|
57
|
-
const declName = includeArgTypes ? getFullSignatureAsSymbolForFunction(fn) : fn.name
|
58
|
-
|
59
|
-
return `
|
60
|
-
async ${declName ?? fn.name}(${generateInputTypes(fn.inputs, {
|
61
|
-
useStructs: true,
|
62
|
-
})}overrides?: Overrides): ${generateReturnTypes(fn)} {
|
63
|
-
return await this.view.${declName}(${
|
64
|
-
fn.inputs.length > 0 ? fn.inputs.map((input, index) => input.name || `arg${index}`).join(',') + ',' : ''
|
65
|
-
} {
|
66
|
-
blockTag: this.context.blockNumber,
|
67
|
-
...overrides
|
68
|
-
})
|
69
|
-
}
|
70
|
-
`
|
71
|
-
}
|