@sentio/sdk 2.42.0-rc.6 → 2.42.0-rc.7
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/fuel/base-processor.d.ts +3 -3
- package/lib/fuel/base-processor.d.ts.map +1 -1
- package/lib/fuel/base-processor.js +4 -2
- package/lib/fuel/base-processor.js.map +1 -1
- package/lib/fuel/codegen/codegen.js +10 -12
- package/lib/fuel/codegen/codegen.js.map +1 -1
- package/lib/fuel/context.d.ts +9 -1
- package/lib/fuel/context.d.ts.map +1 -1
- package/lib/fuel/context.js +15 -0
- package/lib/fuel/context.js.map +1 -1
- package/lib/fuel/fuel-processor.d.ts +8 -7
- package/lib/fuel/fuel-processor.d.ts.map +1 -1
- package/lib/fuel/fuel-processor.js +7 -5
- package/lib/fuel/fuel-processor.js.map +1 -1
- package/package.json +3 -3
- package/src/fuel/base-processor.ts +7 -5
- package/src/fuel/codegen/codegen.ts +10 -12
- package/src/fuel/context.ts +13 -1
- package/src/fuel/fuel-processor.ts +15 -10
@@ -1,8 +1,8 @@
|
|
1
1
|
import { FuelProcessor, FuelProcessorConfig } from './fuel-processor.js';
|
2
|
-
import { JsonAbi } from 'fuels';
|
2
|
+
import { Contract, JsonAbi } from 'fuels';
|
3
3
|
import { FuelLog } from './types.js';
|
4
|
-
export declare abstract class FuelAbstractProcessor extends FuelProcessor {
|
5
|
-
protected constructor(abi: JsonAbi, config?: FuelProcessorConfig);
|
4
|
+
export declare abstract class FuelAbstractProcessor<TContract extends Contract> extends FuelProcessor<TContract> {
|
5
|
+
protected constructor(abi: JsonAbi, config?: Omit<FuelProcessorConfig, 'abi'>);
|
6
6
|
}
|
7
7
|
export declare class TypedCall<T extends Array<any>, R> {
|
8
8
|
args: T;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/base-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"base-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/base-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAA;AAExD,8BAAsB,qBAAqB,CAAC,SAAS,SAAS,QAAQ,CAAE,SAAQ,aAAa,CAAC,SAAS,CAAC;IACtG,SAAS,aAAa,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAa9E;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAA;IACP,WAAW,EAAE,CAAC,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;CAQ1B"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../../src/fuel/base-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAA;AAExE,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAW,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,OAAgB,
|
1
|
+
{"version":3,"file":"base-processor.js","sourceRoot":"","sources":["../../src/fuel/base-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAA;AAExE,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAW,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,OAAgB,qBAAkD,SAAQ,aAAwB;IACtG,YAAsB,GAAY,EAAE,MAAyC;QAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,OAAO,EAAE,WAAW,CAAC,YAAY;gBACjC,OAAO,EAAE,GAAG;aACb,CAAA;QACH,CAAC;QACD,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,GAAG;SACJ,CAAC,CAAA;QACF,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,IAAI,CAAG;IACP,WAAW,CAAG;IACd,UAAU,CAAsB;IAChC,IAAI,CAAqB;CAQ1B"}
|
@@ -100,7 +100,7 @@ async function codegenInternal(abisDir, outDir) {
|
|
100
100
|
/* tslint:disable */
|
101
101
|
/* eslint-disable */
|
102
102
|
|
103
|
-
import { FuelAbstractProcessor,
|
103
|
+
import { FuelAbstractProcessor, FuelContractContext, FuelProcessorConfig, TypedCall, FuelFetchConfig, FuelCall, FuelLog} from '@sentio/sdk/fuel'
|
104
104
|
import {${abi.commonTypesInUse.join(',')}} from './common.js'
|
105
105
|
import {${importedTypes.join(',')}, ${abi.capitalizedName}} from './${abi.capitalizedName}.js'
|
106
106
|
|
@@ -127,13 +127,9 @@ ${''
|
|
127
127
|
}
|
128
128
|
}
|
129
129
|
|
130
|
-
export class ${name}Processor extends FuelAbstractProcessor {
|
131
|
-
|
132
|
-
|
133
|
-
}
|
134
|
-
|
135
|
-
static bind(config: FuelProcessorConfig) {
|
136
|
-
return new ${name}Processor({
|
130
|
+
export class ${name}Processor extends FuelAbstractProcessor<${name}> {
|
131
|
+
static bind(config: Omit<FuelProcessorConfig, 'abi'>) {
|
132
|
+
return new ${name}Processor(${abi.capitalizedName}.abi, {
|
137
133
|
name: '${name}',
|
138
134
|
...config,
|
139
135
|
})
|
@@ -144,7 +140,9 @@ ${''
|
|
144
140
|
abi.functions.map((f) => genOnCallFunction(name, f)).join('\n') */
|
145
141
|
}
|
146
142
|
|
147
|
-
${Object.entries(logByTypes)
|
143
|
+
${Object.entries(logByTypes)
|
144
|
+
.map((e) => genOnLogFunction(name, e))
|
145
|
+
.join('\n')}
|
148
146
|
|
149
147
|
}
|
150
148
|
`;
|
@@ -178,7 +176,7 @@ function genCallType(f) {
|
|
178
176
|
function genOnCallFunction(contractName, f) {
|
179
177
|
const name = upperFirst(f.name);
|
180
178
|
return `
|
181
|
-
onCall${name}(handler: (call: ${contractName}.${name}Call, ctx:
|
179
|
+
onCall${name}(handler: (call: ${contractName}.${name}Call, ctx: FuelContractContext<${contractName}>) => void | Promise<void>, config?: FuelFetchConfig) {
|
182
180
|
return super.onCall('${f.name}', (call, ctx) => handler(new ${contractName}.${name}Call(call), ctx), config)
|
183
181
|
}`;
|
184
182
|
}
|
@@ -192,10 +190,10 @@ function collectImportedTypes(types) {
|
|
192
190
|
}
|
193
191
|
return Array.from(ret);
|
194
192
|
}
|
195
|
-
function genOnLogFunction([type, ids]) {
|
193
|
+
function genOnLogFunction(contractName, [type, ids]) {
|
196
194
|
const name = getTypeName(type);
|
197
195
|
return `
|
198
|
-
onLog${name}(handler: (log: FuelLog<${type}>, ctx:
|
196
|
+
onLog${name}(handler: (log: FuelLog<${type}>, ctx: FuelContractContext<${contractName}>) => void | Promise<void>, logIdFilter?: string | string[]) {
|
199
197
|
return super.onLog<${type}>(logIdFilter ?? [${ids.map((id) => `"${id}"`).join(', ')}], (log, ctx) => handler(log, ctx))
|
200
198
|
}`;
|
201
199
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/fuel/codegen/codegen.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/fuel/codegen/codegen.ts"],"names":[],"mappings":"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"}
|
package/lib/fuel/context.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { BaseContext, Labels } from '../core/index.js';
|
2
2
|
import { ChainId } from '@sentio/chain';
|
3
3
|
import { RecordMetaData } from '@sentio/protos';
|
4
|
-
import type { CallResult } from 'fuels';
|
4
|
+
import type { CallResult, Contract } from 'fuels';
|
5
5
|
import { InvocationScopeLike } from 'fuels';
|
6
6
|
import { FuelTransaction } from './transaction.js';
|
7
7
|
import { FuelLog } from './types.js';
|
@@ -21,4 +21,12 @@ export declare class FuelContext extends BaseContext {
|
|
21
21
|
setLogIndex(logIndex: number): void;
|
22
22
|
protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
23
23
|
}
|
24
|
+
export declare class FuelContractContext<TContract extends Contract> extends FuelContext {
|
25
|
+
readonly chainId: ChainId;
|
26
|
+
readonly contract: TContract;
|
27
|
+
readonly contractAddress: string;
|
28
|
+
readonly contractName: string;
|
29
|
+
readonly transaction: FuelTransaction | null;
|
30
|
+
constructor(chainId: ChainId, contract: TContract, contractAddress: string, contractName: string, transaction: FuelTransaction | null);
|
31
|
+
}
|
24
32
|
//# sourceMappingURL=context.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,qBAAa,QAAQ;IAKjB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBAJlC,UAAU,EAAE,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,EAC5D,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,OAAO,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAA,EAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,YAAA;CAIrC;AAED,qBAAa,WAAY,SAAQ,WAAW;IAGxC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAL9C,OAAO,CAAC,QAAQ,CAAa;gBAElB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI;IAK9C,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;CAa5E;AAED,qBAAa,mBAAmB,CAAC,SAAS,SAAS,QAAQ,CAAE,SAAQ,WAAW;IAE5E,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;gBAJnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,SAAS,EACnB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI;CAI/C"}
|
package/lib/fuel/context.js
CHANGED
@@ -41,4 +41,19 @@ export class FuelContext extends BaseContext {
|
|
41
41
|
};
|
42
42
|
}
|
43
43
|
}
|
44
|
+
export class FuelContractContext extends FuelContext {
|
45
|
+
chainId;
|
46
|
+
contract;
|
47
|
+
contractAddress;
|
48
|
+
contractName;
|
49
|
+
transaction;
|
50
|
+
constructor(chainId, contract, contractAddress, contractName, transaction) {
|
51
|
+
super(chainId, contractAddress, contractName, transaction);
|
52
|
+
this.chainId = chainId;
|
53
|
+
this.contract = contract;
|
54
|
+
this.contractAddress = contractAddress;
|
55
|
+
this.contractName = contractName;
|
56
|
+
this.transaction = transaction;
|
57
|
+
}
|
58
|
+
}
|
44
59
|
//# sourceMappingURL=context.js.map
|
package/lib/fuel/context.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQvE,MAAM,OAAO,QAAQ;IAKR;IACA;IALX,YACE,UAA4D,EAC5D,UAAsB,EACtB,WAAoB,EACX,IAA0B,EAC1B,IAAyB;QADzB,SAAI,GAAJ,IAAI,CAAsB;QAC1B,SAAI,GAAJ,IAAI,CAAqB;QAElC,6CAA6C;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,WAAW;IAG/B;IACA;IACA;IACA;IALH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAgB,EAChB,eAAuB,EACvB,YAAoB,EACpB,WAAmC;QAE5C,KAAK,CAAC,EAAE,CAAC,CAAA;QALA,YAAO,GAAP,OAAO,CAAS;QAChB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC;YACvD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO;YACpD,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF"}
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/fuel/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAQvE,MAAM,OAAO,QAAQ;IAKR;IACA;IALX,YACE,UAA4D,EAC5D,UAAsB,EACtB,WAAoB,EACX,IAA0B,EAC1B,IAAyB;QADzB,SAAI,GAAJ,IAAI,CAAsB;QAC1B,SAAI,GAAJ,IAAI,CAAqB;QAElC,6CAA6C;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,WAAW;IAG/B;IACA;IACA;IACA;IALH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAC7B,YACW,OAAgB,EAChB,eAAuB,EACvB,YAAoB,EACpB,WAAmC;QAE5C,KAAK,CAAC,EAAE,CAAC,CAAA;QALA,YAAO,GAAP,OAAO,CAAS;QAChB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC;YACvD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO;YACpD,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,mBAAgD,SAAQ,WAAW;IAEnE;IACA;IACA;IACA;IACA;IALX,YACW,OAAgB,EAChB,QAAmB,EACnB,eAAuB,EACvB,YAAoB,EACpB,WAAmC;QAE5C,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QANjD,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAW;QACnB,oBAAe,GAAf,eAAe,CAAQ;QACvB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,gBAAW,GAAX,WAAW,CAAwB;IAG9C,CAAC;CACF"}
|
@@ -1,20 +1,21 @@
|
|
1
1
|
import { Data_FuelCall } from '@sentio/protos';
|
2
|
-
import {
|
3
|
-
import { JsonAbi } from 'fuels';
|
2
|
+
import { FuelContractContext } from './context.js';
|
3
|
+
import { Contract, JsonAbi } from 'fuels';
|
4
4
|
import { FuelNetwork } from './network.js';
|
5
5
|
import { FuelFetchConfig, FuelTransaction } from './transaction.js';
|
6
6
|
import { CallHandler, FuelBaseProcessor, FuelLog } from './types.js';
|
7
|
-
export declare class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
7
|
+
export declare class FuelProcessor<TContract extends Contract> implements FuelBaseProcessor<FuelProcessorConfig> {
|
8
8
|
readonly config: FuelProcessorConfig;
|
9
9
|
callHandlers: CallHandler<Data_FuelCall>[];
|
10
10
|
private provider;
|
11
|
-
|
11
|
+
private contract;
|
12
|
+
static bind(config: FuelProcessorConfig): FuelProcessor<any>;
|
12
13
|
constructor(config: FuelProcessorConfig);
|
13
14
|
latestGasPrice: string | undefined;
|
14
15
|
configure(): Promise<void>;
|
15
|
-
onTransaction(handler: (transaction: FuelTransaction, ctx:
|
16
|
+
onTransaction(handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => void | Promise<void>, config?: FuelFetchConfig): this;
|
16
17
|
private onCall;
|
17
|
-
onLog<T>(logIdFilter: string | string[], handler: (logs: FuelLog<T>, ctx:
|
18
|
+
onLog<T>(logIdFilter: string | string[], handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => void | Promise<void>): this;
|
18
19
|
}
|
19
20
|
export type FuelProcessorConfig = {
|
20
21
|
address: string;
|
@@ -22,6 +23,6 @@ export type FuelProcessorConfig = {
|
|
22
23
|
chainId: FuelNetwork;
|
23
24
|
startBlock?: bigint;
|
24
25
|
endBlock?: bigint;
|
25
|
-
abi
|
26
|
+
abi: JsonAbi;
|
26
27
|
};
|
27
28
|
//# sourceMappingURL=fuel-processor.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,
|
1
|
+
{"version":3,"file":"fuel-processor.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiC,MAAM,gBAAgB,CAAA;AAC7E,OAAO,EAAyB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAM,QAAQ,EAAa,OAAO,EAAY,MAAM,OAAO,CAAA;AAClE,OAAO,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAGL,eAAe,EACf,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAsB,MAAM,YAAY,CAAA;AAGxF,qBAAa,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAE,YAAW,iBAAiB,CAAC,mBAAmB,CAAC;IAY1F,QAAQ,CAAC,MAAM,EAAE,mBAAmB;IAXhD,YAAY,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAW;IAE3B,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC;gBAMvC,MAAM,EAAE,mBAAmB;IAEhD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS;IAgBR,aAAa,CAClB,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpG,MAAM,GAAE,eAA2C;IA+BrD,OAAO,CAAC,MAAM;IA0EP,KAAK,CAAC,CAAC,EACZ,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,mBAAmB,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAiD3F;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;CACb,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { FuelCall, FuelContext } from './context.js';
|
1
|
+
import { FuelCall, FuelContext, FuelContractContext } from './context.js';
|
2
2
|
import { bn, Contract, Interface, Provider } from 'fuels';
|
3
3
|
import { getRpcEndpoint } from './network.js';
|
4
4
|
import { decodeFuelTransactionWithAbi, DEFAULT_FUEL_FETCH_CONFIG } from './transaction.js';
|
@@ -8,6 +8,7 @@ export class FuelProcessor {
|
|
8
8
|
config;
|
9
9
|
callHandlers = [];
|
10
10
|
provider;
|
11
|
+
contract;
|
11
12
|
static bind(config) {
|
12
13
|
const processor = new FuelProcessor(config);
|
13
14
|
FuelProcessorState.INSTANCE.addValue(processor);
|
@@ -29,6 +30,7 @@ export class FuelProcessor {
|
|
29
30
|
this.latestGasPrice = latestGasPrice?.gasPrice;
|
30
31
|
return bn(latestGasPrice.gasPrice);
|
31
32
|
};
|
33
|
+
this.contract = new Contract(this.config.address, this.config.abi, this.provider);
|
32
34
|
}
|
33
35
|
onTransaction(handler, config = DEFAULT_FUEL_FETCH_CONFIG) {
|
34
36
|
const callHandler = {
|
@@ -39,7 +41,7 @@ export class FuelProcessor {
|
|
39
41
|
}
|
40
42
|
: {};
|
41
43
|
const tx = await decodeFuelTransactionWithAbi(call.transaction, abiMap, this.provider);
|
42
|
-
const ctx = new
|
44
|
+
const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, tx);
|
43
45
|
await handler(tx, ctx);
|
44
46
|
return ctx.stopAndGetResult();
|
45
47
|
},
|
@@ -76,14 +78,14 @@ export class FuelProcessor {
|
|
76
78
|
const callHandler = {
|
77
79
|
handler: async (call) => {
|
78
80
|
try {
|
79
|
-
const contract = new Contract(this.config.address, abi, this.provider)
|
81
|
+
// const contract = new Contract(this.config.address, abi, this.provider)
|
80
82
|
const gqlTransaction = call.transaction;
|
81
83
|
const tx = await decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: abi }, this.provider);
|
82
84
|
const ctx = new FuelContext(this.config.chainId, this.config.address, this.config.name ?? this.config.address, tx);
|
83
85
|
for (const op of tx.operations) {
|
84
86
|
for (const call of op.calls || []) {
|
85
87
|
if (names.has(call.functionName)) {
|
86
|
-
const fn = contract.functions[call.functionName];
|
88
|
+
const fn = this.contract.functions[call.functionName];
|
87
89
|
const args = Object.values(call.argumentsProvided || {});
|
88
90
|
const scope = fn(...args);
|
89
91
|
const invocationResult = new FuelCall(scope, tx, false, call.argumentsProvided, tx.logs);
|
@@ -123,7 +125,7 @@ export class FuelProcessor {
|
|
123
125
|
const results = [];
|
124
126
|
const logs = (tx.logs || []).filter((log) => logIds.has(log.logId));
|
125
127
|
for (const log of logs) {
|
126
|
-
const ctx = new
|
128
|
+
const ctx = new FuelContractContext(this.config.chainId, this.contract, this.config.address, this.config.name ?? this.config.address, tx);
|
127
129
|
ctx.setLogIndex(log.receiptIndex);
|
128
130
|
await handler(log, ctx);
|
129
131
|
results.push(ctx.stopAndGetResult());
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;
|
1
|
+
{"version":3,"file":"fuel-processor.js","sourceRoot":"","sources":["../../src/fuel/fuel-processor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
|
-
"version": "2.42.0-rc.
|
3
|
+
"version": "2.42.0-rc.7",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -84,8 +84,8 @@
|
|
84
84
|
"typechain": "^8.3.2",
|
85
85
|
"utility-types": "^3.11.0",
|
86
86
|
"yaml": "^2.3.4",
|
87
|
-
"@sentio/protos": "2.42.0-rc.
|
88
|
-
"@sentio/runtime": "^2.42.0-rc.
|
87
|
+
"@sentio/protos": "2.42.0-rc.7",
|
88
|
+
"@sentio/runtime": "^2.42.0-rc.7"
|
89
89
|
},
|
90
90
|
"peerDependencies": {
|
91
91
|
"tsup": "npm:@sentio/tsup@^6.7.2"
|
@@ -1,19 +1,21 @@
|
|
1
1
|
import { FuelProcessor, FuelProcessorConfig } from './fuel-processor.js'
|
2
|
-
import { JsonAbi } from 'fuels'
|
2
|
+
import { Contract, JsonAbi } from 'fuels'
|
3
3
|
// import { FuelCall } from './context.js'
|
4
4
|
import { FuelChainId } from '@sentio/chain'
|
5
5
|
import { FuelLog, FuelProcessorState } from './types.js'
|
6
6
|
|
7
|
-
export abstract class FuelAbstractProcessor extends FuelProcessor {
|
8
|
-
protected constructor(abi: JsonAbi, config?: FuelProcessorConfig) {
|
7
|
+
export abstract class FuelAbstractProcessor<TContract extends Contract> extends FuelProcessor<TContract> {
|
8
|
+
protected constructor(abi: JsonAbi, config?: Omit<FuelProcessorConfig, 'abi'>) {
|
9
9
|
if (!config) {
|
10
10
|
config = {
|
11
11
|
chainId: FuelChainId.FUEL_MAINNET,
|
12
12
|
address: '*'
|
13
13
|
}
|
14
14
|
}
|
15
|
-
|
16
|
-
|
15
|
+
super({
|
16
|
+
...config,
|
17
|
+
abi
|
18
|
+
})
|
17
19
|
FuelProcessorState.INSTANCE.addValue(this)
|
18
20
|
}
|
19
21
|
}
|
@@ -115,7 +115,7 @@ async function codegenInternal(abisDir: string, outDir: string): Promise<number>
|
|
115
115
|
/* tslint:disable */
|
116
116
|
/* eslint-disable */
|
117
117
|
|
118
|
-
import { FuelAbstractProcessor,
|
118
|
+
import { FuelAbstractProcessor, FuelContractContext, FuelProcessorConfig, TypedCall, FuelFetchConfig, FuelCall, FuelLog} from '@sentio/sdk/fuel'
|
119
119
|
import {${abi.commonTypesInUse.join(',')}} from './common.js'
|
120
120
|
import {${importedTypes.join(',')}, ${abi.capitalizedName}} from './${abi.capitalizedName}.js'
|
121
121
|
|
@@ -144,13 +144,9 @@ ${
|
|
144
144
|
}
|
145
145
|
}
|
146
146
|
|
147
|
-
export class ${name}Processor extends FuelAbstractProcessor {
|
148
|
-
|
149
|
-
|
150
|
-
}
|
151
|
-
|
152
|
-
static bind(config: FuelProcessorConfig) {
|
153
|
-
return new ${name}Processor({
|
147
|
+
export class ${name}Processor extends FuelAbstractProcessor<${name}> {
|
148
|
+
static bind(config: Omit<FuelProcessorConfig, 'abi'>) {
|
149
|
+
return new ${name}Processor(${abi.capitalizedName}.abi, {
|
154
150
|
name: '${name}',
|
155
151
|
...config,
|
156
152
|
})
|
@@ -162,7 +158,9 @@ ${
|
|
162
158
|
abi.functions.map((f) => genOnCallFunction(name, f)).join('\n') */
|
163
159
|
}
|
164
160
|
|
165
|
-
${Object.entries(logByTypes)
|
161
|
+
${Object.entries(logByTypes)
|
162
|
+
.map((e) => genOnLogFunction(name, e))
|
163
|
+
.join('\n')}
|
166
164
|
|
167
165
|
}
|
168
166
|
`
|
@@ -200,7 +198,7 @@ function genCallType(f: IFunction) {
|
|
200
198
|
function genOnCallFunction(contractName: string, f: IFunction) {
|
201
199
|
const name = upperFirst(f.name)
|
202
200
|
return `
|
203
|
-
onCall${name}(handler: (call: ${contractName}.${name}Call, ctx:
|
201
|
+
onCall${name}(handler: (call: ${contractName}.${name}Call, ctx: FuelContractContext<${contractName}>) => void | Promise<void>, config?: FuelFetchConfig) {
|
204
202
|
return super.onCall('${f.name}', (call, ctx) => handler(new ${contractName}.${name}Call(call), ctx), config)
|
205
203
|
}`
|
206
204
|
}
|
@@ -217,10 +215,10 @@ function collectImportedTypes(types: any[]): string[] {
|
|
217
215
|
return Array.from(ret)
|
218
216
|
}
|
219
217
|
|
220
|
-
function genOnLogFunction([type, ids]: [string, string[]]) {
|
218
|
+
function genOnLogFunction(contractName: string, [type, ids]: [string, string[]]) {
|
221
219
|
const name = getTypeName(type)
|
222
220
|
return `
|
223
|
-
onLog${name}(handler: (log: FuelLog<${type}>, ctx:
|
221
|
+
onLog${name}(handler: (log: FuelLog<${type}>, ctx: FuelContractContext<${contractName}>) => void | Promise<void>, logIdFilter?: string | string[]) {
|
224
222
|
return super.onLog<${type}>(logIdFilter ?? [${ids.map((id) => `"${id}"`).join(', ')}], (log, ctx) => handler(log, ctx))
|
225
223
|
}`
|
226
224
|
}
|
package/src/fuel/context.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { BaseContext, Labels, normalizeLabels } from '../core/index.js'
|
2
2
|
import { ChainId } from '@sentio/chain'
|
3
3
|
import { RecordMetaData } from '@sentio/protos'
|
4
|
-
import type { CallResult } from 'fuels'
|
4
|
+
import type { CallResult, Contract } from 'fuels'
|
5
5
|
import { InvocationScopeLike } from 'fuels'
|
6
6
|
import { FuelTransaction } from './transaction.js'
|
7
7
|
import { FuelLog } from './types.js'
|
@@ -51,3 +51,15 @@ export class FuelContext extends BaseContext {
|
|
51
51
|
}
|
52
52
|
}
|
53
53
|
}
|
54
|
+
|
55
|
+
export class FuelContractContext<TContract extends Contract> extends FuelContext {
|
56
|
+
constructor(
|
57
|
+
readonly chainId: ChainId,
|
58
|
+
readonly contract: TContract,
|
59
|
+
readonly contractAddress: string,
|
60
|
+
readonly contractName: string,
|
61
|
+
readonly transaction: FuelTransaction | null
|
62
|
+
) {
|
63
|
+
super(chainId, contractAddress, contractName, transaction)
|
64
|
+
}
|
65
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Data_FuelCall, FuelCallFilter, ProcessResult } from '@sentio/protos'
|
2
|
-
import { FuelCall, FuelContext } from './context.js'
|
2
|
+
import { FuelCall, FuelContext, FuelContractContext } from './context.js'
|
3
3
|
import { bn, Contract, Interface, JsonAbi, Provider } from 'fuels'
|
4
4
|
import { FuelNetwork, getRpcEndpoint } from './network.js'
|
5
5
|
import {
|
@@ -11,12 +11,13 @@ import {
|
|
11
11
|
import { CallHandler, FuelBaseProcessor, FuelLog, FuelProcessorState } from './types.js'
|
12
12
|
import { mergeProcessResults } from '@sentio/runtime'
|
13
13
|
|
14
|
-
export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
14
|
+
export class FuelProcessor<TContract extends Contract> implements FuelBaseProcessor<FuelProcessorConfig> {
|
15
15
|
callHandlers: CallHandler<Data_FuelCall>[] = []
|
16
16
|
|
17
17
|
private provider: Provider
|
18
|
+
private contract: TContract
|
18
19
|
|
19
|
-
static bind(config: FuelProcessorConfig): FuelProcessor {
|
20
|
+
static bind(config: FuelProcessorConfig): FuelProcessor<any> {
|
20
21
|
const processor = new FuelProcessor(config)
|
21
22
|
FuelProcessorState.INSTANCE.addValue(processor)
|
22
23
|
return processor
|
@@ -37,10 +38,12 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
37
38
|
this.latestGasPrice = latestGasPrice?.gasPrice
|
38
39
|
return bn(latestGasPrice.gasPrice)
|
39
40
|
}
|
41
|
+
|
42
|
+
this.contract = new Contract(this.config.address, this.config.abi!, this.provider) as TContract
|
40
43
|
}
|
41
44
|
|
42
45
|
public onTransaction(
|
43
|
-
handler: (transaction: FuelTransaction, ctx:
|
46
|
+
handler: (transaction: FuelTransaction, ctx: FuelContractContext<TContract>) => void | Promise<void>,
|
44
47
|
config: FuelFetchConfig = DEFAULT_FUEL_FETCH_CONFIG
|
45
48
|
) {
|
46
49
|
const callHandler = {
|
@@ -52,8 +55,9 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
52
55
|
: {}
|
53
56
|
const tx = await decodeFuelTransactionWithAbi(call.transaction, abiMap, this.provider)
|
54
57
|
|
55
|
-
const ctx = new
|
58
|
+
const ctx = new FuelContractContext(
|
56
59
|
this.config.chainId,
|
60
|
+
this.contract,
|
57
61
|
this.config.address,
|
58
62
|
this.config.name ?? this.config.address,
|
59
63
|
tx
|
@@ -101,7 +105,7 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
101
105
|
const callHandler = {
|
102
106
|
handler: async (call: Data_FuelCall) => {
|
103
107
|
try {
|
104
|
-
const contract = new Contract(this.config.address, abi, this.provider)
|
108
|
+
// const contract = new Contract(this.config.address, abi, this.provider)
|
105
109
|
const gqlTransaction = call.transaction
|
106
110
|
const tx = await decodeFuelTransactionWithAbi(gqlTransaction, { [this.config.address]: abi }, this.provider)
|
107
111
|
|
@@ -114,7 +118,7 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
114
118
|
for (const op of tx.operations) {
|
115
119
|
for (const call of op.calls || []) {
|
116
120
|
if (names.has(call.functionName)) {
|
117
|
-
const fn = contract.functions[call.functionName]
|
121
|
+
const fn = this.contract.functions[call.functionName]
|
118
122
|
const args = Object.values(call.argumentsProvided || {})
|
119
123
|
const scope = fn(...args)
|
120
124
|
const invocationResult = new FuelCall(scope, tx, false, call.argumentsProvided, tx.logs)
|
@@ -147,7 +151,7 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
147
151
|
|
148
152
|
public onLog<T>(
|
149
153
|
logIdFilter: string | string[],
|
150
|
-
handler: (logs: FuelLog<T>, ctx:
|
154
|
+
handler: (logs: FuelLog<T>, ctx: FuelContractContext<TContract>) => void | Promise<void>
|
151
155
|
) {
|
152
156
|
const logIds = new Set(Array.isArray(logIdFilter) ? logIdFilter : [logIdFilter])
|
153
157
|
|
@@ -164,8 +168,9 @@ export class FuelProcessor implements FuelBaseProcessor<FuelProcessorConfig> {
|
|
164
168
|
const results: ProcessResult[] = []
|
165
169
|
const logs = (tx.logs || []).filter((log) => logIds.has(log.logId))
|
166
170
|
for (const log of logs) {
|
167
|
-
const ctx = new
|
171
|
+
const ctx = new FuelContractContext(
|
168
172
|
this.config.chainId,
|
173
|
+
this.contract,
|
169
174
|
this.config.address,
|
170
175
|
this.config.name ?? this.config.address,
|
171
176
|
tx
|
@@ -203,5 +208,5 @@ export type FuelProcessorConfig = {
|
|
203
208
|
chainId: FuelNetwork
|
204
209
|
startBlock?: bigint
|
205
210
|
endBlock?: bigint
|
206
|
-
abi
|
211
|
+
abi: JsonAbi
|
207
212
|
}
|