@sentio/sdk 2.41.3-rc.3 → 2.41.3-rc.5
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/btc/btc-plugin.d.ts +17 -0
- package/lib/btc/btc-plugin.d.ts.map +1 -0
- package/lib/btc/btc-plugin.js +75 -0
- package/lib/btc/btc-plugin.js.map +1 -0
- package/lib/btc/btc-processor.d.ts +25 -0
- package/lib/btc/btc-processor.d.ts.map +1 -0
- package/lib/btc/btc-processor.js +30 -0
- package/lib/btc/btc-processor.js.map +1 -0
- package/lib/btc/index.d.ts +4 -0
- package/lib/btc/index.d.ts.map +1 -0
- package/lib/btc/index.js +4 -0
- package/lib/btc/index.js.map +1 -0
- package/lib/btc/types.d.ts +71 -0
- package/lib/btc/types.d.ts.map +1 -0
- package/lib/btc/types.js +31 -0
- package/lib/btc/types.js.map +1 -0
- package/lib/store/convert.d.ts.map +1 -1
- package/lib/store/convert.js +6 -2
- package/lib/store/convert.js.map +1 -1
- package/lib/store/convert.test.js.map +1 -1
- package/lib/testing/btc-facet.d.ts +10 -0
- package/lib/testing/btc-facet.d.ts.map +1 -0
- package/lib/testing/btc-facet.js +38 -0
- package/lib/testing/btc-facet.js.map +1 -0
- package/lib/testing/test-processor-server.d.ts +2 -0
- package/lib/testing/test-processor-server.d.ts.map +1 -1
- package/lib/testing/test-processor-server.js +3 -0
- package/lib/testing/test-processor-server.js.map +1 -1
- package/package.json +6 -5
- package/src/btc/btc-plugin.ts +105 -0
- package/src/btc/btc-processor.ts +50 -0
- package/src/btc/index.ts +3 -0
- package/src/btc/types.ts +93 -0
- package/src/store/convert.ts +6 -2
- package/src/testing/btc-facet.ts +45 -0
- package/src/testing/test-processor-server.ts +3 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Plugin } from '@sentio/runtime';
|
2
|
+
import { Data_BTCTransaction, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos';
|
3
|
+
interface Handlers {
|
4
|
+
txHandlers: ((trace: Data_BTCTransaction) => Promise<ProcessResult>)[];
|
5
|
+
}
|
6
|
+
export declare class BTCPlugin extends Plugin {
|
7
|
+
name: string;
|
8
|
+
handlers: Handlers;
|
9
|
+
configure(config: ProcessConfigResponse): Promise<void>;
|
10
|
+
supportedHandlers: HandlerType[];
|
11
|
+
processBinding(request: DataBinding): Promise<ProcessResult>;
|
12
|
+
start(request: StartRequest): Promise<void>;
|
13
|
+
stateDiff(config: ProcessConfigResponse): boolean;
|
14
|
+
processTransaction(binding: DataBinding): Promise<ProcessResult>;
|
15
|
+
}
|
16
|
+
export {};
|
17
|
+
//# sourceMappingURL=btc-plugin.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-plugin.d.ts","sourceRoot":"","sources":["../../src/btc/btc-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,MAAM,EAAiC,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAEL,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAA;AAMvB,UAAU,QAAQ;IAChB,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAA;CACvE;AAED,qBAAa,SAAU,SAAQ,MAAM;IACnC,IAAI,EAAE,MAAM,CAAc;IAC1B,QAAQ,EAAE,QAAQ,CAEjB;IAEK,SAAS,CAAC,MAAM,EAAE,qBAAqB;IAqC7C,iBAAiB,gBAAgC;IAEjD,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAStD,KAAK,CAAC,OAAO,EAAE,YAAY;IAEjC,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI3C,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAuBvE"}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime';
|
2
|
+
import { ContractConfig, HandlerType } from '@sentio/protos';
|
3
|
+
import { ServerError, Status } from 'nice-grpc';
|
4
|
+
import { TemplateInstanceState } from '../core/template.js';
|
5
|
+
import { BTCProcessorState } from './btc-processor.js';
|
6
|
+
export class BTCPlugin extends Plugin {
|
7
|
+
name = 'BTCPlugin';
|
8
|
+
handlers = {
|
9
|
+
txHandlers: []
|
10
|
+
};
|
11
|
+
async configure(config) {
|
12
|
+
const handlers = {
|
13
|
+
txHandlers: []
|
14
|
+
};
|
15
|
+
for (const processor of BTCProcessorState.INSTANCE.getValues()) {
|
16
|
+
const contractConfig = ContractConfig.fromPartial({
|
17
|
+
processorType: USER_PROCESSOR,
|
18
|
+
contract: {
|
19
|
+
name: processor.config.name,
|
20
|
+
chainId: processor.config.chainId.toString(),
|
21
|
+
address: processor.config.address || '*',
|
22
|
+
abi: ''
|
23
|
+
},
|
24
|
+
startBlock: processor.config.startBlock,
|
25
|
+
endBlock: processor.config.endBlock
|
26
|
+
});
|
27
|
+
for (const callHandler of processor.callHandlers) {
|
28
|
+
const handlerId = handlers.txHandlers.push(callHandler.handler) - 1;
|
29
|
+
contractConfig.btcTransactionConfigs.push({
|
30
|
+
filters: [
|
31
|
+
{
|
32
|
+
address: contractConfig.contract?.address || '*'
|
33
|
+
}
|
34
|
+
],
|
35
|
+
handlerId
|
36
|
+
});
|
37
|
+
}
|
38
|
+
// Finish up a contract
|
39
|
+
config.contractConfigs.push(contractConfig);
|
40
|
+
}
|
41
|
+
this.handlers = handlers;
|
42
|
+
}
|
43
|
+
supportedHandlers = [HandlerType.BTC_TRANSACTION];
|
44
|
+
processBinding(request) {
|
45
|
+
switch (request.handlerType) {
|
46
|
+
case HandlerType.BTC_TRANSACTION:
|
47
|
+
return this.processTransaction(request);
|
48
|
+
default:
|
49
|
+
throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
async start(request) { }
|
53
|
+
stateDiff(config) {
|
54
|
+
return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length;
|
55
|
+
}
|
56
|
+
async processTransaction(binding) {
|
57
|
+
if (!binding.data?.btcTransaction) {
|
58
|
+
throw new ServerError(Status.INVALID_ARGUMENT, "BTCEvents can't be null");
|
59
|
+
}
|
60
|
+
const promises = [];
|
61
|
+
const result = binding.data?.btcTransaction;
|
62
|
+
for (const handlerId of binding.handlerIds) {
|
63
|
+
const promise = this.handlers.txHandlers[handlerId](binding.data?.btcTransaction).catch((e) => {
|
64
|
+
throw new ServerError(Status.INTERNAL, 'error processing transaction: ' + JSON.stringify(result) + '\n' + errorString(e));
|
65
|
+
});
|
66
|
+
if (GLOBAL_CONFIG.execution.sequential) {
|
67
|
+
await promise;
|
68
|
+
}
|
69
|
+
promises.push(promise);
|
70
|
+
}
|
71
|
+
return mergeProcessResults(await Promise.all(promises));
|
72
|
+
}
|
73
|
+
}
|
74
|
+
PluginManager.INSTANCE.register(new BTCPlugin());
|
75
|
+
//# sourceMappingURL=btc-plugin.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-plugin.js","sourceRoot":"","sources":["../../src/btc/btc-plugin.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { ListStateStorage } from '@sentio/runtime';
|
2
|
+
import { BTCContext, Transaction } from './types.js';
|
3
|
+
import { Data_BTCTransaction, ProcessResult } from '@sentio/protos';
|
4
|
+
export declare class BTCProcessorState extends ListStateStorage<BTCProcessor> {
|
5
|
+
static INSTANCE: BTCProcessorState;
|
6
|
+
}
|
7
|
+
export declare class BTCProcessor {
|
8
|
+
readonly config: BTCProcessorConfig;
|
9
|
+
callHandlers: CallHandler<Data_BTCTransaction>[];
|
10
|
+
constructor(config: BTCProcessorConfig);
|
11
|
+
static bind(config: BTCProcessorConfig): BTCProcessor;
|
12
|
+
onTransaction(handler: (transaction: Transaction, ctx: BTCContext) => void | Promise<void>): this;
|
13
|
+
}
|
14
|
+
interface BTCProcessorConfig {
|
15
|
+
chainId: string;
|
16
|
+
name?: string;
|
17
|
+
address: string;
|
18
|
+
startBlock?: bigint;
|
19
|
+
endBlock?: bigint;
|
20
|
+
}
|
21
|
+
export type CallHandler<T> = {
|
22
|
+
handler: (call: T) => Promise<ProcessResult>;
|
23
|
+
};
|
24
|
+
export {};
|
25
|
+
//# sourceMappingURL=btc-processor.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-processor.d.ts","sourceRoot":"","sources":["../../src/btc/btc-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnE,qBAAa,iBAAkB,SAAQ,gBAAgB,CAAC,YAAY,CAAC;IACnE,MAAM,CAAC,QAAQ,oBAA0B;CAC1C;AAED,qBAAa,YAAY;IAGX,QAAQ,CAAC,MAAM,EAAE,kBAAkB;IAF/C,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAK;gBAEhC,MAAM,EAAE,kBAAkB;IAE/C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY;IAM9C,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBlG;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CAC7C,CAAA"}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { ListStateStorage } from '@sentio/runtime';
|
2
|
+
import { BTCContext } from './types.js';
|
3
|
+
export class BTCProcessorState extends ListStateStorage {
|
4
|
+
static INSTANCE = new BTCProcessorState();
|
5
|
+
}
|
6
|
+
export class BTCProcessor {
|
7
|
+
config;
|
8
|
+
callHandlers = [];
|
9
|
+
constructor(config) {
|
10
|
+
this.config = config;
|
11
|
+
}
|
12
|
+
static bind(config) {
|
13
|
+
const processor = new BTCProcessor(config);
|
14
|
+
BTCProcessorState.INSTANCE.addValue(processor);
|
15
|
+
return processor;
|
16
|
+
}
|
17
|
+
onTransaction(handler) {
|
18
|
+
const callHandler = {
|
19
|
+
handler: async (call) => {
|
20
|
+
const tx = call.transaction;
|
21
|
+
const ctx = new BTCContext(this.config.chainId, this.config.name ?? this.config.address ?? '', tx, this.config.address);
|
22
|
+
await handler(tx, ctx);
|
23
|
+
return ctx.stopAndGetResult();
|
24
|
+
}
|
25
|
+
};
|
26
|
+
this.callHandlers.push(callHandler);
|
27
|
+
return this;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=btc-processor.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-processor.js","sourceRoot":"","sources":["../../src/btc/btc-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAe,MAAM,YAAY,CAAA;AAGpD,MAAM,OAAO,iBAAkB,SAAQ,gBAA8B;IACnE,MAAM,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAA;;AAG3C,MAAM,OAAO,YAAY;IAGF;IAFrB,YAAY,GAAuC,EAAE,CAAA;IAErD,YAAqB,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAEnD,MAAM,CAAC,IAAI,CAAC,MAA0B;QACpC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QAC1C,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC9C,OAAO,SAAS,CAAA;IAClB,CAAC;IAEM,aAAa,CAAC,OAA4E;QAC/F,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK,EAAE,IAAyB,EAAE,EAAE;gBAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,WAA0B,CAAA;gBAE1C,MAAM,GAAG,GAAG,IAAI,UAAU,CACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAC7C,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACpB,CAAA;gBACD,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACtB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;SACF,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/btc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA"}
|
package/lib/btc/index.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/btc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA"}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { BaseContext, Labels } from '../core/index.js';
|
2
|
+
import { RecordMetaData } from '@sentio/protos';
|
3
|
+
import { ChainId } from '@sentio/chain';
|
4
|
+
type Vin = {
|
5
|
+
txid: string;
|
6
|
+
vout: number;
|
7
|
+
is_coinbase: boolean;
|
8
|
+
scriptsig: string;
|
9
|
+
scriptsig_asm: string;
|
10
|
+
inner_redeemscript_asm?: string;
|
11
|
+
inner_witnessscript_asm?: string;
|
12
|
+
sequence: number;
|
13
|
+
witness: string[];
|
14
|
+
prevout: Vout;
|
15
|
+
is_pegin?: boolean;
|
16
|
+
issuance?: {
|
17
|
+
asset_id: string;
|
18
|
+
is_reissuance: boolean;
|
19
|
+
asset_blinding_nonce: string;
|
20
|
+
asset_entropy: string;
|
21
|
+
contract_hash: string;
|
22
|
+
assetamount?: number;
|
23
|
+
assetamountcommitment?: string;
|
24
|
+
tokenamount?: number;
|
25
|
+
tokenamountcommitment?: string;
|
26
|
+
};
|
27
|
+
};
|
28
|
+
type Vout = {
|
29
|
+
scriptpubkey: string;
|
30
|
+
scriptpubkey_asm: string;
|
31
|
+
scriptpubkey_type: string;
|
32
|
+
scriptpubkey_address: string;
|
33
|
+
value: number;
|
34
|
+
valuecommitment?: string;
|
35
|
+
asset?: string;
|
36
|
+
assetcommitment?: string;
|
37
|
+
pegout?: {
|
38
|
+
genesis_hash: string;
|
39
|
+
scriptpubkey: string;
|
40
|
+
scriptpubkey_asm: string;
|
41
|
+
scriptpubkey_address: string;
|
42
|
+
};
|
43
|
+
};
|
44
|
+
type Status = {
|
45
|
+
confirmed: boolean;
|
46
|
+
block_height?: number;
|
47
|
+
block_hash?: string;
|
48
|
+
block_time?: number;
|
49
|
+
};
|
50
|
+
export type Transaction = {
|
51
|
+
txid: string;
|
52
|
+
version: number;
|
53
|
+
locktime: number;
|
54
|
+
size: number;
|
55
|
+
weight: number;
|
56
|
+
fee: number;
|
57
|
+
vin: Vin[];
|
58
|
+
vout: Vout[];
|
59
|
+
status: Status;
|
60
|
+
};
|
61
|
+
export declare class BTCContext extends BaseContext {
|
62
|
+
readonly chainId: string;
|
63
|
+
readonly name: string;
|
64
|
+
readonly tx: Transaction;
|
65
|
+
readonly address: string;
|
66
|
+
constructor(chainId: string, name: string, tx: Transaction, address: string);
|
67
|
+
protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
|
68
|
+
getChainId(): ChainId;
|
69
|
+
}
|
70
|
+
export {};
|
71
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/btc/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,KAAK,GAAG,GAAG;IACT,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,IAAI,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,aAAa,EAAE,OAAO,CAAA;QACtB,oBAAoB,EAAE,MAAM,CAAA;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAC/B,CAAA;CACF,CAAA;AAED,KAAK,IAAI,GAAG;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE;QACP,YAAY,EAAE,MAAM,CAAA;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,oBAAoB,EAAE,MAAM,CAAA;KAC7B,CAAA;CACF,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,GAAG,EAAE,CAAA;IACV,IAAI,EAAE,IAAI,EAAE,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,qBAAa,UAAW,SAAQ,WAAW;IAEvC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,WAAW;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAHf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,MAAM;IAK1B,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAc3E,UAAU,IAAI,OAAO;CAGtB"}
|
package/lib/btc/types.js
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
import { BaseContext, normalizeLabels } from '../core/index.js';
|
2
|
+
export class BTCContext extends BaseContext {
|
3
|
+
chainId;
|
4
|
+
name;
|
5
|
+
tx;
|
6
|
+
address;
|
7
|
+
constructor(chainId, name, tx, address) {
|
8
|
+
super({});
|
9
|
+
this.chainId = chainId;
|
10
|
+
this.name = name;
|
11
|
+
this.tx = tx;
|
12
|
+
this.address = address;
|
13
|
+
}
|
14
|
+
getMetaDataInternal(name, labels) {
|
15
|
+
return {
|
16
|
+
address: this.address,
|
17
|
+
contractName: this.name,
|
18
|
+
blockNumber: BigInt(this.tx.status?.block_time ?? 0),
|
19
|
+
transactionIndex: 0,
|
20
|
+
transactionHash: this.tx.txid,
|
21
|
+
chainId: this.getChainId(),
|
22
|
+
name: name,
|
23
|
+
logIndex: 0,
|
24
|
+
labels: normalizeLabels(labels)
|
25
|
+
};
|
26
|
+
}
|
27
|
+
getChainId() {
|
28
|
+
return this.chainId;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/btc/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAiEvE,MAAM,OAAO,UAAW,SAAQ,WAAW;IAE9B;IACA;IACA;IACA;IAJX,YACW,OAAe,EACf,IAAY,EACZ,EAAe,EACf,OAAe;QAExB,KAAK,CAAC,EAAE,CAAC,CAAA;QALA,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAQ;QACZ,OAAE,GAAF,EAAE,CAAa;QACf,YAAO,GAAP,OAAO,CAAQ;IAG1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,CAAC;YACpD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;YAC7B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAkB,CAAA;IAChC,CAAC;CACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/store/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAA;IAC7B,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,kBAAkB,OAAgE,CAAA;AAE/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAkBxF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAgB3E;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAgBlG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CA8BvE;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAc9D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,SAAS,CAcxD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAc5D,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,OAAO,GAAG,SAAS,CAchE,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,SAAS,GAAG,SAAS,CAcpE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAc5D,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,EAAE,GAAG,SAAS,CA0BtD,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,UAAU,GAAG,SAAS,
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/store/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAuB,MAAM,gBAAgB,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAA;IAC7B,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,kBAAkB,OAAgE,CAAA;AAE/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAkBxF;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAgB3E;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAgBlG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC,CA8BvE;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAc9D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,GAAG,GAAG,SAAS,CAcxD,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAc5D,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,CAAC,OAAO,GAAG,SAAS,CAchE,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,SAAS,GAAG,SAAS,CAcpE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,CAAC,KAAK,GAAG,SAAS,CAc5D,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,cAAc,CAAC,EAAE,GAAG,SAAS,CA0BtD,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC,UAAU,GAAG,SAAS,CAmCtE,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAqB9D,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,UAM9C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM;;;EAerC;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAW9D,CAAA"}
|
package/lib/store/convert.js
CHANGED
@@ -208,11 +208,15 @@ export const BigDecimalConverter = {
|
|
208
208
|
nullValue: RichValue_NullValue.NULL_VALUE
|
209
209
|
};
|
210
210
|
}
|
211
|
-
const s = (value.c || [])
|
211
|
+
const s = (value.c || [])
|
212
|
+
.map((v, idx) => {
|
213
|
+
return idx == 0 ? v.toString() : v.toString().padStart(14, '0');
|
214
|
+
})
|
215
|
+
.join('');
|
212
216
|
const exp = -(s.length - (value.e ?? 0) - 1);
|
213
217
|
return {
|
214
218
|
bigdecimalValue: {
|
215
|
-
value: toBigInteger(BigInt(s)),
|
219
|
+
value: toBigInteger(BigInt(s) * BigInt(value.s ?? 1)),
|
216
220
|
exp: exp
|
217
221
|
}
|
218
222
|
};
|
package/lib/store/convert.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/store/convert.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/store/convert.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"convert.test.js","sourceRoot":"","sources":["../../src/store/convert.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAA;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAA;QAChB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAG,6DAA6D,CAAA;QACvE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,oEAAoE;QACpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,oEAAoE;QACpE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAA;QAC1C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,aAAa,CACX,IAAI,UAAU,CAAC,kEAAkE,CAAC,EAClF,mBAAmB,CACpB,CAAA;QACD,aAAa,CAAC,IAAI,UAAU,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,SAAS,aAAa,CAAI,KAAQ,EAAE,SAA4B;QAC9D,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA"}
|
1
|
+
{"version":3,"file":"convert.test.js","sourceRoot":"","sources":["../../src/store/convert.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAkB,MAAM,cAAc,CAAA;AACpG,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAA;QAChB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAG,6DAA6D,CAAA;QACvE,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,oEAAoE;QACpE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAA;QACnC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,oEAAoE;QACpE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAA;QAC1C,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,aAAa,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAA;QAC5D,aAAa,CAAC,IAAI,UAAU,CAAC,uBAAuB,CAAC,EAAE,mBAAmB,CAAC,CAAA;QAC3E,aAAa,CAAC,IAAI,UAAU,CAAC,sBAAsB,CAAC,EAAE,mBAAmB,CAAC,CAAA;QAC1E,aAAa,CACX,IAAI,UAAU,CAAC,kEAAkE,CAAC,EAClF,mBAAmB,CACpB,CAAA;QACD,aAAa,CAAC,IAAI,UAAU,CAAC,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,SAAS,aAAa,CAAI,KAAQ,EAAE,SAA4B;QAC9D,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { TestProcessorServer } from './test-processor-server.js';
|
2
|
+
import { BTCChainId } from '@sentio/chain';
|
3
|
+
import '../btc/btc-plugin.js';
|
4
|
+
export declare class BTCFacet {
|
5
|
+
server: TestProcessorServer;
|
6
|
+
constructor(server: TestProcessorServer);
|
7
|
+
testOnTransactions(events: any, network?: BTCChainId): Promise<import("@sentio/protos").ProcessBindingResponse>;
|
8
|
+
private buildBinding;
|
9
|
+
}
|
10
|
+
//# sourceMappingURL=btc-facet.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-facet.d.ts","sourceRoot":"","sources":["../../src/testing/btc-facet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,sBAAsB,CAAA;AAE7B,qBAAa,QAAQ;IACnB,MAAM,EAAE,mBAAmB,CAAA;gBAEf,MAAM,EAAE,mBAAmB;IAIvC,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,GAAE,UAAmC;IAW5E,OAAO,CAAC,YAAY;CAqBrB"}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { HandlerType } from '@sentio/protos';
|
2
|
+
import { BTCChainId } from '@sentio/chain';
|
3
|
+
import '../btc/btc-plugin.js';
|
4
|
+
export class BTCFacet {
|
5
|
+
server;
|
6
|
+
constructor(server) {
|
7
|
+
this.server = server;
|
8
|
+
}
|
9
|
+
testOnTransactions(events, network = BTCChainId.BTC_TESTNET) {
|
10
|
+
const bindings = this.buildBinding(events, network);
|
11
|
+
if (!bindings) {
|
12
|
+
throw Error('Invalid test : ' + JSON.stringify(events));
|
13
|
+
}
|
14
|
+
return this.server.processBindings({
|
15
|
+
bindings
|
16
|
+
});
|
17
|
+
}
|
18
|
+
buildBinding(data, network) {
|
19
|
+
const res = [];
|
20
|
+
for (const config of this.server.contractConfigs) {
|
21
|
+
if (config.contract?.chainId !== network) {
|
22
|
+
continue;
|
23
|
+
}
|
24
|
+
for (const txConfig of config.btcTransactionConfigs) {
|
25
|
+
const binding = {
|
26
|
+
data: {
|
27
|
+
btcTransaction: data
|
28
|
+
},
|
29
|
+
handlerIds: [txConfig.handlerId],
|
30
|
+
handlerType: HandlerType.BTC_TRANSACTION
|
31
|
+
};
|
32
|
+
res.push(binding);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
return res;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
//# sourceMappingURL=btc-facet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"btc-facet.js","sourceRoot":"","sources":["../../src/testing/btc-facet.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,sBAAsB,CAAA;AAE7B,MAAM,OAAO,QAAQ;IACnB,MAAM,CAAqB;IAE3B,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,kBAAkB,CAAC,MAAW,EAAE,UAAsB,UAAU,CAAC,WAAW;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACjC,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAEO,YAAY,CAAC,IAAS,EAAE,OAAmB;QACjD,MAAM,GAAG,GAAkB,EAAE,CAAA;QAE7B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;gBACzC,SAAQ;YACV,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG;oBACd,IAAI,EAAE;wBACJ,cAAc,EAAE,IAAI;qBACrB;oBACD,UAAU,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAChC,WAAW,EAAE,WAAW,CAAC,eAAe;iBAC1B,CAAA;gBAChB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
|
@@ -8,6 +8,7 @@ import { SuiFacet } from './sui-facet.js';
|
|
8
8
|
import { FuelFacet } from './fuel-facet.js';
|
9
9
|
import { CosmosFacet } from './cosmos-facet.js';
|
10
10
|
import { StarknetFacet } from './starknet-facet.js';
|
11
|
+
import { BTCFacet } from './btc-facet.js';
|
11
12
|
export declare const TEST_CONTEXT: CallContext;
|
12
13
|
export declare function cleanTest(): void;
|
13
14
|
export declare class TestProcessorServer implements ProcessorServiceImplementation {
|
@@ -21,6 +22,7 @@ export declare class TestProcessorServer implements ProcessorServiceImplementati
|
|
21
22
|
fuel: FuelFacet;
|
22
23
|
cosmos: CosmosFacet;
|
23
24
|
starknet: StarknetFacet;
|
25
|
+
btc: BTCFacet;
|
24
26
|
constructor(loader: () => Promise<any>, httpEndpoints?: Record<string, string>);
|
25
27
|
start(request?: StartRequest, context?: CallContext): Promise<Empty>;
|
26
28
|
stop(request: Empty, context?: CallContext): Promise<Empty>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test-processor-server.d.ts","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAa,oBAAoB,EAAS,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"test-processor-server.d.ts","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,EACL,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAa,oBAAoB,EAAS,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,eAAO,MAAM,YAAY,EAAE,WAA6B,CAAA;AAExD,wBAAgB,SAAS,SAExB;AAED,qBAAa,mBAAoB,YAAW,8BAA8B;IACxE,OAAO,EAAE,oBAAoB,CAAA;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,cAAc,EAAE,aAAa,EAAE,CAAA;IAE/B,KAAK,EAAE,UAAU,CAAA;IACjB,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,aAAa,CAAA;IACvB,GAAG,EAAE,QAAQ,CAAA;gBAED,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAmB5E,KAAK,CAAC,OAAO,GAAE,YAAwC,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAQtG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhG,eAAe,CACb,OAAO,EAAE,sBAAsB,EAC/B,OAAO,GAAE,WAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAIlC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,WAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI1G,qBAAqB,CACnB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,OAAO,EAAE,WAAW,GACnB,2BAA2B,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAIlE,wBAAwB,CACtB,QAAQ,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAChD,OAAO,EAAE,WAAW,GACnB,2BAA2B,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;CAOtE"}
|
@@ -7,6 +7,7 @@ import { SuiFacet } from './sui-facet.js';
|
|
7
7
|
import { FuelFacet } from './fuel-facet.js';
|
8
8
|
import { CosmosFacet } from './cosmos-facet.js';
|
9
9
|
import { StarknetFacet } from './starknet-facet.js';
|
10
|
+
import { BTCFacet } from './btc-facet.js';
|
10
11
|
export const TEST_CONTEXT = {};
|
11
12
|
export function cleanTest() {
|
12
13
|
State.reset();
|
@@ -22,6 +23,7 @@ export class TestProcessorServer {
|
|
22
23
|
fuel;
|
23
24
|
cosmos;
|
24
25
|
starknet;
|
26
|
+
btc;
|
25
27
|
constructor(loader, httpEndpoints = {}) {
|
26
28
|
cleanTest();
|
27
29
|
this.service = new ProcessorServiceImpl(loader);
|
@@ -32,6 +34,7 @@ export class TestProcessorServer {
|
|
32
34
|
this.fuel = new FuelFacet(this);
|
33
35
|
this.cosmos = new CosmosFacet(this);
|
34
36
|
this.starknet = new StarknetFacet(this);
|
37
|
+
this.btc = new BTCFacet(this);
|
35
38
|
for (const k in CHAIN_MAP) {
|
36
39
|
const http = httpEndpoints[k] || '';
|
37
40
|
Endpoints.INSTANCE.chainServer.set(k, http);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.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.41.3-rc.
|
3
|
+
"version": "2.41.3-rc.5",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -39,7 +39,8 @@
|
|
39
39
|
"./fuel": "./lib/fuel/index.js",
|
40
40
|
"./fuel/codegen": "./lib/fuel/codegen/index.js",
|
41
41
|
"./store": "./lib/store/index.js",
|
42
|
-
"./store/codegen": "./lib/store/codegen.js"
|
42
|
+
"./store/codegen": "./lib/store/codegen.js",
|
43
|
+
"./btc": "./lib/btc/index.js"
|
43
44
|
},
|
44
45
|
"files": [
|
45
46
|
"{lib,src}",
|
@@ -54,7 +55,7 @@
|
|
54
55
|
"@project-serum/anchor": "^0.26.0",
|
55
56
|
"@sentio/abi-wan-kanabi": "2.2.2-1",
|
56
57
|
"@sentio/bigdecimal": "9.1.1-patch.3",
|
57
|
-
"@sentio/chain": "^2.1.
|
58
|
+
"@sentio/chain": "^2.1.6",
|
58
59
|
"@sentio/ethers-v6": "^1.0.29",
|
59
60
|
"@solana/web3.js": "1.91.8",
|
60
61
|
"@typemove/aptos": "~1.6.3",
|
@@ -83,8 +84,8 @@
|
|
83
84
|
"typechain": "^8.3.2",
|
84
85
|
"utility-types": "^3.11.0",
|
85
86
|
"yaml": "^2.3.4",
|
86
|
-
"@sentio/protos": "2.41.3-rc.
|
87
|
-
"@sentio/runtime": "^2.41.3-rc.
|
87
|
+
"@sentio/protos": "2.41.3-rc.5",
|
88
|
+
"@sentio/runtime": "^2.41.3-rc.5"
|
88
89
|
},
|
89
90
|
"peerDependencies": {
|
90
91
|
"tsup": "npm:@sentio/tsup@^6.7.2"
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'
|
2
|
+
import {
|
3
|
+
ContractConfig,
|
4
|
+
Data_BTCTransaction,
|
5
|
+
DataBinding,
|
6
|
+
HandlerType,
|
7
|
+
ProcessConfigResponse,
|
8
|
+
ProcessResult,
|
9
|
+
StartRequest
|
10
|
+
} from '@sentio/protos'
|
11
|
+
|
12
|
+
import { ServerError, Status } from 'nice-grpc'
|
13
|
+
import { TemplateInstanceState } from '../core/template.js'
|
14
|
+
import { BTCProcessorState } from './btc-processor.js'
|
15
|
+
|
16
|
+
interface Handlers {
|
17
|
+
txHandlers: ((trace: Data_BTCTransaction) => Promise<ProcessResult>)[]
|
18
|
+
}
|
19
|
+
|
20
|
+
export class BTCPlugin extends Plugin {
|
21
|
+
name: string = 'BTCPlugin'
|
22
|
+
handlers: Handlers = {
|
23
|
+
txHandlers: []
|
24
|
+
}
|
25
|
+
|
26
|
+
async configure(config: ProcessConfigResponse) {
|
27
|
+
const handlers: Handlers = {
|
28
|
+
txHandlers: []
|
29
|
+
}
|
30
|
+
|
31
|
+
for (const processor of BTCProcessorState.INSTANCE.getValues()) {
|
32
|
+
const contractConfig = ContractConfig.fromPartial({
|
33
|
+
processorType: USER_PROCESSOR,
|
34
|
+
contract: {
|
35
|
+
name: processor.config.name,
|
36
|
+
chainId: processor.config.chainId.toString(),
|
37
|
+
address: processor.config.address || '*',
|
38
|
+
abi: ''
|
39
|
+
},
|
40
|
+
startBlock: processor.config.startBlock,
|
41
|
+
endBlock: processor.config.endBlock
|
42
|
+
})
|
43
|
+
for (const callHandler of processor.callHandlers) {
|
44
|
+
const handlerId = handlers.txHandlers.push(callHandler.handler) - 1
|
45
|
+
|
46
|
+
contractConfig.btcTransactionConfigs.push({
|
47
|
+
filters: [
|
48
|
+
{
|
49
|
+
address: contractConfig.contract?.address || '*'
|
50
|
+
}
|
51
|
+
],
|
52
|
+
handlerId
|
53
|
+
})
|
54
|
+
}
|
55
|
+
|
56
|
+
// Finish up a contract
|
57
|
+
config.contractConfigs.push(contractConfig)
|
58
|
+
}
|
59
|
+
|
60
|
+
this.handlers = handlers
|
61
|
+
}
|
62
|
+
|
63
|
+
supportedHandlers = [HandlerType.BTC_TRANSACTION]
|
64
|
+
|
65
|
+
processBinding(request: DataBinding): Promise<ProcessResult> {
|
66
|
+
switch (request.handlerType) {
|
67
|
+
case HandlerType.BTC_TRANSACTION:
|
68
|
+
return this.processTransaction(request)
|
69
|
+
default:
|
70
|
+
throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
async start(request: StartRequest) {}
|
75
|
+
|
76
|
+
stateDiff(config: ProcessConfigResponse): boolean {
|
77
|
+
return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length
|
78
|
+
}
|
79
|
+
|
80
|
+
async processTransaction(binding: DataBinding): Promise<ProcessResult> {
|
81
|
+
if (!binding.data?.btcTransaction) {
|
82
|
+
throw new ServerError(Status.INVALID_ARGUMENT, "BTCEvents can't be null")
|
83
|
+
}
|
84
|
+
|
85
|
+
const promises: Promise<ProcessResult>[] = []
|
86
|
+
|
87
|
+
const result = binding.data?.btcTransaction
|
88
|
+
|
89
|
+
for (const handlerId of binding.handlerIds) {
|
90
|
+
const promise = this.handlers.txHandlers[handlerId](binding.data?.btcTransaction).catch((e) => {
|
91
|
+
throw new ServerError(
|
92
|
+
Status.INTERNAL,
|
93
|
+
'error processing transaction: ' + JSON.stringify(result) + '\n' + errorString(e)
|
94
|
+
)
|
95
|
+
})
|
96
|
+
if (GLOBAL_CONFIG.execution.sequential) {
|
97
|
+
await promise
|
98
|
+
}
|
99
|
+
promises.push(promise)
|
100
|
+
}
|
101
|
+
return mergeProcessResults(await Promise.all(promises))
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
PluginManager.INSTANCE.register(new BTCPlugin())
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { ListStateStorage } from '@sentio/runtime'
|
2
|
+
import { BTCContext, Transaction } from './types.js'
|
3
|
+
import { Data_BTCTransaction, ProcessResult } from '@sentio/protos'
|
4
|
+
|
5
|
+
export class BTCProcessorState extends ListStateStorage<BTCProcessor> {
|
6
|
+
static INSTANCE = new BTCProcessorState()
|
7
|
+
}
|
8
|
+
|
9
|
+
export class BTCProcessor {
|
10
|
+
callHandlers: CallHandler<Data_BTCTransaction>[] = []
|
11
|
+
|
12
|
+
constructor(readonly config: BTCProcessorConfig) {}
|
13
|
+
|
14
|
+
static bind(config: BTCProcessorConfig): BTCProcessor {
|
15
|
+
const processor = new BTCProcessor(config)
|
16
|
+
BTCProcessorState.INSTANCE.addValue(processor)
|
17
|
+
return processor
|
18
|
+
}
|
19
|
+
|
20
|
+
public onTransaction(handler: (transaction: Transaction, ctx: BTCContext) => void | Promise<void>) {
|
21
|
+
const callHandler = {
|
22
|
+
handler: async (call: Data_BTCTransaction) => {
|
23
|
+
const tx = call.transaction as Transaction
|
24
|
+
|
25
|
+
const ctx = new BTCContext(
|
26
|
+
this.config.chainId,
|
27
|
+
this.config.name ?? this.config.address ?? '',
|
28
|
+
tx,
|
29
|
+
this.config.address
|
30
|
+
)
|
31
|
+
await handler(tx, ctx)
|
32
|
+
return ctx.stopAndGetResult()
|
33
|
+
}
|
34
|
+
}
|
35
|
+
this.callHandlers.push(callHandler)
|
36
|
+
return this
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
interface BTCProcessorConfig {
|
41
|
+
chainId: string
|
42
|
+
name?: string
|
43
|
+
address: string
|
44
|
+
startBlock?: bigint
|
45
|
+
endBlock?: bigint
|
46
|
+
}
|
47
|
+
|
48
|
+
export type CallHandler<T> = {
|
49
|
+
handler: (call: T) => Promise<ProcessResult>
|
50
|
+
}
|
package/src/btc/index.ts
ADDED
package/src/btc/types.ts
ADDED
@@ -0,0 +1,93 @@
|
|
1
|
+
import { BaseContext, Labels, normalizeLabels } from '../core/index.js'
|
2
|
+
import { RecordMetaData } from '@sentio/protos'
|
3
|
+
import { ChainId } from '@sentio/chain'
|
4
|
+
|
5
|
+
type Vin = {
|
6
|
+
txid: string
|
7
|
+
vout: number
|
8
|
+
is_coinbase: boolean
|
9
|
+
scriptsig: string
|
10
|
+
scriptsig_asm: string
|
11
|
+
inner_redeemscript_asm?: string
|
12
|
+
inner_witnessscript_asm?: string
|
13
|
+
sequence: number
|
14
|
+
witness: string[]
|
15
|
+
prevout: Vout
|
16
|
+
is_pegin?: boolean
|
17
|
+
issuance?: {
|
18
|
+
asset_id: string
|
19
|
+
is_reissuance: boolean
|
20
|
+
asset_blinding_nonce: string
|
21
|
+
asset_entropy: string
|
22
|
+
contract_hash: string
|
23
|
+
assetamount?: number
|
24
|
+
assetamountcommitment?: string
|
25
|
+
tokenamount?: number
|
26
|
+
tokenamountcommitment?: string
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
type Vout = {
|
31
|
+
scriptpubkey: string
|
32
|
+
scriptpubkey_asm: string
|
33
|
+
scriptpubkey_type: string
|
34
|
+
scriptpubkey_address: string
|
35
|
+
value: number
|
36
|
+
valuecommitment?: string
|
37
|
+
asset?: string
|
38
|
+
assetcommitment?: string
|
39
|
+
pegout?: {
|
40
|
+
genesis_hash: string
|
41
|
+
scriptpubkey: string
|
42
|
+
scriptpubkey_asm: string
|
43
|
+
scriptpubkey_address: string
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
type Status = {
|
48
|
+
confirmed: boolean
|
49
|
+
block_height?: number
|
50
|
+
block_hash?: string
|
51
|
+
block_time?: number
|
52
|
+
}
|
53
|
+
|
54
|
+
export type Transaction = {
|
55
|
+
txid: string
|
56
|
+
version: number
|
57
|
+
locktime: number
|
58
|
+
size: number
|
59
|
+
weight: number
|
60
|
+
fee: number
|
61
|
+
vin: Vin[]
|
62
|
+
vout: Vout[]
|
63
|
+
status: Status
|
64
|
+
}
|
65
|
+
|
66
|
+
export class BTCContext extends BaseContext {
|
67
|
+
constructor(
|
68
|
+
readonly chainId: string,
|
69
|
+
readonly name: string,
|
70
|
+
readonly tx: Transaction,
|
71
|
+
readonly address: string
|
72
|
+
) {
|
73
|
+
super({})
|
74
|
+
}
|
75
|
+
|
76
|
+
protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {
|
77
|
+
return {
|
78
|
+
address: this.address,
|
79
|
+
contractName: this.name,
|
80
|
+
blockNumber: BigInt(this.tx.status?.block_time ?? 0),
|
81
|
+
transactionIndex: 0,
|
82
|
+
transactionHash: this.tx.txid,
|
83
|
+
chainId: this.getChainId(),
|
84
|
+
name: name,
|
85
|
+
logIndex: 0,
|
86
|
+
labels: normalizeLabels(labels)
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
getChainId(): ChainId {
|
91
|
+
return this.chainId as ChainId
|
92
|
+
}
|
93
|
+
}
|
package/src/store/convert.ts
CHANGED
@@ -232,12 +232,16 @@ export const BigDecimalConverter: ValueConverter<BigDecimal | undefined> = {
|
|
232
232
|
nullValue: RichValue_NullValue.NULL_VALUE
|
233
233
|
}
|
234
234
|
}
|
235
|
-
const s = (value.c || [])
|
235
|
+
const s = (value.c || [])
|
236
|
+
.map((v, idx) => {
|
237
|
+
return idx == 0 ? v.toString() : v.toString().padStart(14, '0')
|
238
|
+
})
|
239
|
+
.join('')
|
236
240
|
const exp = -(s.length - (value.e ?? 0) - 1)
|
237
241
|
|
238
242
|
return {
|
239
243
|
bigdecimalValue: {
|
240
|
-
value: toBigInteger(BigInt(s)),
|
244
|
+
value: toBigInteger(BigInt(s) * BigInt(value.s ?? 1)),
|
241
245
|
exp: exp
|
242
246
|
}
|
243
247
|
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { TestProcessorServer } from './test-processor-server.js'
|
2
|
+
import { DataBinding, HandlerType } from '@sentio/protos'
|
3
|
+
import { BTCChainId } from '@sentio/chain'
|
4
|
+
import '../btc/btc-plugin.js'
|
5
|
+
|
6
|
+
export class BTCFacet {
|
7
|
+
server: TestProcessorServer
|
8
|
+
|
9
|
+
constructor(server: TestProcessorServer) {
|
10
|
+
this.server = server
|
11
|
+
}
|
12
|
+
|
13
|
+
testOnTransactions(events: any, network: BTCChainId = BTCChainId.BTC_TESTNET) {
|
14
|
+
const bindings = this.buildBinding(events, network)
|
15
|
+
if (!bindings) {
|
16
|
+
throw Error('Invalid test : ' + JSON.stringify(events))
|
17
|
+
}
|
18
|
+
|
19
|
+
return this.server.processBindings({
|
20
|
+
bindings
|
21
|
+
})
|
22
|
+
}
|
23
|
+
|
24
|
+
private buildBinding(data: any, network: BTCChainId): DataBinding[] {
|
25
|
+
const res: DataBinding[] = []
|
26
|
+
|
27
|
+
for (const config of this.server.contractConfigs) {
|
28
|
+
if (config.contract?.chainId !== network) {
|
29
|
+
continue
|
30
|
+
}
|
31
|
+
|
32
|
+
for (const txConfig of config.btcTransactionConfigs) {
|
33
|
+
const binding = {
|
34
|
+
data: {
|
35
|
+
btcTransaction: data
|
36
|
+
},
|
37
|
+
handlerIds: [txConfig.handlerId],
|
38
|
+
handlerType: HandlerType.BTC_TRANSACTION
|
39
|
+
} as DataBinding
|
40
|
+
res.push(binding)
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return res
|
44
|
+
}
|
45
|
+
}
|
@@ -27,6 +27,7 @@ import { SuiFacet } from './sui-facet.js'
|
|
27
27
|
import { FuelFacet } from './fuel-facet.js'
|
28
28
|
import { CosmosFacet } from './cosmos-facet.js'
|
29
29
|
import { StarknetFacet } from './starknet-facet.js'
|
30
|
+
import { BTCFacet } from './btc-facet.js'
|
30
31
|
|
31
32
|
export const TEST_CONTEXT: CallContext = <CallContext>{}
|
32
33
|
|
@@ -46,6 +47,7 @@ export class TestProcessorServer implements ProcessorServiceImplementation {
|
|
46
47
|
fuel: FuelFacet
|
47
48
|
cosmos: CosmosFacet
|
48
49
|
starknet: StarknetFacet
|
50
|
+
btc: BTCFacet
|
49
51
|
|
50
52
|
constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {
|
51
53
|
cleanTest()
|
@@ -58,6 +60,7 @@ export class TestProcessorServer implements ProcessorServiceImplementation {
|
|
58
60
|
this.fuel = new FuelFacet(this)
|
59
61
|
this.cosmos = new CosmosFacet(this)
|
60
62
|
this.starknet = new StarknetFacet(this)
|
63
|
+
this.btc = new BTCFacet(this)
|
61
64
|
|
62
65
|
for (const k in CHAIN_MAP) {
|
63
66
|
const http = httpEndpoints[k] || ''
|