@maci-protocol/relayer 0.0.0-ci.185b643
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/CHANGELOG.md +134 -0
- package/LICENSE +22 -0
- package/README.md +149 -0
- package/build/hardhat.config.cjs +31 -0
- package/build/hardhat.config.cjs.map +1 -0
- package/build/hardhat.config.d.cts +22 -0
- package/build/hardhat.config.d.cts.map +1 -0
- package/build/tests/app.test.d.ts +2 -0
- package/build/tests/app.test.d.ts.map +1 -0
- package/build/tests/app.test.js +30 -0
- package/build/tests/app.test.js.map +1 -0
- package/build/tests/constants.d.ts +19 -0
- package/build/tests/constants.d.ts.map +1 -0
- package/build/tests/constants.js +20 -0
- package/build/tests/constants.js.map +1 -0
- package/build/tests/messageBatches.test.d.ts +2 -0
- package/build/tests/messageBatches.test.d.ts.map +1 -0
- package/build/tests/messageBatches.test.js +108 -0
- package/build/tests/messageBatches.test.js.map +1 -0
- package/build/tests/messages.test.d.ts +2 -0
- package/build/tests/messages.test.d.ts.map +1 -0
- package/build/tests/messages.test.js +146 -0
- package/build/tests/messages.test.js.map +1 -0
- package/build/tests/onchain.test.d.ts +2 -0
- package/build/tests/onchain.test.d.ts.map +1 -0
- package/build/tests/onchain.test.js +100 -0
- package/build/tests/onchain.test.js.map +1 -0
- package/build/ts/app.module.d.ts +3 -0
- package/build/ts/app.module.d.ts.map +1 -0
- package/build/ts/app.module.js +51 -0
- package/build/ts/app.module.js.map +1 -0
- package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
- package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
- package/build/ts/health/__tests__/health.controller.test.js +22 -0
- package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
- package/build/ts/health/health.controller.d.ts +10 -0
- package/build/ts/health/health.controller.d.ts.map +1 -0
- package/build/ts/health/health.controller.js +36 -0
- package/build/ts/health/health.controller.js.map +1 -0
- package/build/ts/health/health.module.d.ts +3 -0
- package/build/ts/health/health.module.d.ts.map +1 -0
- package/build/ts/health/health.module.js +17 -0
- package/build/ts/health/health.module.js.map +1 -0
- package/build/ts/ipfs/__tests__/ipfs.service.test.d.ts +2 -0
- package/build/ts/ipfs/__tests__/ipfs.service.test.d.ts.map +1 -0
- package/build/ts/ipfs/__tests__/ipfs.service.test.js +23 -0
- package/build/ts/ipfs/__tests__/ipfs.service.test.js.map +1 -0
- package/build/ts/ipfs/ipfs.module.d.ts +3 -0
- package/build/ts/ipfs/ipfs.module.d.ts.map +1 -0
- package/build/ts/ipfs/ipfs.module.js +18 -0
- package/build/ts/ipfs/ipfs.module.js.map +1 -0
- package/build/ts/ipfs/ipfs.service.d.ts +50 -0
- package/build/ts/ipfs/ipfs.service.d.ts.map +1 -0
- package/build/ts/ipfs/ipfs.service.js +86 -0
- package/build/ts/ipfs/ipfs.service.js.map +1 -0
- package/build/ts/jest/mongo.d.ts +9 -0
- package/build/ts/jest/mongo.d.ts.map +1 -0
- package/build/ts/jest/mongo.js +16 -0
- package/build/ts/jest/mongo.js.map +1 -0
- package/build/ts/jest/setup.d.ts +8 -0
- package/build/ts/jest/setup.d.ts.map +1 -0
- package/build/ts/jest/setup.js +3 -0
- package/build/ts/jest/setup.js.map +1 -0
- package/build/ts/jest/transform.d.ts +8 -0
- package/build/ts/jest/transform.d.ts.map +1 -0
- package/build/ts/jest/transform.js +10 -0
- package/build/ts/jest/transform.js.map +1 -0
- package/build/ts/main.d.ts +2 -0
- package/build/ts/main.d.ts.map +1 -0
- package/build/ts/main.js +46 -0
- package/build/ts/main.js.map +1 -0
- package/build/ts/message/__tests__/message.controller.test.d.ts +2 -0
- package/build/ts/message/__tests__/message.controller.test.d.ts.map +1 -0
- package/build/ts/message/__tests__/message.controller.test.js +42 -0
- package/build/ts/message/__tests__/message.controller.test.js.map +1 -0
- package/build/ts/message/__tests__/message.guard.test.d.ts +2 -0
- package/build/ts/message/__tests__/message.guard.test.d.ts.map +1 -0
- package/build/ts/message/__tests__/message.guard.test.js +98 -0
- package/build/ts/message/__tests__/message.guard.test.js.map +1 -0
- package/build/ts/message/__tests__/message.repository.test.d.ts +2 -0
- package/build/ts/message/__tests__/message.repository.test.d.ts.map +1 -0
- package/build/ts/message/__tests__/message.repository.test.js +62 -0
- package/build/ts/message/__tests__/message.repository.test.js.map +1 -0
- package/build/ts/message/__tests__/message.service.test.d.ts +2 -0
- package/build/ts/message/__tests__/message.service.test.d.ts.map +1 -0
- package/build/ts/message/__tests__/message.service.test.js +71 -0
- package/build/ts/message/__tests__/message.service.test.js.map +1 -0
- package/build/ts/message/__tests__/utils.d.ts +6 -0
- package/build/ts/message/__tests__/utils.d.ts.map +1 -0
- package/build/ts/message/__tests__/utils.js +27 -0
- package/build/ts/message/__tests__/utils.js.map +1 -0
- package/build/ts/message/__tests__/validation.test.d.ts +2 -0
- package/build/ts/message/__tests__/validation.test.d.ts.map +1 -0
- package/build/ts/message/__tests__/validation.test.js +21 -0
- package/build/ts/message/__tests__/validation.test.js.map +1 -0
- package/build/ts/message/message.controller.d.ts +25 -0
- package/build/ts/message/message.controller.d.ts.map +1 -0
- package/build/ts/message/message.controller.js +66 -0
- package/build/ts/message/message.controller.js.map +1 -0
- package/build/ts/message/message.dto.d.ts +43 -0
- package/build/ts/message/message.dto.d.ts.map +1 -0
- package/build/ts/message/message.dto.js +132 -0
- package/build/ts/message/message.dto.js.map +1 -0
- package/build/ts/message/message.guard.d.ts +33 -0
- package/build/ts/message/message.guard.d.ts.map +1 -0
- package/build/ts/message/message.guard.js +91 -0
- package/build/ts/message/message.guard.js.map +1 -0
- package/build/ts/message/message.module.d.ts +3 -0
- package/build/ts/message/message.module.d.ts.map +1 -0
- package/build/ts/message/message.module.js +24 -0
- package/build/ts/message/message.module.js.map +1 -0
- package/build/ts/message/message.repository.d.ts +37 -0
- package/build/ts/message/message.repository.d.ts.map +1 -0
- package/build/ts/message/message.repository.js +77 -0
- package/build/ts/message/message.repository.js.map +1 -0
- package/build/ts/message/message.schema.d.ts +52 -0
- package/build/ts/message/message.schema.d.ts.map +1 -0
- package/build/ts/message/message.schema.js +77 -0
- package/build/ts/message/message.schema.js.map +1 -0
- package/build/ts/message/message.service.d.ts +37 -0
- package/build/ts/message/message.service.d.ts.map +1 -0
- package/build/ts/message/message.service.js +85 -0
- package/build/ts/message/message.service.js.map +1 -0
- package/build/ts/message/types.d.ts +35 -0
- package/build/ts/message/types.d.ts.map +1 -0
- package/build/ts/message/types.js +2 -0
- package/build/ts/message/types.js.map +1 -0
- package/build/ts/message/validation.d.ts +20 -0
- package/build/ts/message/validation.d.ts.map +1 -0
- package/build/ts/message/validation.js +41 -0
- package/build/ts/message/validation.js.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.controller.test.d.ts +2 -0
- package/build/ts/messageBatch/__tests__/messageBatch.controller.test.d.ts.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.controller.test.js +41 -0
- package/build/ts/messageBatch/__tests__/messageBatch.controller.test.js.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.repository.test.d.ts +2 -0
- package/build/ts/messageBatch/__tests__/messageBatch.repository.test.d.ts.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.repository.test.js +55 -0
- package/build/ts/messageBatch/__tests__/messageBatch.repository.test.js.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.service.test.d.ts +2 -0
- package/build/ts/messageBatch/__tests__/messageBatch.service.test.d.ts.map +1 -0
- package/build/ts/messageBatch/__tests__/messageBatch.service.test.js +66 -0
- package/build/ts/messageBatch/__tests__/messageBatch.service.test.js.map +1 -0
- package/build/ts/messageBatch/__tests__/utils.d.ts +5 -0
- package/build/ts/messageBatch/__tests__/utils.d.ts.map +1 -0
- package/build/ts/messageBatch/__tests__/utils.js +24 -0
- package/build/ts/messageBatch/__tests__/utils.js.map +1 -0
- package/build/ts/messageBatch/__tests__/validation.test.d.ts +2 -0
- package/build/ts/messageBatch/__tests__/validation.test.d.ts.map +1 -0
- package/build/ts/messageBatch/__tests__/validation.test.js +20 -0
- package/build/ts/messageBatch/__tests__/validation.test.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.controller.d.ts +24 -0
- package/build/ts/messageBatch/messageBatch.controller.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.controller.js +77 -0
- package/build/ts/messageBatch/messageBatch.controller.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.dto.d.ts +52 -0
- package/build/ts/messageBatch/messageBatch.dto.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.dto.js +168 -0
- package/build/ts/messageBatch/messageBatch.dto.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.module.d.ts +3 -0
- package/build/ts/messageBatch/messageBatch.module.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.module.js +25 -0
- package/build/ts/messageBatch/messageBatch.module.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.repository.d.ts +39 -0
- package/build/ts/messageBatch/messageBatch.repository.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.repository.js +72 -0
- package/build/ts/messageBatch/messageBatch.repository.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.schema.d.ts +36 -0
- package/build/ts/messageBatch/messageBatch.schema.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.schema.js +45 -0
- package/build/ts/messageBatch/messageBatch.schema.js.map +1 -0
- package/build/ts/messageBatch/messageBatch.service.d.ts +41 -0
- package/build/ts/messageBatch/messageBatch.service.d.ts.map +1 -0
- package/build/ts/messageBatch/messageBatch.service.js +107 -0
- package/build/ts/messageBatch/messageBatch.service.js.map +1 -0
- package/build/ts/messageBatch/validation.d.ts +20 -0
- package/build/ts/messageBatch/validation.d.ts.map +1 -0
- package/build/ts/messageBatch/validation.js +38 -0
- package/build/ts/messageBatch/validation.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { MessageBatch } from "./messageBatch.schema.js";
|
|
2
|
+
import type { RootFilterQuery } from "mongoose";
|
|
3
|
+
import { IpfsService } from "../ipfs/ipfs.service.js";
|
|
4
|
+
import { type MessageBatchDto } from "./messageBatch.dto.js";
|
|
5
|
+
import { MessageBatchRepository } from "./messageBatch.repository.js";
|
|
6
|
+
/**
|
|
7
|
+
* MessageBatchService is responsible for saving message batches and send them to ipfs
|
|
8
|
+
*/
|
|
9
|
+
export declare class MessageBatchService {
|
|
10
|
+
private readonly ipfsService;
|
|
11
|
+
private readonly messageBatchRepository;
|
|
12
|
+
/**
|
|
13
|
+
* Logger
|
|
14
|
+
*/
|
|
15
|
+
private readonly logger;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize MessageBatchService
|
|
18
|
+
*
|
|
19
|
+
* @param ipfsService ipfs service
|
|
20
|
+
* @param messageBatchRepository message batch repository
|
|
21
|
+
*/
|
|
22
|
+
constructor(ipfsService: IpfsService, messageBatchRepository: MessageBatchRepository);
|
|
23
|
+
/**
|
|
24
|
+
* Find message batches
|
|
25
|
+
*
|
|
26
|
+
* @param filter filter query
|
|
27
|
+
* @param limit limit
|
|
28
|
+
*/
|
|
29
|
+
findMessageBatches(filter: RootFilterQuery<MessageBatch>, { limit, skip }?: Partial<{
|
|
30
|
+
limit: number;
|
|
31
|
+
skip: number;
|
|
32
|
+
}>): Promise<MessageBatch[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Save messages batch
|
|
35
|
+
*
|
|
36
|
+
* @param args publish messages dto
|
|
37
|
+
* @returns success or not
|
|
38
|
+
*/
|
|
39
|
+
saveMessageBatches(args: Omit<MessageBatchDto, "ipfsHash">[]): Promise<MessageBatch[]>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=messageBatch.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageBatch.service.d.ts","sourceRoot":"","sources":["../../../ts/messageBatch/messageBatch.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,qBACa,mBAAmB;IAa5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAbzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;IAEvE;;;;;OAKG;gBAEgB,WAAW,EAAE,WAAW,EACxB,sBAAsB,EAAE,sBAAsB;IAKjE;;;;;OAKG;IACG,kBAAkB,CACtB,MAAM,EAAE,eAAe,CAAC,YAAY,CAAC,EACrC,EAAE,KAAoB,EAAE,IAAQ,EAAE,GAAE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAM,GAChF,OAAO,CAAC,YAAY,EAAE,CAAC;IAO1B;;;;;OAKG;IACG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAwD7F"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var MessageBatchService_1;
|
|
11
|
+
import { PubKey } from "@maci-protocol/domainobjs";
|
|
12
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
13
|
+
import { validate } from "class-validator";
|
|
14
|
+
import flatten from "lodash/flatten.js";
|
|
15
|
+
import uniqBy from "lodash/uniqBy.js";
|
|
16
|
+
import { IpfsService } from "../ipfs/ipfs.service.js";
|
|
17
|
+
import { MAX_MESSAGES } from "./messageBatch.dto.js";
|
|
18
|
+
import { MessageBatchRepository } from "./messageBatch.repository.js";
|
|
19
|
+
/**
|
|
20
|
+
* MessageBatchService is responsible for saving message batches and send them to ipfs
|
|
21
|
+
*/
|
|
22
|
+
let MessageBatchService = MessageBatchService_1 = class MessageBatchService {
|
|
23
|
+
ipfsService;
|
|
24
|
+
messageBatchRepository;
|
|
25
|
+
/**
|
|
26
|
+
* Logger
|
|
27
|
+
*/
|
|
28
|
+
logger = new Logger(MessageBatchService_1.name);
|
|
29
|
+
/**
|
|
30
|
+
* Initialize MessageBatchService
|
|
31
|
+
*
|
|
32
|
+
* @param ipfsService ipfs service
|
|
33
|
+
* @param messageBatchRepository message batch repository
|
|
34
|
+
*/
|
|
35
|
+
constructor(ipfsService, messageBatchRepository) {
|
|
36
|
+
this.ipfsService = ipfsService;
|
|
37
|
+
this.messageBatchRepository = messageBatchRepository;
|
|
38
|
+
ipfsService.init();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Find message batches
|
|
42
|
+
*
|
|
43
|
+
* @param filter filter query
|
|
44
|
+
* @param limit limit
|
|
45
|
+
*/
|
|
46
|
+
async findMessageBatches(filter, { limit = MAX_MESSAGES, skip = 0 } = {}) {
|
|
47
|
+
return this.messageBatchRepository.find(filter, { limit, skip }).catch((error) => {
|
|
48
|
+
this.logger.error(`Find message batches error:`, error);
|
|
49
|
+
throw error;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Save messages batch
|
|
54
|
+
*
|
|
55
|
+
* @param args publish messages dto
|
|
56
|
+
* @returns success or not
|
|
57
|
+
*/
|
|
58
|
+
async saveMessageBatches(args) {
|
|
59
|
+
const validationErrors = await Promise.all(args.map((values) => validate(values))).then((result) => result.reduce((acc, errors) => {
|
|
60
|
+
acc.push(...errors);
|
|
61
|
+
return acc;
|
|
62
|
+
}, []));
|
|
63
|
+
if (validationErrors.length > 0) {
|
|
64
|
+
this.logger.error(`Validation error:`, validationErrors);
|
|
65
|
+
throw new Error("Validation error");
|
|
66
|
+
}
|
|
67
|
+
const allMessages = flatten(args.map((item) => item.messages)).map((message) => ({
|
|
68
|
+
poll: message.poll,
|
|
69
|
+
data: message.data,
|
|
70
|
+
hash: message.hash,
|
|
71
|
+
maciAddress: message.maciContractAddress,
|
|
72
|
+
publicKey: PubKey.deserialize(message.publicKey).asArray().map(String),
|
|
73
|
+
}));
|
|
74
|
+
const ipfsHash = await this.ipfsService.add(allMessages).catch((error) => {
|
|
75
|
+
this.logger.error(`Upload message batches to ipfs error:`, error);
|
|
76
|
+
throw error;
|
|
77
|
+
});
|
|
78
|
+
const messageBatches = await this.messageBatchRepository
|
|
79
|
+
.create(args.map(({ messages }) => ({ messages, ipfsHash })))
|
|
80
|
+
.catch((error) => {
|
|
81
|
+
this.logger.error(`Save message batch error:`, error);
|
|
82
|
+
throw error;
|
|
83
|
+
});
|
|
84
|
+
const [{ maciContractAddress, pollId }] = uniqBy(allMessages.map(({ maciAddress, poll }) => ({
|
|
85
|
+
maciContractAddress: maciAddress,
|
|
86
|
+
pollId: poll,
|
|
87
|
+
})), "maciContractAddress");
|
|
88
|
+
const { getDefaultSigner, relayMessages } = await import("@maci-protocol/sdk");
|
|
89
|
+
const signer = await getDefaultSigner();
|
|
90
|
+
const bytes32IpfsHash = await this.ipfsService.cidToBytes32(ipfsHash);
|
|
91
|
+
await relayMessages({
|
|
92
|
+
maciAddress: maciContractAddress,
|
|
93
|
+
pollId,
|
|
94
|
+
ipfsHash: bytes32IpfsHash,
|
|
95
|
+
messages: allMessages,
|
|
96
|
+
signer,
|
|
97
|
+
});
|
|
98
|
+
return messageBatches;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
MessageBatchService = MessageBatchService_1 = __decorate([
|
|
102
|
+
Injectable(),
|
|
103
|
+
__metadata("design:paramtypes", [IpfsService,
|
|
104
|
+
MessageBatchRepository])
|
|
105
|
+
], MessageBatchService);
|
|
106
|
+
export { MessageBatchService };
|
|
107
|
+
//# sourceMappingURL=messageBatch.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageBatch.service.js","sourceRoot":"","sources":["../../../ts/messageBatch/messageBatch.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ValidatorConstraintInterface } from "class-validator";
|
|
2
|
+
/**
|
|
3
|
+
* Validate public key
|
|
4
|
+
*/
|
|
5
|
+
export declare class IpfsHashValidator implements ValidatorConstraintInterface {
|
|
6
|
+
/**
|
|
7
|
+
* Validate ipfs hash
|
|
8
|
+
*
|
|
9
|
+
* @param text text to validate
|
|
10
|
+
* @returns status of validation
|
|
11
|
+
*/
|
|
12
|
+
validate(text: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Return default validation message
|
|
15
|
+
*
|
|
16
|
+
* @returns default validation message
|
|
17
|
+
*/
|
|
18
|
+
defaultMessage(): string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../ts/messageBatch/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAOpF;;GAEG;AACH,qBACa,iBAAkB,YAAW,4BAA4B;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;;;OAIG;IACH,cAAc,IAAI,MAAM;CAGzB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ValidatorConstraint } from "class-validator";
|
|
8
|
+
/**
|
|
9
|
+
* Check if the string is a valid base58 encoded CIDv1 hash
|
|
10
|
+
*/
|
|
11
|
+
const IPFS_REGEX = /^Qm[a-zA-Z0-9]{44}$/;
|
|
12
|
+
/**
|
|
13
|
+
* Validate public key
|
|
14
|
+
*/
|
|
15
|
+
let IpfsHashValidator = class IpfsHashValidator {
|
|
16
|
+
/**
|
|
17
|
+
* Validate ipfs hash
|
|
18
|
+
*
|
|
19
|
+
* @param text text to validate
|
|
20
|
+
* @returns status of validation
|
|
21
|
+
*/
|
|
22
|
+
validate(text) {
|
|
23
|
+
return IPFS_REGEX.test(text);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Return default validation message
|
|
27
|
+
*
|
|
28
|
+
* @returns default validation message
|
|
29
|
+
*/
|
|
30
|
+
defaultMessage() {
|
|
31
|
+
return "IPFS hash is invalid";
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
IpfsHashValidator = __decorate([
|
|
35
|
+
ValidatorConstraint({ name: "ipfsHash", async: false })
|
|
36
|
+
], IpfsHashValidator);
|
|
37
|
+
export { IpfsHashValidator };
|
|
38
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../ts/messageBatch/validation.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAgC,MAAM,iBAAiB,CAAC;AAEpF;;GAEG;AACH,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC;;GAEG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,IAAY;QACnB,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,sBAAsB,CAAC;IAChC,CAAC;CACF,CAAA;AAnBY,iBAAiB;IAD7B,mBAAmB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC3C,iBAAiB,CAmB7B"}
|