@subql/common-stellar 2.2.1-1 → 2.2.1-3
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/dist/.tsbuildinfo +1 -1
- package/dist/project/models.d.ts +44 -3
- package/dist/project/models.js +143 -1
- package/dist/project/models.js.map +1 -1
- package/dist/project/project.spec.js +25 -1
- package/dist/project/project.spec.js.map +1 -1
- package/dist/project/types.d.ts +2 -1
- package/dist/project/types.js.map +1 -1
- package/dist/project/utils.d.ts +5 -0
- package/dist/project/utils.js +21 -1
- package/dist/project/utils.js.map +1 -1
- package/dist/project/versioned/v1_0_0/model.d.ts +1 -0
- package/dist/project/versioned/v1_0_0/model.js +5 -0
- package/dist/project/versioned/v1_0_0/model.js.map +1 -1
- package/package.json +6 -5
- package/src/project/models.ts +112 -3
- package/src/project/project.spec.ts +31 -1
- package/src/project/types.ts +5 -1
- package/src/project/utils.ts +30 -0
- package/src/project/versioned/v1_0_0/model.ts +3 -0
- package/test/project_1.0.0.yaml +15 -1
package/dist/project/models.js
CHANGED
|
@@ -11,11 +11,143 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.CustomDataSourceBase = exports.FileReferenceImpl = exports.RuntimeDataSourceBase = exports.StellarProcessorOptions = exports.CustomMapping = exports.StellarMapping = exports.CustomHandler = exports.EventHandler = exports.EventFilter = void 0;
|
|
14
|
+
exports.CustomDataSourceBase = exports.FileReferenceImpl = exports.RuntimeDataSourceBase = exports.StellarProcessorOptions = exports.CustomMapping = exports.StellarMapping = exports.CustomHandler = exports.EventHandler = exports.EventFilter = exports.EffectHandler = exports.OperationHandler = exports.SorobanTransactionHandler = exports.TransactionHandler = exports.BlockHandler = exports.EffectFilter = exports.OperationFilter = exports.TransactionFilter = exports.BlockFilter = void 0;
|
|
15
15
|
const common_1 = require("@subql/common");
|
|
16
16
|
const types_stellar_1 = require("@subql/types-stellar");
|
|
17
17
|
const class_transformer_1 = require("class-transformer");
|
|
18
18
|
const class_validator_1 = require("class-validator");
|
|
19
|
+
const stellar_sdk_1 = require("stellar-sdk");
|
|
20
|
+
class BlockFilter {
|
|
21
|
+
}
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsInt)(),
|
|
25
|
+
__metadata("design:type", Number)
|
|
26
|
+
], BlockFilter.prototype, "modulo", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, class_validator_1.IsOptional)(),
|
|
29
|
+
(0, class_validator_1.IsString)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], BlockFilter.prototype, "timestamp", void 0);
|
|
32
|
+
exports.BlockFilter = BlockFilter;
|
|
33
|
+
class TransactionFilter {
|
|
34
|
+
}
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, class_validator_1.IsOptional)(),
|
|
37
|
+
(0, class_validator_1.IsString)(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], TransactionFilter.prototype, "account", void 0);
|
|
40
|
+
exports.TransactionFilter = TransactionFilter;
|
|
41
|
+
class OperationFilter {
|
|
42
|
+
}
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsOptional)(),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], OperationFilter.prototype, "type", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, class_validator_1.IsOptional)(),
|
|
49
|
+
(0, class_validator_1.IsString)(),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], OperationFilter.prototype, "source_account", void 0);
|
|
52
|
+
exports.OperationFilter = OperationFilter;
|
|
53
|
+
class EffectFilter {
|
|
54
|
+
}
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, class_validator_1.IsOptional)(),
|
|
57
|
+
(0, class_validator_1.IsString)(),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], EffectFilter.prototype, "type", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, class_validator_1.IsOptional)(),
|
|
62
|
+
(0, class_validator_1.IsString)(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], EffectFilter.prototype, "account", void 0);
|
|
65
|
+
exports.EffectFilter = EffectFilter;
|
|
66
|
+
class BlockHandler {
|
|
67
|
+
}
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, class_validator_1.IsObject)(),
|
|
70
|
+
(0, class_validator_1.IsOptional)(),
|
|
71
|
+
(0, class_transformer_1.Type)(() => BlockFilter),
|
|
72
|
+
__metadata("design:type", BlockFilter)
|
|
73
|
+
], BlockHandler.prototype, "filter", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, class_validator_1.IsEnum)(types_stellar_1.StellarHandlerKind, { groups: [types_stellar_1.StellarHandlerKind.Block] }),
|
|
76
|
+
__metadata("design:type", String)
|
|
77
|
+
], BlockHandler.prototype, "kind", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, class_validator_1.IsString)(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], BlockHandler.prototype, "handler", void 0);
|
|
82
|
+
exports.BlockHandler = BlockHandler;
|
|
83
|
+
class TransactionHandler {
|
|
84
|
+
}
|
|
85
|
+
__decorate([
|
|
86
|
+
(0, class_validator_1.IsObject)(),
|
|
87
|
+
(0, class_validator_1.IsOptional)(),
|
|
88
|
+
(0, class_transformer_1.Type)(() => TransactionFilter),
|
|
89
|
+
__metadata("design:type", TransactionFilter)
|
|
90
|
+
], TransactionHandler.prototype, "filter", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
(0, class_validator_1.IsEnum)(types_stellar_1.StellarHandlerKind, { groups: [types_stellar_1.StellarHandlerKind.Transaction] }),
|
|
93
|
+
__metadata("design:type", String)
|
|
94
|
+
], TransactionHandler.prototype, "kind", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, class_validator_1.IsString)(),
|
|
97
|
+
__metadata("design:type", String)
|
|
98
|
+
], TransactionHandler.prototype, "handler", void 0);
|
|
99
|
+
exports.TransactionHandler = TransactionHandler;
|
|
100
|
+
class SorobanTransactionHandler {
|
|
101
|
+
}
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, class_validator_1.IsObject)(),
|
|
104
|
+
(0, class_validator_1.IsOptional)(),
|
|
105
|
+
(0, class_transformer_1.Type)(() => TransactionFilter),
|
|
106
|
+
__metadata("design:type", TransactionFilter)
|
|
107
|
+
], SorobanTransactionHandler.prototype, "filter", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, class_validator_1.IsEnum)(types_stellar_1.StellarHandlerKind, { groups: [types_stellar_1.StellarHandlerKind.SorobanTransaction] }),
|
|
110
|
+
__metadata("design:type", String)
|
|
111
|
+
], SorobanTransactionHandler.prototype, "kind", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
(0, class_validator_1.IsString)(),
|
|
114
|
+
__metadata("design:type", String)
|
|
115
|
+
], SorobanTransactionHandler.prototype, "handler", void 0);
|
|
116
|
+
exports.SorobanTransactionHandler = SorobanTransactionHandler;
|
|
117
|
+
class OperationHandler {
|
|
118
|
+
}
|
|
119
|
+
__decorate([
|
|
120
|
+
(0, class_validator_1.IsObject)(),
|
|
121
|
+
(0, class_validator_1.IsOptional)(),
|
|
122
|
+
(0, class_transformer_1.Type)(() => OperationFilter),
|
|
123
|
+
__metadata("design:type", OperationFilter)
|
|
124
|
+
], OperationHandler.prototype, "filter", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
(0, class_validator_1.IsEnum)(types_stellar_1.StellarHandlerKind, { groups: [types_stellar_1.StellarHandlerKind.Operation] }),
|
|
127
|
+
__metadata("design:type", String)
|
|
128
|
+
], OperationHandler.prototype, "kind", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, class_validator_1.IsString)(),
|
|
131
|
+
__metadata("design:type", String)
|
|
132
|
+
], OperationHandler.prototype, "handler", void 0);
|
|
133
|
+
exports.OperationHandler = OperationHandler;
|
|
134
|
+
class EffectHandler {
|
|
135
|
+
}
|
|
136
|
+
__decorate([
|
|
137
|
+
(0, class_validator_1.IsObject)(),
|
|
138
|
+
(0, class_validator_1.IsOptional)(),
|
|
139
|
+
(0, class_transformer_1.Type)(() => EffectFilter),
|
|
140
|
+
__metadata("design:type", EffectFilter)
|
|
141
|
+
], EffectHandler.prototype, "filter", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
(0, class_validator_1.IsEnum)(types_stellar_1.StellarHandlerKind, { groups: [types_stellar_1.StellarHandlerKind.Effects] }),
|
|
144
|
+
__metadata("design:type", String)
|
|
145
|
+
], EffectHandler.prototype, "kind", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
(0, class_validator_1.IsString)(),
|
|
148
|
+
__metadata("design:type", String)
|
|
149
|
+
], EffectHandler.prototype, "handler", void 0);
|
|
150
|
+
exports.EffectHandler = EffectHandler;
|
|
19
151
|
class EventFilter {
|
|
20
152
|
}
|
|
21
153
|
__decorate([
|
|
@@ -70,6 +202,16 @@ __decorate([
|
|
|
70
202
|
const handlers = params.value;
|
|
71
203
|
return handlers.map((handler) => {
|
|
72
204
|
switch (handler.kind) {
|
|
205
|
+
case types_stellar_1.StellarHandlerKind.Block:
|
|
206
|
+
return (0, class_transformer_1.plainToClass)(BlockHandler, handler);
|
|
207
|
+
case types_stellar_1.StellarHandlerKind.Transaction:
|
|
208
|
+
return (0, class_transformer_1.plainToClass)(TransactionHandler, handler);
|
|
209
|
+
case types_stellar_1.StellarHandlerKind.SorobanTransaction:
|
|
210
|
+
return (0, class_transformer_1.plainToClass)(SorobanTransactionHandler, handler);
|
|
211
|
+
case types_stellar_1.StellarHandlerKind.Operation:
|
|
212
|
+
return (0, class_transformer_1.plainToClass)(OperationHandler, handler);
|
|
213
|
+
case types_stellar_1.StellarHandlerKind.Effects:
|
|
214
|
+
return (0, class_transformer_1.plainToClass)(EffectHandler, handler);
|
|
73
215
|
case types_stellar_1.StellarHandlerKind.Event:
|
|
74
216
|
return (0, class_transformer_1.plainToClass)(EventHandler, handler);
|
|
75
217
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/project/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {forbidNonWhitelisted} from '@subql/common';\nimport {\n StellarHandlerKind,\n StellarDatasourceKind,\n StellarEventFilter,\n SubqlCustomHandler,\n SubqlMapping,\n SubqlHandler,\n SubqlRuntimeHandler,\n SubqlRuntimeDatasource,\n SubqlCustomDatasource,\n FileReference,\n CustomDataSourceAsset,\n SubqlEventHandler,\n} from '@subql/types-stellar';\nimport {plainToClass, Transform, Type} from 'class-transformer';\nimport {IsArray, IsEnum, IsInt, IsOptional, IsString, IsObject, ValidateNested} from 'class-validator';\nimport {SubqlStellarProcessorOptions} from './types';\n\nexport class EventFilter implements StellarEventFilter {\n @IsOptional()\n @IsString()\n contractId?: string;\n @IsOptional()\n @IsArray()\n topics?: string[];\n}\n\nexport class EventHandler implements SubqlEventHandler {\n @forbidNonWhitelisted({topics: '', contractId: ''})\n @IsOptional()\n @ValidateNested()\n @Type(() => EventFilter)\n filter?: StellarEventFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Event]})\n kind: StellarHandlerKind.Event;\n @IsString()\n handler: string;\n}\n\nexport class CustomHandler implements SubqlCustomHandler {\n @IsString()\n kind: string;\n @IsString()\n handler: string;\n @IsObject()\n @IsOptional()\n filter?: Record<string, unknown>;\n}\n\nexport class StellarMapping implements SubqlMapping {\n @Transform((params) => {\n const handlers: SubqlHandler[] = params.value;\n return handlers.map((handler) => {\n switch (handler.kind) {\n case StellarHandlerKind.Event:\n return plainToClass(EventHandler, handler);\n default:\n throw new Error(`handler ${(handler as any).kind} not supported`);\n }\n });\n })\n @IsArray()\n @ValidateNested()\n handlers: SubqlHandler[];\n @IsString()\n file: string;\n}\n\nexport class CustomMapping implements SubqlMapping<SubqlCustomHandler> {\n @IsArray()\n @Type(() => CustomHandler)\n @ValidateNested()\n handlers: CustomHandler[];\n @IsString()\n file: string;\n}\n\nexport class StellarProcessorOptions implements SubqlStellarProcessorOptions {\n @IsOptional()\n @IsString()\n abi?: string;\n @IsOptional()\n @IsString()\n address?: string;\n}\n\nexport class RuntimeDataSourceBase<M extends SubqlMapping<SubqlRuntimeHandler>> implements SubqlRuntimeDatasource<M> {\n @IsEnum(StellarDatasourceKind, {\n groups: [StellarDatasourceKind.Runtime],\n })\n kind: StellarDatasourceKind.Runtime;\n @Type(() => StellarMapping)\n @ValidateNested()\n mapping: M;\n @IsOptional()\n @IsInt()\n startBlock?: number;\n @IsOptional()\n assets?: Map<string, FileReference>;\n @IsOptional()\n @ValidateNested()\n @Type(() => StellarProcessorOptions)\n options?: StellarProcessorOptions;\n}\n\nexport class FileReferenceImpl implements FileReference {\n @IsString()\n file: string;\n}\n\nexport class CustomDataSourceBase<K extends string, M extends SubqlMapping = SubqlMapping<SubqlCustomHandler>>\n implements SubqlCustomDatasource<K, M>\n{\n @IsString()\n kind: K;\n @Type(() => CustomMapping)\n @ValidateNested()\n mapping: M;\n @IsOptional()\n @IsInt()\n startBlock?: number;\n @Type(() => FileReferenceImpl)\n @ValidateNested({each: true})\n assets: Map<string, CustomDataSourceAsset>;\n @Type(() => FileReferenceImpl)\n @IsObject()\n processor: FileReference;\n @IsOptional()\n @ValidateNested()\n options?: StellarProcessorOptions;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/project/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {forbidNonWhitelisted} from '@subql/common';\nimport {\n StellarHandlerKind,\n StellarDatasourceKind,\n SorobanEventFilter,\n SubqlCustomHandler,\n SubqlMapping,\n SubqlHandler,\n SubqlRuntimeHandler,\n SubqlRuntimeDatasource,\n SubqlCustomDatasource,\n FileReference,\n CustomDataSourceAsset,\n StellarBlockFilter,\n StellarTransactionFilter,\n StellarOperationFilter,\n StellarEffectFilter,\n SubqlBlockHandler,\n SubqlTransactionHandler,\n SubqlOperationHandler,\n SubqlEffectHandler,\n SubqlEventHandler,\n SubqlSorobanTransactionHandler,\n} from '@subql/types-stellar';\nimport {plainToClass, Transform, Type} from 'class-transformer';\nimport {IsArray, IsEnum, IsInt, IsOptional, IsString, IsObject, ValidateNested} from 'class-validator';\nimport {Horizon} from 'stellar-sdk';\nimport {SubqlStellarProcessorOptions} from './types';\n\nexport class BlockFilter implements StellarBlockFilter {\n @IsOptional()\n @IsInt()\n modulo?: number;\n @IsOptional()\n @IsString()\n timestamp?: string;\n}\n\nexport class TransactionFilter implements StellarTransactionFilter {\n @IsOptional()\n @IsString()\n account?: string;\n}\n\nexport class OperationFilter implements StellarOperationFilter {\n @IsOptional()\n type: Horizon.OperationResponseType;\n\n @IsOptional()\n @IsString()\n source_account?: string;\n}\n\nexport class EffectFilter implements StellarEffectFilter {\n @IsOptional()\n @IsString()\n type?: string;\n\n @IsOptional()\n @IsString()\n account?: string;\n}\n\nexport class BlockHandler implements SubqlBlockHandler {\n @IsObject()\n @IsOptional()\n @Type(() => BlockFilter)\n filter?: BlockFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Block]})\n kind: StellarHandlerKind.Block;\n @IsString()\n handler: string;\n}\n\nexport class TransactionHandler implements SubqlTransactionHandler {\n @IsObject()\n @IsOptional()\n @Type(() => TransactionFilter)\n filter?: TransactionFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Transaction]})\n kind: StellarHandlerKind.Transaction;\n @IsString()\n handler: string;\n}\n\nexport class SorobanTransactionHandler implements SubqlSorobanTransactionHandler {\n @IsObject()\n @IsOptional()\n @Type(() => TransactionFilter)\n filter?: TransactionFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.SorobanTransaction]})\n kind: StellarHandlerKind.SorobanTransaction;\n @IsString()\n handler: string;\n}\n\nexport class OperationHandler implements SubqlOperationHandler {\n @IsObject()\n @IsOptional()\n @Type(() => OperationFilter)\n filter?: OperationFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Operation]})\n kind: StellarHandlerKind.Operation;\n @IsString()\n handler: string;\n}\n\nexport class EffectHandler implements SubqlEffectHandler {\n @IsObject()\n @IsOptional()\n @Type(() => EffectFilter)\n filter?: EffectFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Effects]})\n kind: StellarHandlerKind.Effects;\n @IsString()\n handler: string;\n}\n\nexport class EventFilter implements SorobanEventFilter {\n @IsOptional()\n @IsString()\n contractId?: string;\n @IsOptional()\n @IsArray()\n topics?: string[];\n}\n\nexport class EventHandler implements SubqlEventHandler {\n @forbidNonWhitelisted({topics: '', contractId: ''})\n @IsOptional()\n @ValidateNested()\n @Type(() => EventFilter)\n filter?: SorobanEventFilter;\n @IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Event]})\n kind: StellarHandlerKind.Event;\n @IsString()\n handler: string;\n}\n\nexport class CustomHandler implements SubqlCustomHandler {\n @IsString()\n kind: string;\n @IsString()\n handler: string;\n @IsObject()\n @IsOptional()\n filter?: Record<string, unknown>;\n}\n\nexport class StellarMapping implements SubqlMapping {\n @Transform((params) => {\n const handlers: SubqlHandler[] = params.value;\n return handlers.map((handler) => {\n switch (handler.kind) {\n case StellarHandlerKind.Block:\n return plainToClass(BlockHandler, handler);\n case StellarHandlerKind.Transaction:\n return plainToClass(TransactionHandler, handler);\n case StellarHandlerKind.SorobanTransaction:\n return plainToClass(SorobanTransactionHandler, handler);\n case StellarHandlerKind.Operation:\n return plainToClass(OperationHandler, handler);\n case StellarHandlerKind.Effects:\n return plainToClass(EffectHandler, handler);\n case StellarHandlerKind.Event:\n return plainToClass(EventHandler, handler);\n default:\n throw new Error(`handler ${(handler as any).kind} not supported`);\n }\n });\n })\n @IsArray()\n @ValidateNested()\n handlers: SubqlHandler[];\n @IsString()\n file: string;\n}\n\nexport class CustomMapping implements SubqlMapping<SubqlCustomHandler> {\n @IsArray()\n @Type(() => CustomHandler)\n @ValidateNested()\n handlers: CustomHandler[];\n @IsString()\n file: string;\n}\n\nexport class StellarProcessorOptions implements SubqlStellarProcessorOptions {\n @IsOptional()\n @IsString()\n abi?: string;\n @IsOptional()\n @IsString()\n address?: string;\n}\n\nexport class RuntimeDataSourceBase<M extends SubqlMapping<SubqlRuntimeHandler>> implements SubqlRuntimeDatasource<M> {\n @IsEnum(StellarDatasourceKind, {\n groups: [StellarDatasourceKind.Runtime],\n })\n kind: StellarDatasourceKind.Runtime;\n @Type(() => StellarMapping)\n @ValidateNested()\n mapping: M;\n @IsOptional()\n @IsInt()\n startBlock?: number;\n @IsOptional()\n assets?: Map<string, FileReference>;\n @IsOptional()\n @ValidateNested()\n @Type(() => StellarProcessorOptions)\n options?: StellarProcessorOptions;\n}\n\nexport class FileReferenceImpl implements FileReference {\n @IsString()\n file: string;\n}\n\nexport class CustomDataSourceBase<K extends string, M extends SubqlMapping = SubqlMapping<SubqlCustomHandler>>\n implements SubqlCustomDatasource<K, M>\n{\n @IsString()\n kind: K;\n @Type(() => CustomMapping)\n @ValidateNested()\n mapping: M;\n @IsOptional()\n @IsInt()\n startBlock?: number;\n @Type(() => FileReferenceImpl)\n @ValidateNested({each: true})\n assets: Map<string, CustomDataSourceAsset>;\n @Type(() => FileReferenceImpl)\n @IsObject()\n processor: FileReference;\n @IsOptional()\n @ValidateNested()\n options?: StellarProcessorOptions;\n}\n"]}
|
|
@@ -22,12 +22,36 @@ describe('project.yaml', () => {
|
|
|
22
22
|
it('can validate a v1.0.0 project.yaml with templates', () => {
|
|
23
23
|
expect(() => (0, load_1.loadStellarProjectManifest)(path_1.default.join(projectsDir, 'project_1.0.0.yaml'))).not.toThrow();
|
|
24
24
|
});
|
|
25
|
-
it('get v1.0.0 deployment mapping filter', () => {
|
|
25
|
+
it('get v1.0.0 deployment mapping filter - transaction', () => {
|
|
26
26
|
const manifestVersioned = (0, load_1.loadStellarProjectManifest)(path_1.default.join(projectsDir, 'project_1.0.0.yaml'));
|
|
27
27
|
const deployment = manifestVersioned.asV1_0_0.deployment;
|
|
28
28
|
const filter = deployment.dataSources[0].mapping.handlers[0].filter;
|
|
29
29
|
const deploymentString = manifestVersioned.toDeployment();
|
|
30
30
|
expect(filter).not.toBeNull();
|
|
31
|
+
expect(deploymentString).toContain('account');
|
|
32
|
+
});
|
|
33
|
+
it('get v1.0.0 deployment mapping filter - operation', () => {
|
|
34
|
+
const manifestVersioned = (0, load_1.loadStellarProjectManifest)(path_1.default.join(projectsDir, 'project_1.0.0.yaml'));
|
|
35
|
+
const deployment = manifestVersioned.asV1_0_0.deployment;
|
|
36
|
+
const filter = deployment.dataSources[0].mapping.handlers[1].filter;
|
|
37
|
+
const deploymentString = manifestVersioned.toDeployment();
|
|
38
|
+
expect(filter).not.toBeNull();
|
|
39
|
+
expect(deploymentString).toContain('account_merge');
|
|
40
|
+
});
|
|
41
|
+
it('get v1.0.0 deployment mapping filter - effect', () => {
|
|
42
|
+
const manifestVersioned = (0, load_1.loadStellarProjectManifest)(path_1.default.join(projectsDir, 'project_1.0.0.yaml'));
|
|
43
|
+
const deployment = manifestVersioned.asV1_0_0.deployment;
|
|
44
|
+
const filter = deployment.dataSources[0].mapping.handlers[2].filter;
|
|
45
|
+
const deploymentString = manifestVersioned.toDeployment();
|
|
46
|
+
expect(filter).not.toBeNull();
|
|
47
|
+
expect(deploymentString).toContain('account_credited');
|
|
48
|
+
});
|
|
49
|
+
it('get v1.0.0 deployment mapping filter - events', () => {
|
|
50
|
+
const manifestVersioned = (0, load_1.loadStellarProjectManifest)(path_1.default.join(projectsDir, 'project_1.0.0.yaml'));
|
|
51
|
+
const deployment = manifestVersioned.asV1_0_0.deployment;
|
|
52
|
+
const filter = deployment.dataSources[0].mapping.handlers[3].filter;
|
|
53
|
+
const deploymentString = manifestVersioned.toDeployment();
|
|
54
|
+
expect(filter).not.toBeNull();
|
|
31
55
|
expect(deploymentString).toContain('COUNTER');
|
|
32
56
|
});
|
|
33
57
|
it('can convert genesis hash in v1.0.0 to chainId in deployment', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.spec.js","sourceRoot":"","sources":["../../src/project/project.spec.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;AAEnC,gDAAwB;AACxB,0CAAmD;AACnD,qDAA6C;AAC7C,wDAA4G;AAC5G,iCAAkD;AAElD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEvD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAA0B,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACjG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAA0B,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAA0B,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAA0B,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACvG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"project.spec.js","sourceRoot":"","sources":["../../src/project/project.spec.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport path from 'path';\nimport {RunnerQueryBaseModel} from '@subql/common';\nimport {validateSync} from 'class-validator';\nimport {DeploymentV1_0_0, StellarRunnerNodeImpl, StellarRunnerSpecsImpl} from '../project/versioned/v1_0_0';\nimport {loadStellarProjectManifest} from './load';\n\nconst projectsDir = path.join(__dirname, '../../test');\n\ndescribe('project.yaml', () => {\n it('can validate project.yaml', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_falsy.yaml'))).toThrow();\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_falsy_array.yaml'))).toThrow();\n });\n\n it('can fail validation if version not supported', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_invalid_version.yaml'))).toThrow();\n });\n\n it('can validate a v1.0.0 project.yaml with templates', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'))).not.toThrow();\n });\n\n it('get v1.0.0 deployment mapping filter - transaction', () => {\n const manifestVersioned = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n\n const deployment = manifestVersioned.asV1_0_0.deployment;\n const filter = deployment.dataSources[0].mapping.handlers[0].filter;\n const deploymentString = manifestVersioned.toDeployment();\n expect(filter).not.toBeNull();\n expect(deploymentString).toContain('account');\n });\n\n it('get v1.0.0 deployment mapping filter - operation', () => {\n const manifestVersioned = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n\n const deployment = manifestVersioned.asV1_0_0.deployment;\n const filter = deployment.dataSources[0].mapping.handlers[1].filter;\n const deploymentString = manifestVersioned.toDeployment();\n expect(filter).not.toBeNull();\n expect(deploymentString).toContain('account_merge');\n });\n\n it('get v1.0.0 deployment mapping filter - effect', () => {\n const manifestVersioned = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n\n const deployment = manifestVersioned.asV1_0_0.deployment;\n const filter = deployment.dataSources[0].mapping.handlers[2].filter;\n const deploymentString = manifestVersioned.toDeployment();\n expect(filter).not.toBeNull();\n expect(deploymentString).toContain('account_credited');\n });\n\n it('get v1.0.0 deployment mapping filter - events', () => {\n const manifestVersioned = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml'));\n\n const deployment = manifestVersioned.asV1_0_0.deployment;\n const filter = deployment.dataSources[0].mapping.handlers[3].filter;\n const deploymentString = manifestVersioned.toDeployment();\n expect(filter).not.toBeNull();\n expect(deploymentString).toContain('COUNTER');\n });\n\n it('can convert genesis hash in v1.0.0 to chainId in deployment', () => {\n const deployment = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0.yaml')).asV1_0_0.deployment;\n expect(deployment.network.chainId).not.toBeNull();\n console.log(deployment.network.chainId);\n });\n\n it.skip('can get chainId for deployment', () => {\n const deployment = loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0_chainId.yaml')).asV1_0_0\n .deployment;\n expect(deployment.network.chainId).toBe('moonbeamChainId');\n });\n\n it('can validate deployment runner versions', () => {\n const deployment = new DeploymentV1_0_0();\n const nodeImp = new StellarRunnerNodeImpl();\n const queryImp = new RunnerQueryBaseModel();\n deployment.specVersion = '1.0.0';\n deployment.runner = new StellarRunnerSpecsImpl();\n\n nodeImp.name = '@subql/node-stellar';\n nodeImp.version = '0.29.1';\n deployment.runner.node = nodeImp;\n\n queryImp.name = '@subql/query';\n queryImp.version = '0.213.1';\n\n deployment.runner.query = queryImp;\n\n validateSync(deployment.runner, {whitelist: true, forbidNonWhitelisted: true});\n });\n\n it('can validate a v1.0.0 project.yaml with unsupported runner node', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0_bad_runner.yaml'))).toThrow();\n });\n\n //TODO, pre-release should be excluded\n it.skip('can throw error with unsupported runner version', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0_bad_runner_version.yaml'))).toThrow();\n });\n\n it('can validate a v1.0.0 project.yaml runner and datasource mismatches', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_1.0.0_runner_ds_mismatch.yaml'))).toThrow();\n });\n\n it('can fail validation if custom ds missing processor', () => {\n expect(() => loadStellarProjectManifest(path.join(projectsDir, 'project_0.2.0_invalid_custom_ds.yaml'))).toThrow();\n });\n});\n"]}
|
package/dist/project/types.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { IProjectManifest, ProjectNetworkConfig } from '@subql/common';
|
|
2
2
|
import { SubqlDatasource } from '@subql/types-stellar';
|
|
3
|
-
export { SubqlStellarProcessorOptions, SubqlRuntimeHandler, SubqlCustomHandler, SubqlHandler, StellarHandlerKind, SubqlDatasource as SubqlStellarDataSource, SubqlCustomDatasource as SubqlStellarCustomDataSource,
|
|
3
|
+
export { SubqlStellarProcessorOptions, SubqlRuntimeHandler, SubqlCustomHandler, SubqlHandler, StellarHandlerKind, SubqlDatasource as SubqlStellarDataSource, SubqlCustomDatasource as SubqlStellarCustomDataSource, StellarBlockFilter, StellarTransactionFilter, StellarOperationFilter, StellarEffectFilter, SubqlDatasourceProcessor, SubqlHandlerFilter, StellarDatasourceKind, StellarRuntimeHandlerInputMap as StellarRuntimeHandlerInputMap, } from '@subql/types-stellar';
|
|
4
4
|
export type IStellarProjectManifest = IProjectManifest<SubqlDatasource>;
|
|
5
5
|
export interface StellarProjectNetworkConfig extends ProjectNetworkConfig {
|
|
6
6
|
genesisHash?: string;
|
|
7
7
|
chainId?: string;
|
|
8
|
+
soroban: string;
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAKnC,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAKnC,8EAA8E;AAC9E,sDAgB8B;AAX5B,mHAAA,kBAAkB,OAAA;AASlB,sHAAA,qBAAqB,OAAA","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {IProjectManifest, ProjectNetworkConfig} from '@subql/common';\nimport {SubqlDatasource} from '@subql/types-stellar';\n\n// All of these used to be redefined in this file, re-exporting for simplicity\nexport {\n SubqlStellarProcessorOptions,\n SubqlRuntimeHandler,\n SubqlCustomHandler,\n SubqlHandler,\n StellarHandlerKind,\n SubqlDatasource as SubqlStellarDataSource,\n SubqlCustomDatasource as SubqlStellarCustomDataSource,\n StellarBlockFilter,\n StellarTransactionFilter,\n StellarOperationFilter,\n StellarEffectFilter,\n SubqlDatasourceProcessor,\n SubqlHandlerFilter,\n StellarDatasourceKind,\n StellarRuntimeHandlerInputMap as StellarRuntimeHandlerInputMap,\n} from '@subql/types-stellar';\n\nexport type IStellarProjectManifest = IProjectManifest<SubqlDatasource>;\n\nexport interface StellarProjectNetworkConfig extends ProjectNetworkConfig {\n genesisHash?: string;\n chainId?: string;\n soroban: string;\n}\n"]}
|
package/dist/project/utils.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { SecondLayerHandlerProcessor, SubqlCustomDatasource, SubqlDatasource, StellarHandlerKind, SubqlRuntimeDatasource } from '@subql/types-stellar';
|
|
2
|
+
export declare function isBlockHandlerProcessor<B>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Block, unknown, B>;
|
|
3
|
+
export declare function isTransactionHandlerProcessor<T>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Transaction, unknown, T>;
|
|
4
|
+
export declare function isSorobanTransactionHandlerProcessor<T>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.SorobanTransaction, unknown, T>;
|
|
5
|
+
export declare function isOperationHandlerProcessor<O>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Operation, unknown, O>;
|
|
6
|
+
export declare function isEffectHandlerProcessor<E>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Effects, unknown, E>;
|
|
2
7
|
export declare function isEventHandlerProcessor<E>(hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Event, unknown, E>;
|
|
3
8
|
export declare function isCustomDs(ds: SubqlDatasource): ds is SubqlCustomDatasource<string>;
|
|
4
9
|
export declare function isRuntimeDs(ds: SubqlDatasource): ds is SubqlRuntimeDatasource;
|
package/dist/project/utils.js
CHANGED
|
@@ -2,8 +2,28 @@
|
|
|
2
2
|
// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors
|
|
3
3
|
// SPDX-License-Identifier: GPL-3.0
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.isRuntimeDs = exports.isCustomDs = exports.isEventHandlerProcessor = void 0;
|
|
5
|
+
exports.isRuntimeDs = exports.isCustomDs = exports.isEventHandlerProcessor = exports.isEffectHandlerProcessor = exports.isOperationHandlerProcessor = exports.isSorobanTransactionHandlerProcessor = exports.isTransactionHandlerProcessor = exports.isBlockHandlerProcessor = void 0;
|
|
6
6
|
const types_stellar_1 = require("@subql/types-stellar");
|
|
7
|
+
function isBlockHandlerProcessor(hp) {
|
|
8
|
+
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.Block;
|
|
9
|
+
}
|
|
10
|
+
exports.isBlockHandlerProcessor = isBlockHandlerProcessor;
|
|
11
|
+
function isTransactionHandlerProcessor(hp) {
|
|
12
|
+
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.Transaction;
|
|
13
|
+
}
|
|
14
|
+
exports.isTransactionHandlerProcessor = isTransactionHandlerProcessor;
|
|
15
|
+
function isSorobanTransactionHandlerProcessor(hp) {
|
|
16
|
+
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.SorobanTransaction;
|
|
17
|
+
}
|
|
18
|
+
exports.isSorobanTransactionHandlerProcessor = isSorobanTransactionHandlerProcessor;
|
|
19
|
+
function isOperationHandlerProcessor(hp) {
|
|
20
|
+
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.Operation;
|
|
21
|
+
}
|
|
22
|
+
exports.isOperationHandlerProcessor = isOperationHandlerProcessor;
|
|
23
|
+
function isEffectHandlerProcessor(hp) {
|
|
24
|
+
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.Effects;
|
|
25
|
+
}
|
|
26
|
+
exports.isEffectHandlerProcessor = isEffectHandlerProcessor;
|
|
7
27
|
function isEventHandlerProcessor(hp) {
|
|
8
28
|
return hp.baseHandlerKind === types_stellar_1.StellarHandlerKind.Event;
|
|
9
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/project/utils.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,wDAO8B;AAE9B,SAAgB,uBAAuB,CACrC,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,KAAK,CAAC;AACzD,CAAC;AAJD,0DAIC;AAED,SAAgB,UAAU,CAAC,EAAmB;IAC5C,OAAO,EAAE,CAAC,IAAI,KAAK,qCAAqB,CAAC,OAAO,IAAI,CAAC,CAAE,EAAoC,CAAC,SAAS,CAAC;AACxG,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CAAC,EAAmB;IAC7C,OAAO,EAAE,CAAC,IAAI,KAAK,qCAAqB,CAAC,OAAO,CAAC;AACnD,CAAC;AAFD,kCAEC","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n SecondLayerHandlerProcessor,\n SubqlCustomDatasource,\n SubqlDatasource,\n StellarDatasourceKind,\n StellarHandlerKind,\n SubqlRuntimeDatasource,\n} from '@subql/types-stellar';\n\nexport function isEventHandlerProcessor<E>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Event, unknown, E> {\n return hp.baseHandlerKind === StellarHandlerKind.Event;\n}\n\nexport function isCustomDs(ds: SubqlDatasource): ds is SubqlCustomDatasource<string> {\n return ds.kind !== StellarDatasourceKind.Runtime && !!(ds as SubqlCustomDatasource<string>).processor;\n}\n\nexport function isRuntimeDs(ds: SubqlDatasource): ds is SubqlRuntimeDatasource {\n return ds.kind === StellarDatasourceKind.Runtime;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/project/utils.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;AAEnC,wDAO8B;AAE9B,SAAgB,uBAAuB,CACrC,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,KAAK,CAAC;AACzD,CAAC;AAJD,0DAIC;AAED,SAAgB,6BAA6B,CAC3C,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,WAAW,CAAC;AAC/D,CAAC;AAJD,sEAIC;AAED,SAAgB,oCAAoC,CAClD,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,kBAAkB,CAAC;AACtE,CAAC;AAJD,oFAIC;AAED,SAAgB,2BAA2B,CACzC,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,SAAS,CAAC;AAC7D,CAAC;AAJD,kEAIC;AAED,SAAgB,wBAAwB,CACtC,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,OAAO,CAAC;AAC3D,CAAC;AAJD,4DAIC;AAED,SAAgB,uBAAuB,CACrC,EAAqE;IAErE,OAAO,EAAE,CAAC,eAAe,KAAK,kCAAkB,CAAC,KAAK,CAAC;AACzD,CAAC;AAJD,0DAIC;AAED,SAAgB,UAAU,CAAC,EAAmB;IAC5C,OAAO,EAAE,CAAC,IAAI,KAAK,qCAAqB,CAAC,OAAO,IAAI,CAAC,CAAE,EAAoC,CAAC,SAAS,CAAC;AACxG,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CAAC,EAAmB;IAC7C,OAAO,EAAE,CAAC,IAAI,KAAK,qCAAqB,CAAC,OAAO,CAAC;AACnD,CAAC;AAFD,kCAEC","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n SecondLayerHandlerProcessor,\n SubqlCustomDatasource,\n SubqlDatasource,\n StellarDatasourceKind,\n StellarHandlerKind,\n SubqlRuntimeDatasource,\n} from '@subql/types-stellar';\n\nexport function isBlockHandlerProcessor<B>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Block, unknown, B> {\n return hp.baseHandlerKind === StellarHandlerKind.Block;\n}\n\nexport function isTransactionHandlerProcessor<T>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Transaction, unknown, T> {\n return hp.baseHandlerKind === StellarHandlerKind.Transaction;\n}\n\nexport function isSorobanTransactionHandlerProcessor<T>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.SorobanTransaction, unknown, T> {\n return hp.baseHandlerKind === StellarHandlerKind.SorobanTransaction;\n}\n\nexport function isOperationHandlerProcessor<O>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Operation, unknown, O> {\n return hp.baseHandlerKind === StellarHandlerKind.Operation;\n}\n\nexport function isEffectHandlerProcessor<E>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Effects, unknown, E> {\n return hp.baseHandlerKind === StellarHandlerKind.Effects;\n}\n\nexport function isEventHandlerProcessor<E>(\n hp: SecondLayerHandlerProcessor<StellarHandlerKind, unknown, unknown>\n): hp is SecondLayerHandlerProcessor<StellarHandlerKind.Event, unknown, E> {\n return hp.baseHandlerKind === StellarHandlerKind.Event;\n}\n\nexport function isCustomDs(ds: SubqlDatasource): ds is SubqlCustomDatasource<string> {\n return ds.kind !== StellarDatasourceKind.Runtime && !!(ds as SubqlCustomDatasource<string>).processor;\n}\n\nexport function isRuntimeDs(ds: SubqlDatasource): ds is SubqlRuntimeDatasource {\n return ds.kind === StellarDatasourceKind.Runtime;\n}\n"]}
|
|
@@ -32,6 +32,7 @@ export declare class ProjectNetworkDeploymentV1_0_0 {
|
|
|
32
32
|
}
|
|
33
33
|
export declare class ProjectNetworkV1_0_0 extends ProjectNetworkDeploymentV1_0_0 {
|
|
34
34
|
endpoint?: string | string[];
|
|
35
|
+
soroban?: string;
|
|
35
36
|
dictionary?: string;
|
|
36
37
|
}
|
|
37
38
|
export declare class DeploymentV1_0_0 {
|
|
@@ -101,6 +101,11 @@ __decorate([
|
|
|
101
101
|
(0, class_validator_1.IsOptional)(),
|
|
102
102
|
__metadata("design:type", Object)
|
|
103
103
|
], ProjectNetworkV1_0_0.prototype, "endpoint", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, class_validator_1.IsString)(),
|
|
106
|
+
(0, class_validator_1.IsOptional)(),
|
|
107
|
+
__metadata("design:type", String)
|
|
108
|
+
], ProjectNetworkV1_0_0.prototype, "soroban", void 0);
|
|
104
109
|
__decorate([
|
|
105
110
|
(0, class_validator_1.IsString)(),
|
|
106
111
|
(0, class_validator_1.IsOptional)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/project/versioned/v1_0_0/model.ts"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,mCAAmC;;;;;;;;;;;;AAEnC,0CAUuB;AAEvB,yDAAmF;AACnF,qDAUyB;AACzB,yCAAyF;AAIzF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,MAAa,qBAAsB,SAAQ,uBAAc;CAGxD;AAFC;IAAC,IAAA,0BAAQ,GAAE;;mDACE;AAFf,sDAGC;AAED,MAAa,qBAAsB,SAAQ,uBAAc;CAKxD;AAJC;IAAC,IAAA,sBAAI,EAAC,CAAC,iBAAiB,CAAC,EAAE;QACzB,OAAO,EAAE,qDAAqD,iBAAiB,GAAG;KACnF,CAAC;;mDACW;AAJf,sDAKC;AAED,MAAa,4BACX,SAAQ,8BAAwD;IAGhE,QAAQ;QACN,OAAO,IAAA,uBAAc,EAAC,IAAI,EAAE,wCAAwC,CAAC,CAAC;IACxE,CAAC;CACF;AAPD,oEAOC;AAED,MAAa,2BAIX,SAAQ,6BAA0B;IAGlC,QAAQ;QACN,OAAO,IAAA,uBAAc,EAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;IACvE,CAAC;CACF;AAVD,kEAUC;AAED,MAAa,6BAA8B,SAAQ,4BAA4B;CAG9E;AAFC;IAAC,IAAA,0BAAQ,GAAE;;2DACE;AAFf,sEAGC;AAED,MAAa,4BAA6B,SAAQ,2BAA2B;CAG5E;AAFC;IAAC,IAAA,0BAAQ,GAAE;;0DACE;AAFf,oEAGC;AAED,MAAa,sBAAsB;CASlC;AARC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC;;oDACnB;AACf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAoB,CAAC;;qDAChB;AARnB,wDASC;AAED,MAAa,8BAA8B;CAY1C;AAXC;IAAC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAC,KAAK,EAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACvD,IAAA,0BAAQ,GAAE;;+DACK;AAChB;IAAC,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAQ,CAAC;IACpB,IAAA,4BAAU,GAAE;8BACA,iBAAQ;kEAAC;AACtB;IAAC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;oEACyB;AAXrC,wEAYC;AAED,MAAa,oBAAqB,SAAQ,8BAA8B;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/project/versioned/v1_0_0/model.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2020-2023 SubQuery Pte Ltd authors & contributors\n// SPDX-License-Identifier: GPL-3.0\n\nimport {\n BaseMapping,\n FileType,\n NodeSpec,\n ProjectManifestBaseImpl,\n QuerySpec,\n RunnerNodeImpl,\n RunnerQueryBaseModel,\n RunnerSpecs,\n validateObject,\n} from '@subql/common';\nimport {SubqlCustomDatasource, SubqlMapping, SubqlRuntimeDatasource} from '@subql/types-stellar';\nimport {plainToClass, Transform, TransformFnParams, Type} from 'class-transformer';\nimport {\n Equals,\n IsArray,\n IsIn,\n IsNotEmpty,\n IsObject,\n IsOptional,\n IsString,\n ValidateNested,\n validateSync,\n} from 'class-validator';\nimport {CustomDataSourceBase, StellarMapping, RuntimeDataSourceBase} from '../../models';\nimport {SubqlStellarDataSource, SubqlRuntimeHandler} from '../../types';\nimport {CustomDatasourceTemplate, StellarProjectManifestV1_0_0, RuntimeDatasourceTemplate} from './types';\n\nconst Stellar_NODE_NAME = `@subql/node-stellar`;\n\nexport class StellarProjectMapping extends StellarMapping {\n @IsString()\n file: string;\n}\n\nexport class StellarRunnerNodeImpl extends RunnerNodeImpl {\n @IsIn([Stellar_NODE_NAME], {\n message: `Runner Substrate node name incorrect, suppose be '${Stellar_NODE_NAME}'`,\n })\n name: string;\n}\n\nexport class StellarRuntimeDataSourceImpl\n extends RuntimeDataSourceBase<SubqlMapping<SubqlRuntimeHandler>>\n implements SubqlRuntimeDatasource\n{\n validate(): void {\n return validateObject(this, 'failed to validate runtime datasource.');\n }\n}\n\nexport class StellarCustomDataSourceImpl<\n K extends string = string,\n M extends BaseMapping<any, any> = BaseMapping<Record<string, unknown>, any>\n >\n extends CustomDataSourceBase<K, M>\n implements SubqlCustomDatasource<K, M>\n{\n validate(): void {\n return validateObject(this, 'failed to validate custom datasource.');\n }\n}\n\nexport class RuntimeDatasourceTemplateImpl extends StellarRuntimeDataSourceImpl implements RuntimeDatasourceTemplate {\n @IsString()\n name: string;\n}\n\nexport class CustomDatasourceTemplateImpl extends StellarCustomDataSourceImpl implements CustomDatasourceTemplate {\n @IsString()\n name: string;\n}\n\nexport class StellarRunnerSpecsImpl implements RunnerSpecs {\n @IsObject()\n @ValidateNested()\n @Type(() => StellarRunnerNodeImpl)\n node: NodeSpec;\n @IsObject()\n @ValidateNested()\n @Type(() => RunnerQueryBaseModel)\n query: QuerySpec;\n}\n\nexport class ProjectNetworkDeploymentV1_0_0 {\n @IsNotEmpty()\n @Transform(({value}: TransformFnParams) => value.trim())\n @IsString()\n chainId: string;\n @ValidateNested()\n @Type(() => FileType)\n @IsOptional()\n chaintypes?: FileType;\n @IsOptional()\n @IsArray()\n bypassBlocks?: (number | string)[];\n}\n\nexport class ProjectNetworkV1_0_0 extends ProjectNetworkDeploymentV1_0_0 {\n @IsString({each: true})\n @IsOptional()\n endpoint?: string | string[];\n @IsString()\n @IsOptional()\n soroban?: string;\n @IsString()\n @IsOptional()\n dictionary?: string;\n}\n\nexport class DeploymentV1_0_0 {\n @Transform((params) => {\n if (params.value.genesisHash && !params.value.chainId) {\n params.value.chainId = params.value.genesisHash;\n }\n return plainToClass(ProjectNetworkDeploymentV1_0_0, params.value);\n })\n @ValidateNested()\n @Type(() => ProjectNetworkDeploymentV1_0_0)\n network: ProjectNetworkDeploymentV1_0_0;\n @Equals('1.0.0')\n @IsString()\n specVersion: string;\n @IsObject()\n @ValidateNested()\n @Type(() => StellarRunnerSpecsImpl)\n runner: RunnerSpecs;\n @ValidateNested()\n @Type(() => FileType)\n schema: FileType;\n @IsArray()\n @ValidateNested()\n @Type(() => StellarCustomDataSourceImpl, {\n discriminator: {\n property: 'kind',\n subTypes: [{value: StellarRuntimeDataSourceImpl, name: 'stellar/Runtime'}],\n },\n keepDiscriminatorProperty: true,\n })\n dataSources: (SubqlRuntimeDatasource | SubqlCustomDatasource)[];\n @IsOptional()\n @IsArray()\n @ValidateNested()\n @Type(() => CustomDatasourceTemplateImpl, {\n discriminator: {\n property: 'kind',\n subTypes: [{value: RuntimeDatasourceTemplateImpl, name: 'stellar/Runtime'}],\n },\n keepDiscriminatorProperty: true,\n })\n templates?: (RuntimeDatasourceTemplate | CustomDatasourceTemplate)[];\n}\n\nexport class ProjectManifestV1_0_0Impl<D extends object = DeploymentV1_0_0>\n extends ProjectManifestBaseImpl<D>\n implements StellarProjectManifestV1_0_0\n{\n @Equals('1.0.0')\n specVersion: string;\n @Type(() => StellarCustomDataSourceImpl, {\n discriminator: {\n property: 'kind',\n subTypes: [{value: StellarRuntimeDataSourceImpl, name: 'stellar/Runtime'}],\n },\n keepDiscriminatorProperty: true,\n })\n dataSources: SubqlStellarDataSource[];\n @Type(() => ProjectNetworkV1_0_0)\n network: ProjectNetworkV1_0_0;\n @IsString()\n name: string;\n @IsString()\n version: string;\n @ValidateNested()\n @Type(() => FileType)\n schema: FileType;\n @IsOptional()\n @IsArray()\n @ValidateNested()\n @Type(() => CustomDatasourceTemplateImpl, {\n discriminator: {\n property: 'kind',\n subTypes: [{value: RuntimeDatasourceTemplateImpl, name: 'stellar/Runtime'}],\n },\n keepDiscriminatorProperty: true,\n })\n templates?: (RuntimeDatasourceTemplate | CustomDatasourceTemplate)[];\n @IsObject()\n @ValidateNested()\n @Type(() => StellarRunnerSpecsImpl)\n runner: RunnerSpecs;\n protected _deployment: D;\n\n get deployment(): D {\n if (!this._deployment) {\n this._deployment = plainToClass(DeploymentV1_0_0, this) as unknown as D;\n //validateSync(this._deployment.)\n validateSync(this._deployment, {whitelist: true});\n }\n return this._deployment;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subql/common-stellar",
|
|
3
|
-
"version": "2.2.1-
|
|
3
|
+
"version": "2.2.1-3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "rm -rf dist && tsc -b",
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
"main": "dist/index.js",
|
|
14
14
|
"license": "GPL-3.0",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@subql/common": "
|
|
17
|
-
"@subql/types-stellar": "2.2.3-
|
|
16
|
+
"@subql/common": "2.6.0",
|
|
17
|
+
"@subql/types-stellar": "2.2.3-4",
|
|
18
18
|
"js-yaml": "^4.1.0",
|
|
19
19
|
"pino": "^6.13.3",
|
|
20
|
-
"reflect-metadata": "^0.1.13"
|
|
20
|
+
"reflect-metadata": "^0.1.13",
|
|
21
|
+
"stellar-sdk": "^10.4.1"
|
|
21
22
|
},
|
|
22
23
|
"peerDependencies": {
|
|
23
24
|
"class-transformer": "*",
|
|
@@ -27,5 +28,5 @@
|
|
|
27
28
|
"@types/js-yaml": "^4.0.4",
|
|
28
29
|
"@types/pino": "^6.3.12"
|
|
29
30
|
},
|
|
30
|
-
"stableVersion": "2.2.1-
|
|
31
|
+
"stableVersion": "2.2.1-2"
|
|
31
32
|
}
|
package/src/project/models.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {forbidNonWhitelisted} from '@subql/common';
|
|
|
5
5
|
import {
|
|
6
6
|
StellarHandlerKind,
|
|
7
7
|
StellarDatasourceKind,
|
|
8
|
-
|
|
8
|
+
SorobanEventFilter,
|
|
9
9
|
SubqlCustomHandler,
|
|
10
10
|
SubqlMapping,
|
|
11
11
|
SubqlHandler,
|
|
@@ -14,13 +14,112 @@ import {
|
|
|
14
14
|
SubqlCustomDatasource,
|
|
15
15
|
FileReference,
|
|
16
16
|
CustomDataSourceAsset,
|
|
17
|
+
StellarBlockFilter,
|
|
18
|
+
StellarTransactionFilter,
|
|
19
|
+
StellarOperationFilter,
|
|
20
|
+
StellarEffectFilter,
|
|
21
|
+
SubqlBlockHandler,
|
|
22
|
+
SubqlTransactionHandler,
|
|
23
|
+
SubqlOperationHandler,
|
|
24
|
+
SubqlEffectHandler,
|
|
17
25
|
SubqlEventHandler,
|
|
26
|
+
SubqlSorobanTransactionHandler,
|
|
18
27
|
} from '@subql/types-stellar';
|
|
19
28
|
import {plainToClass, Transform, Type} from 'class-transformer';
|
|
20
29
|
import {IsArray, IsEnum, IsInt, IsOptional, IsString, IsObject, ValidateNested} from 'class-validator';
|
|
30
|
+
import {Horizon} from 'stellar-sdk';
|
|
21
31
|
import {SubqlStellarProcessorOptions} from './types';
|
|
22
32
|
|
|
23
|
-
export class
|
|
33
|
+
export class BlockFilter implements StellarBlockFilter {
|
|
34
|
+
@IsOptional()
|
|
35
|
+
@IsInt()
|
|
36
|
+
modulo?: number;
|
|
37
|
+
@IsOptional()
|
|
38
|
+
@IsString()
|
|
39
|
+
timestamp?: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export class TransactionFilter implements StellarTransactionFilter {
|
|
43
|
+
@IsOptional()
|
|
44
|
+
@IsString()
|
|
45
|
+
account?: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class OperationFilter implements StellarOperationFilter {
|
|
49
|
+
@IsOptional()
|
|
50
|
+
type: Horizon.OperationResponseType;
|
|
51
|
+
|
|
52
|
+
@IsOptional()
|
|
53
|
+
@IsString()
|
|
54
|
+
source_account?: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export class EffectFilter implements StellarEffectFilter {
|
|
58
|
+
@IsOptional()
|
|
59
|
+
@IsString()
|
|
60
|
+
type?: string;
|
|
61
|
+
|
|
62
|
+
@IsOptional()
|
|
63
|
+
@IsString()
|
|
64
|
+
account?: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export class BlockHandler implements SubqlBlockHandler {
|
|
68
|
+
@IsObject()
|
|
69
|
+
@IsOptional()
|
|
70
|
+
@Type(() => BlockFilter)
|
|
71
|
+
filter?: BlockFilter;
|
|
72
|
+
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Block]})
|
|
73
|
+
kind: StellarHandlerKind.Block;
|
|
74
|
+
@IsString()
|
|
75
|
+
handler: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export class TransactionHandler implements SubqlTransactionHandler {
|
|
79
|
+
@IsObject()
|
|
80
|
+
@IsOptional()
|
|
81
|
+
@Type(() => TransactionFilter)
|
|
82
|
+
filter?: TransactionFilter;
|
|
83
|
+
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Transaction]})
|
|
84
|
+
kind: StellarHandlerKind.Transaction;
|
|
85
|
+
@IsString()
|
|
86
|
+
handler: string;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export class SorobanTransactionHandler implements SubqlSorobanTransactionHandler {
|
|
90
|
+
@IsObject()
|
|
91
|
+
@IsOptional()
|
|
92
|
+
@Type(() => TransactionFilter)
|
|
93
|
+
filter?: TransactionFilter;
|
|
94
|
+
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.SorobanTransaction]})
|
|
95
|
+
kind: StellarHandlerKind.SorobanTransaction;
|
|
96
|
+
@IsString()
|
|
97
|
+
handler: string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export class OperationHandler implements SubqlOperationHandler {
|
|
101
|
+
@IsObject()
|
|
102
|
+
@IsOptional()
|
|
103
|
+
@Type(() => OperationFilter)
|
|
104
|
+
filter?: OperationFilter;
|
|
105
|
+
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Operation]})
|
|
106
|
+
kind: StellarHandlerKind.Operation;
|
|
107
|
+
@IsString()
|
|
108
|
+
handler: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export class EffectHandler implements SubqlEffectHandler {
|
|
112
|
+
@IsObject()
|
|
113
|
+
@IsOptional()
|
|
114
|
+
@Type(() => EffectFilter)
|
|
115
|
+
filter?: EffectFilter;
|
|
116
|
+
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Effects]})
|
|
117
|
+
kind: StellarHandlerKind.Effects;
|
|
118
|
+
@IsString()
|
|
119
|
+
handler: string;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export class EventFilter implements SorobanEventFilter {
|
|
24
123
|
@IsOptional()
|
|
25
124
|
@IsString()
|
|
26
125
|
contractId?: string;
|
|
@@ -34,7 +133,7 @@ export class EventHandler implements SubqlEventHandler {
|
|
|
34
133
|
@IsOptional()
|
|
35
134
|
@ValidateNested()
|
|
36
135
|
@Type(() => EventFilter)
|
|
37
|
-
filter?:
|
|
136
|
+
filter?: SorobanEventFilter;
|
|
38
137
|
@IsEnum(StellarHandlerKind, {groups: [StellarHandlerKind.Event]})
|
|
39
138
|
kind: StellarHandlerKind.Event;
|
|
40
139
|
@IsString()
|
|
@@ -56,6 +155,16 @@ export class StellarMapping implements SubqlMapping {
|
|
|
56
155
|
const handlers: SubqlHandler[] = params.value;
|
|
57
156
|
return handlers.map((handler) => {
|
|
58
157
|
switch (handler.kind) {
|
|
158
|
+
case StellarHandlerKind.Block:
|
|
159
|
+
return plainToClass(BlockHandler, handler);
|
|
160
|
+
case StellarHandlerKind.Transaction:
|
|
161
|
+
return plainToClass(TransactionHandler, handler);
|
|
162
|
+
case StellarHandlerKind.SorobanTransaction:
|
|
163
|
+
return plainToClass(SorobanTransactionHandler, handler);
|
|
164
|
+
case StellarHandlerKind.Operation:
|
|
165
|
+
return plainToClass(OperationHandler, handler);
|
|
166
|
+
case StellarHandlerKind.Effects:
|
|
167
|
+
return plainToClass(EffectHandler, handler);
|
|
59
168
|
case StellarHandlerKind.Event:
|
|
60
169
|
return plainToClass(EventHandler, handler);
|
|
61
170
|
default:
|