@subsquid/fuel-stream 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/archive/data-schema.d.ts +332 -0
- package/lib/archive/data-schema.d.ts.map +1 -0
- package/lib/archive/data-schema.js +293 -0
- package/lib/archive/data-schema.js.map +1 -0
- package/lib/archive/source.d.ts +14 -0
- package/lib/archive/source.d.ts.map +1 -0
- package/lib/archive/source.js +82 -0
- package/lib/archive/source.js.map +1 -0
- package/lib/data/data-partial.d.ts +20 -0
- package/lib/data/data-partial.d.ts.map +1 -0
- package/lib/data/data-partial.js +3 -0
- package/lib/data/data-partial.js.map +1 -0
- package/lib/data/data-request.d.ts +35 -0
- package/lib/data/data-request.d.ts.map +1 -0
- package/lib/data/data-request.js +3 -0
- package/lib/data/data-request.js.map +1 -0
- package/lib/data/model.d.ts +45 -0
- package/lib/data/model.d.ts.map +1 -0
- package/lib/data/model.js +19 -0
- package/lib/data/model.js.map +1 -0
- package/lib/data/util.d.ts +20 -0
- package/lib/data/util.d.ts.map +1 -0
- package/lib/data/util.js +3 -0
- package/lib/data/util.js.map +1 -0
- package/lib/fields.d.ts +6 -0
- package/lib/fields.d.ts.map +1 -0
- package/lib/fields.js +32 -0
- package/lib/fields.js.map +1 -0
- package/lib/filter.d.ts +6 -0
- package/lib/filter.d.ts.map +1 -0
- package/lib/filter.js +172 -0
- package/lib/filter.js.map +1 -0
- package/lib/graphql.d.ts +14 -0
- package/lib/graphql.d.ts.map +1 -0
- package/lib/graphql.js +40 -0
- package/lib/graphql.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -0
- package/lib/source.d.ts +118 -0
- package/lib/source.d.ts.map +1 -0
- package/lib/source.js +296 -0
- package/lib/source.js.map +1 -0
- package/package.json +34 -0
- package/src/archive/data-schema.ts +320 -0
- package/src/archive/source.ts +88 -0
- package/src/data/data-partial.ts +25 -0
- package/src/data/data-request.ts +44 -0
- package/src/data/model.ts +114 -0
- package/src/data/util.ts +42 -0
- package/src/fields.ts +35 -0
- package/src/filter.ts +229 -0
- package/src/graphql.ts +51 -0
- package/src/index.ts +2 -0
- package/src/source.ts +416 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FuelGateway = void 0;
|
|
7
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
8
|
+
const util_internal_ingest_tools_1 = require("@subsquid/util-internal-ingest-tools");
|
|
9
|
+
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
10
|
+
const util_internal_validation_1 = require("@subsquid/util-internal-validation");
|
|
11
|
+
const assert_1 = __importDefault(require("assert"));
|
|
12
|
+
const data_schema_1 = require("./data-schema");
|
|
13
|
+
class FuelGateway {
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
getFinalizedHeight() {
|
|
18
|
+
return this.client.getHeight();
|
|
19
|
+
}
|
|
20
|
+
async getBlockHash(height) {
|
|
21
|
+
let blocks = await this.client.query({
|
|
22
|
+
fromBlock: height,
|
|
23
|
+
toBlock: height,
|
|
24
|
+
includeAllBlocks: true
|
|
25
|
+
});
|
|
26
|
+
(0, assert_1.default)(blocks.length == 1);
|
|
27
|
+
return blocks[0].header.hash;
|
|
28
|
+
}
|
|
29
|
+
async getBlockHeader(height) {
|
|
30
|
+
let blocks = await this.client.query({
|
|
31
|
+
type: 'fuel',
|
|
32
|
+
fromBlock: height,
|
|
33
|
+
toBlock: height,
|
|
34
|
+
includeAllBlocks: true,
|
|
35
|
+
fields: {
|
|
36
|
+
block: {
|
|
37
|
+
daHeight: true,
|
|
38
|
+
transactionsRoot: true,
|
|
39
|
+
transactionsCount: true,
|
|
40
|
+
messageReceiptRoot: true,
|
|
41
|
+
messageReceiptCount: true,
|
|
42
|
+
prevRoot: true,
|
|
43
|
+
time: true,
|
|
44
|
+
applicationHash: true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
(0, assert_1.default)(blocks.length == 1);
|
|
49
|
+
let { number, ...rest } = blocks[0].header;
|
|
50
|
+
return {
|
|
51
|
+
height: number,
|
|
52
|
+
...rest
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async *getBlockStream(requests, stopOnHead) {
|
|
56
|
+
let archiveRequests = (0, util_internal_range_1.mapRangeRequestList)(requests, req => {
|
|
57
|
+
let { fields, ...items } = req;
|
|
58
|
+
return {
|
|
59
|
+
type: 'fuel',
|
|
60
|
+
fields,
|
|
61
|
+
...items
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
for await (let batch of (0, util_internal_ingest_tools_1.archiveIngest)({
|
|
65
|
+
client: this.client,
|
|
66
|
+
requests: archiveRequests,
|
|
67
|
+
stopOnHead
|
|
68
|
+
})) {
|
|
69
|
+
let req = (0, util_internal_range_1.getRequestAt)(requests, batch.blocks[0].header.number);
|
|
70
|
+
let blocks = (0, util_internal_validation_1.cast)((0, util_internal_validation_1.array)((0, data_schema_1.getDataSchema)((0, util_internal_1.assertNotNull)(req?.fields))), batch.blocks).map(b => {
|
|
71
|
+
let { header: { number, ...hdr }, ...items } = b;
|
|
72
|
+
return {
|
|
73
|
+
header: { height: number, ...hdr },
|
|
74
|
+
...items
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
yield blocks;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.FuelGateway = FuelGateway;
|
|
82
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/archive/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type * as data from '@subsquid/fuel-data/lib/data';
|
|
2
|
+
import type { MakePartial } from './util';
|
|
3
|
+
export type BlockRequiredFields = 'height' | 'hash';
|
|
4
|
+
export type TransactionRequiredFields = 'index';
|
|
5
|
+
export type ReceiptRequiredFields = 'transactionIndex' | 'index';
|
|
6
|
+
export type InputRequiredFields = 'transactionIndex' | 'index' | 'type';
|
|
7
|
+
export type OutputRequiredFields = 'transactionIndex' | 'index' | 'type';
|
|
8
|
+
export type PartialBlockHeader = MakePartial<data.BlockHeader, BlockRequiredFields>;
|
|
9
|
+
export type PartialTransaction = MakePartial<data.Transaction, TransactionRequiredFields>;
|
|
10
|
+
export type PartialReceipt = MakePartial<data.Receipt, ReceiptRequiredFields>;
|
|
11
|
+
export type PartialInput = MakePartial<data.TransactionInput, InputRequiredFields>;
|
|
12
|
+
export type PartialOutput = MakePartial<data.TransactionOutput, OutputRequiredFields>;
|
|
13
|
+
export interface PartialBlock {
|
|
14
|
+
header: PartialBlockHeader;
|
|
15
|
+
transactions?: PartialTransaction[];
|
|
16
|
+
receipts?: PartialReceipt[];
|
|
17
|
+
inputs?: PartialInput[];
|
|
18
|
+
outputs?: PartialOutput[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data-partial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-partial.d.ts","sourceRoot":"","sources":["../../src/data/data-partial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,8BAA8B,CAAA;AACzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAA;AAGvC,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAA;AACnD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAC/C,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,OAAO,CAAA;AAChE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAA;AACvE,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAA;AAGxE,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAA;AACnF,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAA;AACzF,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAA;AAC7E,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;AAClF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAA;AAGrF,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-partial.js","sourceRoot":"","sources":["../../src/data/data-partial.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ReceiptType, TransactionType, InputType, OutputType } from '@subsquid/fuel-data/lib/data';
|
|
2
|
+
import { FieldSelection, Bytes } from './model';
|
|
3
|
+
export interface DataRequest {
|
|
4
|
+
fields?: FieldSelection;
|
|
5
|
+
includeAllBlocks?: boolean;
|
|
6
|
+
transactions?: TransactionRequest[];
|
|
7
|
+
receipts?: ReceiptRequest[];
|
|
8
|
+
inputs?: InputRequest[];
|
|
9
|
+
outputs?: OutputRequest[];
|
|
10
|
+
}
|
|
11
|
+
export interface TransactionRequest {
|
|
12
|
+
type?: TransactionType[];
|
|
13
|
+
receipts?: boolean;
|
|
14
|
+
inputs?: boolean;
|
|
15
|
+
outputs?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface ReceiptRequest {
|
|
18
|
+
type?: ReceiptType[];
|
|
19
|
+
logDataContract?: Bytes[];
|
|
20
|
+
transaction?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface InputRequest {
|
|
23
|
+
type?: InputType[];
|
|
24
|
+
coinOwner?: Bytes[];
|
|
25
|
+
coinAssetId?: Bytes[];
|
|
26
|
+
contractContract?: Bytes[];
|
|
27
|
+
messageSender?: Bytes[];
|
|
28
|
+
messageRecipient?: Bytes[];
|
|
29
|
+
transaction?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface OutputRequest {
|
|
32
|
+
type?: OutputType[];
|
|
33
|
+
transaction?: boolean;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-request.d.ts","sourceRoot":"","sources":["../../src/data/data-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAC,MAAM,8BAA8B,CAAA;AAChG,OAAO,EAAC,cAAc,EAAE,KAAK,EAAC,MAAM,SAAS,CAAA;AAG7C,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACnC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAGD,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AAGD,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,WAAW,EAAE,CAAA;IACpB,eAAe,CAAC,EAAE,KAAK,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAGD,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;IAClB,SAAS,CAAC,EAAE,KAAK,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,KAAK,EAAE,CAAA;IACrB,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE,KAAK,EAAE,CAAA;IACvB,gBAAgB,CAAC,EAAE,KAAK,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB;AAGD,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,UAAU,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-request.js","sourceRoot":"","sources":["../../src/data/data-request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type * as data from '@subsquid/fuel-data/lib/data';
|
|
2
|
+
import type { BlockRequiredFields, ReceiptRequiredFields, InputRequiredFields, OutputRequiredFields, TransactionRequiredFields } from './data-partial';
|
|
3
|
+
import type { GetFields, Select, Selector, Simplify } from './util';
|
|
4
|
+
/**
|
|
5
|
+
* Hex encoded binary string
|
|
6
|
+
*/
|
|
7
|
+
export type Bytes = string;
|
|
8
|
+
type AddPrefix<Prefix extends string, S extends string> = `${Prefix}${Capitalize<S>}`;
|
|
9
|
+
export interface FieldSelection {
|
|
10
|
+
block?: Selector<Exclude<keyof data.BlockHeader, BlockRequiredFields>>;
|
|
11
|
+
transaction?: Selector<Exclude<keyof data.Transaction, TransactionRequiredFields>>;
|
|
12
|
+
receipt?: Selector<Exclude<keyof data.Receipt, ReceiptRequiredFields>>;
|
|
13
|
+
input?: Selector<AddPrefix<'coin', Exclude<keyof data.InputCoin, InputRequiredFields>> | AddPrefix<'contract', Exclude<keyof data.InputContract, InputRequiredFields>> | AddPrefix<'message', Exclude<keyof data.InputMessage, InputRequiredFields>>>;
|
|
14
|
+
output?: Selector<AddPrefix<'coin', Exclude<keyof data.CoinOutput, OutputRequiredFields>> | AddPrefix<'contract', Exclude<keyof data.ContractOutput, OutputRequiredFields>> | AddPrefix<'change', Exclude<keyof data.ChangeOutput, OutputRequiredFields>> | AddPrefix<'variable', Exclude<keyof data.VariableOutput, OutputRequiredFields>> | AddPrefix<'contractCreated', Exclude<keyof data.ContractCreated, OutputRequiredFields>>>;
|
|
15
|
+
}
|
|
16
|
+
export declare const DEFAULT_FIELDS: {
|
|
17
|
+
readonly block: {
|
|
18
|
+
readonly time: true;
|
|
19
|
+
};
|
|
20
|
+
readonly transaction: {
|
|
21
|
+
readonly hash: true;
|
|
22
|
+
readonly type: true;
|
|
23
|
+
readonly status: true;
|
|
24
|
+
};
|
|
25
|
+
readonly receipt: {
|
|
26
|
+
readonly receiptType: true;
|
|
27
|
+
};
|
|
28
|
+
readonly input: {};
|
|
29
|
+
readonly output: {};
|
|
30
|
+
};
|
|
31
|
+
type Item<Data, RequiredFields extends keyof Data, F extends FieldSelection, K extends keyof FieldSelection> = Simplify<Pick<Data, RequiredFields> & Select<Data, GetFields<FieldSelection, typeof DEFAULT_FIELDS, F, K>>>;
|
|
32
|
+
export type BlockHeader<F extends FieldSelection = {}> = Item<data.BlockHeader, BlockRequiredFields, F, 'block'>;
|
|
33
|
+
export type Transaction<F extends FieldSelection = {}> = Item<data.Transaction, TransactionRequiredFields, F, 'transaction'>;
|
|
34
|
+
export type Receipt<F extends FieldSelection = {}> = Item<data.Receipt, ReceiptRequiredFields, F, 'receipt'>;
|
|
35
|
+
export type Input<F extends FieldSelection = {}> = Item<data.TransactionInput, InputRequiredFields, F, 'input'>;
|
|
36
|
+
export type Output<F extends FieldSelection = {}> = Item<data.TransactionOutput, OutputRequiredFields, F, 'output'>;
|
|
37
|
+
export interface Block<F extends FieldSelection = {}> {
|
|
38
|
+
header: BlockHeader<F>;
|
|
39
|
+
transactions: Transaction<F>[];
|
|
40
|
+
receipts: Receipt<F>[];
|
|
41
|
+
inputs: Input<F>[];
|
|
42
|
+
outputs: Output<F>[];
|
|
43
|
+
}
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_FIELDS = void 0;
|
|
4
|
+
exports.DEFAULT_FIELDS = {
|
|
5
|
+
block: {
|
|
6
|
+
time: true
|
|
7
|
+
},
|
|
8
|
+
transaction: {
|
|
9
|
+
hash: true,
|
|
10
|
+
type: true,
|
|
11
|
+
status: true
|
|
12
|
+
},
|
|
13
|
+
receipt: {
|
|
14
|
+
receiptType: true
|
|
15
|
+
},
|
|
16
|
+
input: {},
|
|
17
|
+
output: {},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/data/model.ts"],"names":[],"mappings":";;;AAuCa,QAAA,cAAc,GAAG;IAC1B,KAAK,EAAE;QACH,IAAI,EAAE,IAAI;KACb;IACD,WAAW,EAAE;QACT,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;KACf;IACD,OAAO,EAAE;QACL,WAAW,EAAE,IAAI;KACpB;IACD,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACJ,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type Simplify<T> = {
|
|
2
|
+
[K in keyof T]: T[K];
|
|
3
|
+
} & {};
|
|
4
|
+
export type ExcludeUndefined<T> = {
|
|
5
|
+
[K in keyof T as undefined extends T[K] ? never : K]: T[K];
|
|
6
|
+
} & {};
|
|
7
|
+
export type GetFields<FieldSelectionType, Defaults extends FieldSelectionType, Selection extends FieldSelectionType, K extends keyof FieldSelectionType> = TrueFields<MergeDefault<Selection[K], Defaults[K]>>;
|
|
8
|
+
type MergeDefault<T, D> = Simplify<undefined extends T ? D : Omit<D, keyof ExcludeUndefined<T>> & ExcludeUndefined<T>>;
|
|
9
|
+
type TrueFields<F> = keyof {
|
|
10
|
+
[K in keyof F as true extends F[K] ? K : never]: true;
|
|
11
|
+
};
|
|
12
|
+
export type Select<T, Fields> = T extends any ? Simplify<Pick<T, Extract<keyof T, Fields>>> : never;
|
|
13
|
+
export type Selector<Fields extends string | number | symbol> = {
|
|
14
|
+
[P in Fields]?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export type MakePartial<T, Required extends keyof T> = Simplify<Pick<T, Required> & {
|
|
17
|
+
[K in keyof T as K extends Required ? never : K]+?: T[K];
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/data/util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvB,GAAG,EAAE,CAAA;AAGN,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC7B,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC7D,GAAG,EAAE,CAAA;AAGN,MAAM,MAAM,SAAS,CACjB,kBAAkB,EAClB,QAAQ,SAAS,kBAAkB,EACnC,SAAS,SAAS,kBAAkB,EACpC,CAAC,SAAS,MAAM,kBAAkB,IAClC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAGvD,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAC9B,SAAS,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CACrF,CAAA;AAGD,KAAK,UAAU,CAAC,CAAC,IAAI,MAAM;KACtB,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI;CACxD,CAAA;AAGD,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAGnG,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;KAC3D,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO;CAC1B,CAAA;AAGD,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,CAAC,IAAI,QAAQ,CAC3D,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GACjB;KACK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC3D,CACJ,CAAA"}
|
package/lib/data/util.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/data/util.ts"],"names":[],"mappings":""}
|
package/lib/fields.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAC,MAAM,cAAc,CAAA;AAI3D;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,CAQ5E"}
|
package/lib/fields.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFields = void 0;
|
|
4
|
+
const model_1 = require("./data/model");
|
|
5
|
+
/**
|
|
6
|
+
* Get effective set of selected fields.
|
|
7
|
+
*/
|
|
8
|
+
function getFields(fields) {
|
|
9
|
+
return {
|
|
10
|
+
block: merge(model_1.DEFAULT_FIELDS.block, fields?.block),
|
|
11
|
+
transaction: merge(model_1.DEFAULT_FIELDS.transaction, fields?.transaction),
|
|
12
|
+
receipt: merge(model_1.DEFAULT_FIELDS.receipt, fields?.receipt),
|
|
13
|
+
input: merge(model_1.DEFAULT_FIELDS.input, fields?.input),
|
|
14
|
+
output: merge(model_1.DEFAULT_FIELDS.output, fields?.output),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.getFields = getFields;
|
|
18
|
+
function merge(def, requested = {}) {
|
|
19
|
+
let fields = {};
|
|
20
|
+
for (let key in def) {
|
|
21
|
+
if (requested[key] !== false) {
|
|
22
|
+
fields[key] = def[key];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
for (let key in requested) {
|
|
26
|
+
if (requested[key]) {
|
|
27
|
+
fields[key] = true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return fields;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":";;;AAAA,wCAA2D;AAI3D;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAkC;IACxD,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,sBAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QACjD,WAAW,EAAE,KAAK,CAAC,sBAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;QACnE,OAAO,EAAE,KAAK,CAAC,sBAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QACvD,KAAK,EAAE,KAAK,CAAC,sBAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,sBAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACvD,CAAA;AACL,CAAC;AARD,8BAQC;AAGD,SAAS,KAAK,CAAsB,GAAmB,EAAE,YAA4B,EAAE;IACnF,IAAI,MAAM,GAAmB,EAAE,CAAA;IAE/B,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACL,CAAC;IAED,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QACxB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACtB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
|
package/lib/filter.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RangeRequest } from '@subsquid/util-internal-range';
|
|
2
|
+
import { Block } from '@subsquid/fuel-normalization';
|
|
3
|
+
import { DataRequest } from './data/data-request';
|
|
4
|
+
export declare function filterBlock(block: Block, dataRequest: DataRequest): void;
|
|
5
|
+
export declare function filterBlockBatch(requests: RangeRequest<DataRequest>[], blocks: Block[]): void;
|
|
6
|
+
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,YAAY,EAAC,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAC,KAAK,EAA4D,MAAM,8BAA8B,CAAA;AAC7G,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAA;AAyI/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA4ExE;AAGD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAK7F"}
|
package/lib/filter.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterBlockBatch = exports.filterBlock = void 0;
|
|
4
|
+
const util_internal_processor_tools_1 = require("@subsquid/util-internal-processor-tools");
|
|
5
|
+
const util_internal_1 = require("@subsquid/util-internal");
|
|
6
|
+
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
7
|
+
class IncludeSet {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.receipts = new Set();
|
|
10
|
+
this.transactions = new Set();
|
|
11
|
+
this.inputs = new Set();
|
|
12
|
+
this.outputs = new Set();
|
|
13
|
+
}
|
|
14
|
+
addReceipt(receipt) {
|
|
15
|
+
if (receipt) {
|
|
16
|
+
this.receipts.add(receipt);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
addTransaction(tx) {
|
|
20
|
+
if (tx) {
|
|
21
|
+
this.transactions.add(tx);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
addInput(input) {
|
|
25
|
+
if (input) {
|
|
26
|
+
this.inputs.add(input);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
addOutput(output) {
|
|
30
|
+
if (output) {
|
|
31
|
+
this.outputs.add(output);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function buildReceiptFilter(dataRequest) {
|
|
36
|
+
let receipts = new util_internal_processor_tools_1.EntityFilter();
|
|
37
|
+
dataRequest.receipts?.forEach(req => {
|
|
38
|
+
let { type, logDataContract, ...relations } = req;
|
|
39
|
+
let filter = new util_internal_processor_tools_1.FilterBuilder();
|
|
40
|
+
filter.propIn('receiptType', type);
|
|
41
|
+
filter.propIn('contract', logDataContract);
|
|
42
|
+
receipts.add(filter, relations);
|
|
43
|
+
});
|
|
44
|
+
return receipts;
|
|
45
|
+
}
|
|
46
|
+
function buildTransactionFilter(dataRequest) {
|
|
47
|
+
let transactions = new util_internal_processor_tools_1.EntityFilter();
|
|
48
|
+
dataRequest.transactions?.forEach(req => {
|
|
49
|
+
let { type, ...relations } = req;
|
|
50
|
+
let filter = new util_internal_processor_tools_1.FilterBuilder();
|
|
51
|
+
filter.propIn('type', type);
|
|
52
|
+
transactions.add(filter, relations);
|
|
53
|
+
});
|
|
54
|
+
return transactions;
|
|
55
|
+
}
|
|
56
|
+
function buildInputFilter(dataRequest) {
|
|
57
|
+
let inputs = new util_internal_processor_tools_1.EntityFilter();
|
|
58
|
+
dataRequest.inputs?.forEach(req => {
|
|
59
|
+
let { type, coinOwner, coinAssetId, contractContract, messageSender, messageRecipient, ...relations } = req;
|
|
60
|
+
let filter = new util_internal_processor_tools_1.FilterBuilder();
|
|
61
|
+
filter.propIn('type', req.type);
|
|
62
|
+
filter.getIn(input => input.type == 'InputCoin' && (0, util_internal_1.assertNotNull)(input.owner), coinOwner);
|
|
63
|
+
filter.getIn(input => input.type == 'InputCoin' && (0, util_internal_1.assertNotNull)(input.assetId), coinAssetId);
|
|
64
|
+
filter.getIn(input => input.type == 'InputContract' && (0, util_internal_1.assertNotNull)(input.contract), contractContract);
|
|
65
|
+
filter.getIn(input => input.type == 'InputMessage' && (0, util_internal_1.assertNotNull)(input.sender), messageSender);
|
|
66
|
+
filter.getIn(input => input.type == 'InputMessage' && (0, util_internal_1.assertNotNull)(input.recipient), messageRecipient);
|
|
67
|
+
inputs.add(filter, relations);
|
|
68
|
+
});
|
|
69
|
+
return inputs;
|
|
70
|
+
}
|
|
71
|
+
function buildOutputFilter(dataRequest) {
|
|
72
|
+
let outputs = new util_internal_processor_tools_1.EntityFilter();
|
|
73
|
+
dataRequest.outputs?.forEach(req => {
|
|
74
|
+
let { type, ...relations } = req;
|
|
75
|
+
let filter = new util_internal_processor_tools_1.FilterBuilder();
|
|
76
|
+
filter.propIn('type', type);
|
|
77
|
+
outputs.add(filter, relations);
|
|
78
|
+
});
|
|
79
|
+
return outputs;
|
|
80
|
+
}
|
|
81
|
+
const getItemFilter = (0, util_internal_1.weakMemo)((dataRequest) => {
|
|
82
|
+
return {
|
|
83
|
+
receipts: buildReceiptFilter(dataRequest),
|
|
84
|
+
transactions: buildTransactionFilter(dataRequest),
|
|
85
|
+
inputs: buildInputFilter(dataRequest),
|
|
86
|
+
outputs: buildOutputFilter(dataRequest),
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
function filterBlock(block, dataRequest) {
|
|
90
|
+
let items = getItemFilter(dataRequest);
|
|
91
|
+
let include = new IncludeSet();
|
|
92
|
+
let transactions = new Map(block.transactions.map(tx => [tx.index, tx]));
|
|
93
|
+
let inputsByTx = (0, util_internal_1.groupBy)(block.inputs, input => input.transactionIndex);
|
|
94
|
+
let outputsByTx = (0, util_internal_1.groupBy)(block.outputs, ouput => ouput.transactionIndex);
|
|
95
|
+
let receiptsByTx = (0, util_internal_1.groupBy)(block.receipts, receipt => receipt.transactionIndex);
|
|
96
|
+
if (items.receipts.present()) {
|
|
97
|
+
for (let receipt of block.receipts) {
|
|
98
|
+
let rel = items.receipts.match(receipt);
|
|
99
|
+
if (rel == null)
|
|
100
|
+
continue;
|
|
101
|
+
include.addReceipt(receipt);
|
|
102
|
+
if (rel.transaction) {
|
|
103
|
+
let tx = (0, util_internal_1.assertNotNull)(transactions.get(receipt.transactionIndex));
|
|
104
|
+
include.addTransaction(tx);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (items.transactions.present()) {
|
|
109
|
+
for (let tx of block.transactions) {
|
|
110
|
+
let rel = items.transactions.match(tx);
|
|
111
|
+
if (rel == null)
|
|
112
|
+
continue;
|
|
113
|
+
include.addTransaction(tx);
|
|
114
|
+
if (rel.receipts) {
|
|
115
|
+
let receipts = (0, util_internal_1.assertNotNull)(receiptsByTx.get(tx.index));
|
|
116
|
+
for (let receipt of receipts) {
|
|
117
|
+
include.addReceipt(receipt);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (rel.inputs) {
|
|
121
|
+
let inputs = (0, util_internal_1.assertNotNull)(inputsByTx.get(tx.index));
|
|
122
|
+
for (let input of inputs) {
|
|
123
|
+
include.addInput(input);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (rel.outputs) {
|
|
127
|
+
let outputs = (0, util_internal_1.assertNotNull)(outputsByTx.get(tx.index));
|
|
128
|
+
for (let output of outputs) {
|
|
129
|
+
include.addOutput(output);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (items.inputs.present()) {
|
|
135
|
+
for (let input of block.inputs) {
|
|
136
|
+
let rel = items.inputs.match(input);
|
|
137
|
+
if (rel == null)
|
|
138
|
+
continue;
|
|
139
|
+
include.addInput(input);
|
|
140
|
+
if (rel.transaction) {
|
|
141
|
+
let tx = (0, util_internal_1.assertNotNull)(transactions.get(input.transactionIndex));
|
|
142
|
+
include.addTransaction(tx);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (items.outputs.present()) {
|
|
147
|
+
for (let output of block.outputs) {
|
|
148
|
+
let rel = items.outputs.match(output);
|
|
149
|
+
if (rel == null)
|
|
150
|
+
continue;
|
|
151
|
+
include.addOutput(output);
|
|
152
|
+
if (rel.transaction) {
|
|
153
|
+
let tx = (0, util_internal_1.assertNotNull)(transactions.get(output.transactionIndex));
|
|
154
|
+
include.addTransaction(tx);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
block.receipts = block.receipts.filter(receipt => include.receipts.has(receipt));
|
|
159
|
+
block.transactions = block.transactions.filter(tx => include.transactions.has(tx));
|
|
160
|
+
block.inputs = block.inputs.filter(input => include.inputs.has(input));
|
|
161
|
+
block.outputs = block.outputs.filter(output => include.outputs.has(output));
|
|
162
|
+
}
|
|
163
|
+
exports.filterBlock = filterBlock;
|
|
164
|
+
function filterBlockBatch(requests, blocks) {
|
|
165
|
+
for (let block of blocks) {
|
|
166
|
+
let dataRequest = (0, util_internal_range_1.getRequestAt)(requests, block.header.height) || NO_DATA_REQUEST;
|
|
167
|
+
filterBlock(block, dataRequest);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
exports.filterBlockBatch = filterBlockBatch;
|
|
171
|
+
const NO_DATA_REQUEST = {};
|
|
172
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../src/filter.ts"],"names":[],"mappings":"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"}
|
package/lib/graphql.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RangeRequestList } from '@subsquid/util-internal-range';
|
|
2
|
+
import { HttpDataSource } from '@subsquid/fuel-data/lib/data-source';
|
|
3
|
+
import { BlockHeader } from '@subsquid/fuel-data/lib/raw-data';
|
|
4
|
+
import { DataRequest } from './data/data-request';
|
|
5
|
+
import { PartialBlock } from './data/data-partial';
|
|
6
|
+
export declare class GraphqlDataSource {
|
|
7
|
+
private baseDataSource;
|
|
8
|
+
constructor(baseDataSource: HttpDataSource);
|
|
9
|
+
getFinalizedHeight(): Promise<number>;
|
|
10
|
+
getBlockHash(height: number): Promise<string | undefined>;
|
|
11
|
+
getBlockHeader(height: number): Promise<BlockHeader | undefined>;
|
|
12
|
+
getBlockStream(requests: RangeRequestList<DataRequest>, stopOnHead?: boolean): AsyncIterable<PartialBlock[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../src/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAA;AAClE,OAAO,EAAC,WAAW,EAAgC,MAAM,kCAAkC,CAAA;AAE3F,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAA;AAIhD,qBAAa,iBAAiB;IACd,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE5C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI3C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIzD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIzD,cAAc,CACjB,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,EACvC,UAAU,CAAC,EAAE,OAAO,GACrB,aAAa,CAAC,YAAY,EAAE,CAAC;CAUnC"}
|
package/lib/graphql.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GraphqlDataSource = void 0;
|
|
4
|
+
const util_internal_range_1 = require("@subsquid/util-internal-range");
|
|
5
|
+
const fuel_normalization_1 = require("@subsquid/fuel-normalization");
|
|
6
|
+
const filter_1 = require("./filter");
|
|
7
|
+
class GraphqlDataSource {
|
|
8
|
+
constructor(baseDataSource) {
|
|
9
|
+
this.baseDataSource = baseDataSource;
|
|
10
|
+
}
|
|
11
|
+
async getFinalizedHeight() {
|
|
12
|
+
return this.baseDataSource.getFinalizedHeight();
|
|
13
|
+
}
|
|
14
|
+
getBlockHash(height) {
|
|
15
|
+
return this.baseDataSource.getBlockHash(height);
|
|
16
|
+
}
|
|
17
|
+
getBlockHeader(height) {
|
|
18
|
+
return this.baseDataSource.getBlockHeader(height);
|
|
19
|
+
}
|
|
20
|
+
async *getBlockStream(requests, stopOnHead) {
|
|
21
|
+
for await (let batch of this.baseDataSource.getFinalizedBlocks((0, util_internal_range_1.mapRangeRequestList)(requests, toRawDataRequest), stopOnHead)) {
|
|
22
|
+
let blocks = batch.blocks.map(b => (0, fuel_normalization_1.mapRawBlock)(b));
|
|
23
|
+
(0, filter_1.filterBlockBatch)(requests, blocks);
|
|
24
|
+
yield blocks;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.GraphqlDataSource = GraphqlDataSource;
|
|
29
|
+
function toRawDataRequest(req) {
|
|
30
|
+
return {
|
|
31
|
+
transactions: !!req.transactions?.length
|
|
32
|
+
|| !!req.inputs?.length
|
|
33
|
+
|| !!req.outputs?.length
|
|
34
|
+
|| !!req.receipts?.length,
|
|
35
|
+
inputs: !!req.inputs?.length,
|
|
36
|
+
outputs: !!req.outputs?.length,
|
|
37
|
+
receipts: !!req.receipts?.length
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../src/graphql.ts"],"names":[],"mappings":";;;AAAA,uEAAmF;AAGnF,qEAAwD;AAGxD,qCAAyC;AAGzC,MAAa,iBAAiB;IAC1B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAI,CAAC;IAEvD,KAAK,CAAC,kBAAkB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAA;IACnD,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CACjB,QAAuC,EACvC,UAAoB;QAEpB,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAC1D,IAAA,yCAAmB,EAAC,QAAQ,EAAE,gBAAgB,CAAC,EAC/C,UAAU,CACb,EAAE,CAAC;YACA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,gCAAW,EAAC,CAAC,CAAC,CAAC,CAAA;YAClD,IAAA,yBAAgB,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAClC,MAAM,MAAM,CAAA;QAChB,CAAC;IACL,CAAC;CACJ;AA5BD,8CA4BC;AAGD,SAAS,gBAAgB,CAAC,GAAgB;IACtC,OAAO;QACH,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM;eACjC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;eACpB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM;eACrB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM;QAC7B,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;QAC5B,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM;QAC9B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM;KACnC,CAAA;AACL,CAAC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./data/model"), exports);
|
|
18
|
+
__exportStar(require("./source"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,2CAAwB"}
|