@sentio/sdk 2.42.0-rc.7 → 2.42.0-rc.9
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-processor.js +1 -1
- package/lib/btc/btc-processor.js.map +1 -1
- package/lib/btc/filter.d.ts +2 -2
- package/lib/btc/filter.d.ts.map +1 -1
- package/lib/btc/filter.js +23 -16
- package/lib/btc/filter.js.map +1 -1
- package/lib/btc/filter.test.js.map +1 -1
- package/lib/btc/types.d.ts +28 -27
- package/lib/btc/types.d.ts.map +1 -1
- package/lib/btc/types.js +2 -2
- package/lib/btc/types.js.map +1 -1
- package/package.json +3 -3
- package/src/btc/btc-processor.ts +1 -1
- package/src/btc/filter.ts +36 -22
- package/src/btc/types.ts +31 -30
package/lib/btc/btc-processor.js
CHANGED
@@ -18,7 +18,7 @@ export class BTCProcessor {
|
|
18
18
|
const callHandler = {
|
19
19
|
handler: async (call) => {
|
20
20
|
const tx = call.transaction;
|
21
|
-
const ctx = new BTCContext(this.config.chainId, this.config.name ?? this.config.address ?? '', tx, this.config.address ?? tx.vout[0]
|
21
|
+
const ctx = new BTCContext(this.config.chainId, this.config.name ?? this.config.address ?? '', tx, this.config.address ?? tx.vout?.[0]?.scriptPubKey?.address);
|
22
22
|
await handler(tx, ctx);
|
23
23
|
return ctx.stopAndGetResult();
|
24
24
|
},
|
@@ -1 +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;AAIpD,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,CAClB,OAA4E,EAC5E,MAA2B;QAE3B,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,IAAI,EAAE,CAAC,IAAI,
|
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;AAIpD,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,CAClB,OAA4E,EAC5E,MAA2B;QAE3B,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,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAC3D,CAAA;gBACD,MAAM,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACtB,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;YACD,MAAM;SACP,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
package/lib/btc/filter.d.ts
CHANGED
@@ -2,8 +2,8 @@ import { BTCTransactionFilter } from '@sentio/protos';
|
|
2
2
|
import { BigDecimal } from '@sentio/bigdecimal';
|
3
3
|
import { Transaction, Vin, Vout } from './types.js';
|
4
4
|
export type TransactionFields = keyof Omit<Transaction, 'vin' | 'vout'>;
|
5
|
-
export type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction'
|
6
|
-
export type VOutFields = keyof Vout;
|
5
|
+
export type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction' | 'scriptSig'> | 'script_asm' | 'script_hex';
|
6
|
+
export type VOutFields = keyof Omit<Vout, 'scriptPubKey'> | 'script_asm' | 'script_hex' | 'script_type' | 'script_address';
|
7
7
|
export type Filter<F extends string> = {
|
8
8
|
[K in F]?: Condition | Comparable;
|
9
9
|
};
|
package/lib/btc/filter.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/btc/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/btc/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAMrB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC,CAAA;AAEvE,MAAM,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC,GAAG,YAAY,GAAG,YAAY,CAAA;AAEnH,MAAM,MAAM,UAAU,GAClB,MAAM,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,GAChC,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,gBAAgB,CAAA;AAEpB,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,IAAI;KACpC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU;CAClC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,EAAE,CAAC,EAAE,UAAU,CAAA;IAEf,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAE1B,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;IAC1B,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;AAE/D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5B,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACzC,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;KAEnC,CAAA;CACF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;IACrC,YAAY,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/E,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;AAoDxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,oBAAoB,EAAE,CAShF"}
|
package/lib/btc/filter.js
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
import { BTCTransactionFilter_Condition, BTCTransactionFilter_Filter, BTCTransactionFilter_Filters, BTCTransactionFilter_VinFilter, BTCTransactionFilter_VOutFilter } from '@sentio/protos';
|
1
2
|
import { serializeRichValue } from '../store/util.js';
|
2
3
|
import { BigDecimal } from '@sentio/bigdecimal';
|
3
4
|
function toVinFilter(inputFilter) {
|
4
5
|
if (inputFilter) {
|
6
|
+
const ret = BTCTransactionFilter_VinFilter.create();
|
5
7
|
const filters = [];
|
6
8
|
const vouts = [];
|
7
9
|
const txs = [];
|
@@ -15,23 +17,30 @@ function toVinFilter(inputFilter) {
|
|
15
17
|
txs.push(preTransaction);
|
16
18
|
}
|
17
19
|
}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
ret.filters = BTCTransactionFilter_Filters.create({
|
21
|
+
filters: convertFilters(filters)
|
22
|
+
});
|
23
|
+
if (vouts.length > 0) {
|
24
|
+
const voutFilters = convertFilters(vouts);
|
25
|
+
if (voutFilters && voutFilters.length > 0) {
|
26
|
+
ret.preVOut = voutFilters[0];
|
27
|
+
}
|
28
|
+
}
|
29
|
+
if (txs.length > 0) {
|
30
|
+
ret.preTransaction = filters2Proto(txs)?.[0];
|
31
|
+
}
|
32
|
+
return ret;
|
28
33
|
}
|
29
34
|
return undefined;
|
30
35
|
}
|
31
36
|
function toVOutFilter(outputFilter) {
|
32
37
|
if (outputFilter) {
|
38
|
+
const ret = BTCTransactionFilter_VOutFilter.create();
|
33
39
|
const filters = Array.isArray(outputFilter) ? outputFilter : [outputFilter];
|
34
|
-
|
40
|
+
ret.filters = BTCTransactionFilter_Filters.create({
|
41
|
+
filters: convertFilters(filters)
|
42
|
+
});
|
43
|
+
return ret;
|
35
44
|
}
|
36
45
|
return undefined;
|
37
46
|
}
|
@@ -46,7 +55,7 @@ export function filters2Proto(filter) {
|
|
46
55
|
});
|
47
56
|
}
|
48
57
|
function toCondition(value) {
|
49
|
-
const ret =
|
58
|
+
const ret = BTCTransactionFilter_Condition.create();
|
50
59
|
if (value instanceof Date) {
|
51
60
|
ret.eq = serializeRichValue(value);
|
52
61
|
}
|
@@ -105,9 +114,7 @@ function convertFilters(filters) {
|
|
105
114
|
if (filters && filters.length > 0) {
|
106
115
|
const ret = [];
|
107
116
|
for (const filter of filters) {
|
108
|
-
const f =
|
109
|
-
conditions: {}
|
110
|
-
};
|
117
|
+
const f = BTCTransactionFilter_Filter.create();
|
111
118
|
for (const [key, value] of Object.entries(filter)) {
|
112
119
|
f.conditions[key] = toCondition(value);
|
113
120
|
}
|
@@ -115,6 +122,6 @@ function convertFilters(filters) {
|
|
115
122
|
}
|
116
123
|
return ret;
|
117
124
|
}
|
118
|
-
return
|
125
|
+
return [];
|
119
126
|
}
|
120
127
|
//# sourceMappingURL=filter.js.map
|
package/lib/btc/filter.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/btc/filter.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/btc/filter.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../../src/btc/filter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;
|
1
|
+
{"version":3,"file":"filter.test.js","sourceRoot":"","sources":["../../src/btc/filter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,aAAa,GAAsB;IACvC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1C,YAAY,EAAE;QACZ,CAAC,EAAE,CAAC;QACJ,UAAU,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;KAC7C;CACF,CAAA;AAED,MAAM,cAAc,GAAsB;IACxC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1C,WAAW,EAAE;QACX,cAAc,EAAE;YACd,YAAY,EAAE;gBACZ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;gBACZ,UAAU,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE;aAC7C;SACF;KACF;CACF,CAAA;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEvB,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/lib/btc/types.d.ts
CHANGED
@@ -1,43 +1,44 @@
|
|
1
1
|
import { BaseContext, Labels } from '../core/index.js';
|
2
2
|
import { RecordMetaData } from '@sentio/protos';
|
3
3
|
import { ChainId } from '@sentio/chain';
|
4
|
+
export type Transaction = {
|
5
|
+
txid: string;
|
6
|
+
hash: string;
|
7
|
+
txindex: number;
|
8
|
+
blockhash: string;
|
9
|
+
blockheight: number;
|
10
|
+
blocktime: number;
|
11
|
+
size: number;
|
12
|
+
vsize: number;
|
13
|
+
version: number;
|
14
|
+
locktime: number;
|
15
|
+
vin: Vin[];
|
16
|
+
vout: Vout[];
|
17
|
+
};
|
4
18
|
export type Vin = {
|
5
19
|
vin_index: number;
|
6
20
|
coinbase?: string;
|
7
|
-
|
8
|
-
|
21
|
+
txid?: string;
|
22
|
+
vout?: number;
|
9
23
|
sequence: number;
|
10
24
|
witness?: string[];
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
25
|
+
scriptSig: {
|
26
|
+
asm: string;
|
27
|
+
hex: string;
|
28
|
+
};
|
15
29
|
pre_vout?: Vout;
|
16
30
|
pre_transaction?: Transaction;
|
17
31
|
};
|
18
32
|
export type Vout = {
|
19
33
|
value: number;
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
transaction_hash: string;
|
29
|
-
transaction_index: number;
|
30
|
-
block_hash: string;
|
31
|
-
block_number: number;
|
32
|
-
block_timestamp: Date;
|
33
|
-
size: number;
|
34
|
-
virtual_size: number;
|
35
|
-
version: number;
|
36
|
-
lock_time: number;
|
37
|
-
input_count: number;
|
38
|
-
output_count: number;
|
39
|
-
vin: Vin[];
|
40
|
-
vout: Vout[];
|
34
|
+
n: number;
|
35
|
+
scriptPubKey: {
|
36
|
+
asm: string;
|
37
|
+
hex: string;
|
38
|
+
reqSigs: number;
|
39
|
+
type: string;
|
40
|
+
address: string;
|
41
|
+
};
|
41
42
|
};
|
42
43
|
export type Block = {
|
43
44
|
block_hash: string;
|
package/lib/btc/types.d.ts.map
CHANGED
@@ -1 +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,MAAM,MAAM,
|
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,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,GAAG,EAAE,CAAA;IACV,IAAI,EAAE,IAAI,EAAE,CAAA;CACb,CAAA;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,eAAe,CAAC,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,CAAC,EAAE,MAAM,CAAA;IACT,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,IAAI,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,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
CHANGED
@@ -15,9 +15,9 @@ export class BTCContext extends BaseContext {
|
|
15
15
|
return {
|
16
16
|
address: this.address,
|
17
17
|
contractName: this.name,
|
18
|
-
blockNumber: BigInt(this.tx.
|
18
|
+
blockNumber: BigInt(this.tx.blockheight ?? 0),
|
19
19
|
transactionIndex: 0,
|
20
|
-
transactionHash: this.tx.
|
20
|
+
transactionHash: this.tx.txid,
|
21
21
|
chainId: this.getChainId(),
|
22
22
|
name: name,
|
23
23
|
logIndex: 0,
|
package/lib/btc/types.js.map
CHANGED
@@ -1 +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;
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/btc/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AA+DvE,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,WAAW,IAAI,CAAC,CAAC;YAC7C,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"}
|
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.9",
|
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.9",
|
88
|
+
"@sentio/runtime": "^2.42.0-rc.9"
|
89
89
|
},
|
90
90
|
"peerDependencies": {
|
91
91
|
"tsup": "npm:@sentio/tsup@^6.7.2"
|
package/src/btc/btc-processor.ts
CHANGED
@@ -30,7 +30,7 @@ export class BTCProcessor {
|
|
30
30
|
this.config.chainId,
|
31
31
|
this.config.name ?? this.config.address ?? '',
|
32
32
|
tx,
|
33
|
-
this.config.address ?? tx.vout[0]
|
33
|
+
this.config.address ?? tx.vout?.[0]?.scriptPubKey?.address
|
34
34
|
)
|
35
35
|
await handler(tx, ctx)
|
36
36
|
return ctx.stopAndGetResult()
|
package/src/btc/filter.ts
CHANGED
@@ -2,7 +2,9 @@ import {
|
|
2
2
|
BTCTransactionFilter,
|
3
3
|
BTCTransactionFilter_Condition,
|
4
4
|
BTCTransactionFilter_Filter,
|
5
|
-
|
5
|
+
BTCTransactionFilter_Filters,
|
6
|
+
BTCTransactionFilter_VinFilter,
|
7
|
+
BTCTransactionFilter_VOutFilter
|
6
8
|
} from '@sentio/protos'
|
7
9
|
import { serializeRichValue } from '../store/util.js'
|
8
10
|
import { BigDecimal } from '@sentio/bigdecimal'
|
@@ -10,9 +12,14 @@ import { Transaction, Vin, Vout } from './types.js'
|
|
10
12
|
|
11
13
|
export type TransactionFields = keyof Omit<Transaction, 'vin' | 'vout'>
|
12
14
|
|
13
|
-
export type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction'>
|
15
|
+
export type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction' | 'scriptSig'> | 'script_asm' | 'script_hex'
|
14
16
|
|
15
|
-
export type VOutFields =
|
17
|
+
export type VOutFields =
|
18
|
+
| keyof Omit<Vout, 'scriptPubKey'>
|
19
|
+
| 'script_asm'
|
20
|
+
| 'script_hex'
|
21
|
+
| 'script_type'
|
22
|
+
| 'script_address'
|
16
23
|
|
17
24
|
export type Filter<F extends string> = {
|
18
25
|
[K in F]?: Condition | Comparable
|
@@ -65,8 +72,9 @@ export type TransactionFilters = TransactionFilter | TransactionFilter[]
|
|
65
72
|
|
66
73
|
function toVinFilter(inputFilter?: VinFilter | VinFilter[]): BTCTransactionFilter_VinFilter | undefined {
|
67
74
|
if (inputFilter) {
|
75
|
+
const ret = BTCTransactionFilter_VinFilter.create()
|
68
76
|
const filters = []
|
69
|
-
const vouts = []
|
77
|
+
const vouts: Filter<VOutFields>[] = []
|
70
78
|
const txs: TransactionFilters = []
|
71
79
|
|
72
80
|
for (const f of Array.isArray(inputFilter) ? inputFilter : [inputFilter]) {
|
@@ -79,27 +87,35 @@ function toVinFilter(inputFilter?: VinFilter | VinFilter[]): BTCTransactionFilte
|
|
79
87
|
txs.push(preTransaction)
|
80
88
|
}
|
81
89
|
}
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
90
|
+
ret.filters = BTCTransactionFilter_Filters.create({
|
91
|
+
filters: convertFilters(filters)
|
92
|
+
})
|
93
|
+
|
94
|
+
if (vouts.length > 0) {
|
95
|
+
const voutFilters = convertFilters(vouts)
|
96
|
+
if (voutFilters && voutFilters.length > 0) {
|
97
|
+
ret.preVOut = voutFilters[0]
|
98
|
+
}
|
99
|
+
}
|
100
|
+
if (txs.length > 0) {
|
101
|
+
ret.preTransaction = filters2Proto(txs)?.[0]
|
93
102
|
}
|
103
|
+
|
104
|
+
return ret
|
94
105
|
}
|
95
106
|
|
96
107
|
return undefined
|
97
108
|
}
|
98
109
|
|
99
|
-
function toVOutFilter(outputFilter?: VOutFilter | VOutFilter[]) {
|
110
|
+
function toVOutFilter(outputFilter?: VOutFilter | VOutFilter[]): BTCTransactionFilter_VOutFilter | undefined {
|
100
111
|
if (outputFilter) {
|
112
|
+
const ret = BTCTransactionFilter_VOutFilter.create()
|
101
113
|
const filters = Array.isArray(outputFilter) ? outputFilter : ([outputFilter] as Filter<VOutFields>[])
|
102
|
-
|
114
|
+
ret.filters = BTCTransactionFilter_Filters.create({
|
115
|
+
filters: convertFilters(filters)
|
116
|
+
})
|
117
|
+
|
118
|
+
return ret
|
103
119
|
}
|
104
120
|
return undefined
|
105
121
|
}
|
@@ -116,7 +132,7 @@ export function filters2Proto(filter: TransactionFilters): BTCTransactionFilter[
|
|
116
132
|
}
|
117
133
|
|
118
134
|
function toCondition(value: Condition | Comparable): BTCTransactionFilter_Condition {
|
119
|
-
const ret: BTCTransactionFilter_Condition =
|
135
|
+
const ret: BTCTransactionFilter_Condition = BTCTransactionFilter_Condition.create()
|
120
136
|
if (value instanceof Date) {
|
121
137
|
ret.eq = serializeRichValue(value)
|
122
138
|
}
|
@@ -178,9 +194,7 @@ function convertFilters<T extends string>(filters?: Array<Filter<T>>): BTCTransa
|
|
178
194
|
if (filters && filters.length > 0) {
|
179
195
|
const ret: BTCTransactionFilter_Filter[] = []
|
180
196
|
for (const filter of filters) {
|
181
|
-
const f: BTCTransactionFilter_Filter =
|
182
|
-
conditions: {}
|
183
|
-
}
|
197
|
+
const f: BTCTransactionFilter_Filter = BTCTransactionFilter_Filter.create()
|
184
198
|
for (const [key, value] of Object.entries(filter)) {
|
185
199
|
f.conditions[key] = toCondition(value as any)
|
186
200
|
}
|
@@ -188,5 +202,5 @@ function convertFilters<T extends string>(filters?: Array<Filter<T>>): BTCTransa
|
|
188
202
|
}
|
189
203
|
return ret
|
190
204
|
}
|
191
|
-
return
|
205
|
+
return []
|
192
206
|
}
|
package/src/btc/types.ts
CHANGED
@@ -2,45 +2,46 @@ import { BaseContext, Labels, normalizeLabels } from '../core/index.js'
|
|
2
2
|
import { RecordMetaData } from '@sentio/protos'
|
3
3
|
import { ChainId } from '@sentio/chain'
|
4
4
|
|
5
|
+
export type Transaction = {
|
6
|
+
txid: string
|
7
|
+
hash: string
|
8
|
+
txindex: number
|
9
|
+
blockhash: string
|
10
|
+
blockheight: number
|
11
|
+
blocktime: number
|
12
|
+
size: number
|
13
|
+
vsize: number
|
14
|
+
version: number
|
15
|
+
locktime: number
|
16
|
+
vin: Vin[]
|
17
|
+
vout: Vout[]
|
18
|
+
}
|
19
|
+
|
5
20
|
export type Vin = {
|
6
21
|
vin_index: number
|
7
22
|
coinbase?: string
|
8
|
-
|
9
|
-
|
23
|
+
txid?: string
|
24
|
+
vout?: number
|
10
25
|
sequence: number
|
11
26
|
witness?: string[]
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
27
|
+
scriptSig: {
|
28
|
+
asm: string
|
29
|
+
hex: string
|
30
|
+
}
|
16
31
|
pre_vout?: Vout
|
17
32
|
pre_transaction?: Transaction
|
18
33
|
}
|
19
34
|
|
20
35
|
export type Vout = {
|
21
36
|
value: number
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
export type Transaction = {
|
31
|
-
transaction_hash: string
|
32
|
-
transaction_index: number
|
33
|
-
block_hash: string
|
34
|
-
block_number: number
|
35
|
-
block_timestamp: Date
|
36
|
-
size: number
|
37
|
-
virtual_size: number
|
38
|
-
version: number
|
39
|
-
lock_time: number
|
40
|
-
input_count: number
|
41
|
-
output_count: number
|
42
|
-
vin: Vin[]
|
43
|
-
vout: Vout[]
|
37
|
+
n: number
|
38
|
+
scriptPubKey: {
|
39
|
+
asm: string
|
40
|
+
hex: string
|
41
|
+
reqSigs: number
|
42
|
+
type: string
|
43
|
+
address: string
|
44
|
+
}
|
44
45
|
}
|
45
46
|
|
46
47
|
export type Block = {
|
@@ -74,9 +75,9 @@ export class BTCContext extends BaseContext {
|
|
74
75
|
return {
|
75
76
|
address: this.address,
|
76
77
|
contractName: this.name,
|
77
|
-
blockNumber: BigInt(this.tx.
|
78
|
+
blockNumber: BigInt(this.tx.blockheight ?? 0),
|
78
79
|
transactionIndex: 0,
|
79
|
-
transactionHash: this.tx.
|
80
|
+
transactionHash: this.tx.txid,
|
80
81
|
chainId: this.getChainId(),
|
81
82
|
name: name,
|
82
83
|
logIndex: 0,
|