@socket.tech/dl-common 1.0.4 → 1.0.6
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/constants/types.d.ts +11 -1
- package/dist/constants/types.js +9 -1
- package/dist/index.js +14 -30
- package/dist/models/message.d.ts +6 -1
- package/dist/models/message.js +11 -1
- package/dist/models/packet.d.ts +0 -1
- package/dist/models/packet.js +0 -1
- package/dist/utils/dataStructHelper.js +2 -2
- package/dist/utils/idUtils.js +2 -2
- package/dist/utils/s3Service.d.ts +6 -0
- package/dist/utils/s3Service.js +35 -10
- package/dist/utils/signer/address.d.ts +0 -1
- package/dist/utils/signer/asn1-parser.d.ts +0 -1
- package/dist/utils/signer/asn1-parser.js +2 -3
- package/dist/utils/signer/crypto.d.ts +0 -1
- package/dist/utils/signer/crypto.js +3 -4
- package/dist/utils/signer/kms-signer.d.ts +0 -1
- package/dist/utils/signer/signature.d.ts +0 -1
- package/dist/utils/signer/signer.d.ts +0 -1
- package/package.json +3 -3
- package/dist/dl-common/constants/confirmations.d.ts +0 -5
- package/dist/dl-common/constants/confirmations.js +0 -17
- package/dist/dl-common/constants/enums.d.ts +0 -44
- package/dist/dl-common/constants/enums.js +0 -52
- package/dist/dl-common/constants/index.d.ts +0 -3
- package/dist/dl-common/constants/index.js +0 -19
- package/dist/dl-common/constants/types.d.ts +0 -126
- package/dist/dl-common/constants/types.js +0 -45
- package/dist/dl-common/constants/waitTime.d.ts +0 -8
- package/dist/dl-common/constants/waitTime.js +0 -49
- package/dist/dl-common/index.d.ts +0 -4
- package/dist/dl-common/index.js +0 -20
- package/dist/dl-common/models/attestSignature.d.ts +0 -35
- package/dist/dl-common/models/attestSignature.js +0 -53
- package/dist/dl-common/models/attestation.d.ts +0 -70
- package/dist/dl-common/models/attestation.js +0 -86
- package/dist/dl-common/models/index.d.ts +0 -7
- package/dist/dl-common/models/index.js +0 -23
- package/dist/dl-common/models/lastBlock.d.ts +0 -28
- package/dist/dl-common/models/lastBlock.js +0 -27
- package/dist/dl-common/models/message.d.ts +0 -166
- package/dist/dl-common/models/message.js +0 -183
- package/dist/dl-common/models/packet.d.ts +0 -241
- package/dist/dl-common/models/packet.js +0 -250
- package/dist/dl-common/models/proposal.d.ts +0 -127
- package/dist/dl-common/models/proposal.js +0 -141
- package/dist/dl-common/models/switchboard.d.ts +0 -69
- package/dist/dl-common/models/switchboard.js +0 -92
- package/dist/dl-common/models/transaction.d.ts +0 -0
- package/dist/dl-common/models/transaction.js +0 -280
- package/dist/dl-common/services/cacheService.d.ts +0 -14
- package/dist/dl-common/services/cacheService.js +0 -77
- package/dist/dl-common/services/eventBridgeService.d.ts +0 -8
- package/dist/dl-common/services/eventBridgeService.js +0 -40
- package/dist/dl-common/services/index.d.ts +0 -3
- package/dist/dl-common/services/index.js +0 -20
- package/dist/dl-common/services/queueService.d.ts +0 -10
- package/dist/dl-common/services/queueService.js +0 -62
- package/dist/dl-common/utils/address.d.ts +0 -2
- package/dist/dl-common/utils/address.js +0 -8
- package/dist/dl-common/utils/axios.d.ts +0 -2
- package/dist/dl-common/utils/axios.js +0 -54
- package/dist/dl-common/utils/dataStructHelper.d.ts +0 -2
- package/dist/dl-common/utils/dataStructHelper.js +0 -10
- package/dist/dl-common/utils/discord.d.ts +0 -2
- package/dist/dl-common/utils/discord.js +0 -35
- package/dist/dl-common/utils/ethersAwsKmsSigner.d.ts +0 -2
- package/dist/dl-common/utils/ethersAwsKmsSigner.js +0 -26
- package/dist/dl-common/utils/eventGetter.d.ts +0 -4
- package/dist/dl-common/utils/eventGetter.js +0 -50
- package/dist/dl-common/utils/extraUtils.d.ts +0 -32
- package/dist/dl-common/utils/extraUtils.js +0 -103
- package/dist/dl-common/utils/idUtils.d.ts +0 -14
- package/dist/dl-common/utils/idUtils.js +0 -50
- package/dist/dl-common/utils/index.d.ts +0 -13
- package/dist/dl-common/utils/index.js +0 -29
- package/dist/dl-common/utils/relaySigner.d.ts +0 -21
- package/dist/dl-common/utils/relaySigner.js +0 -68
- package/dist/dl-common/utils/s3Service.d.ts +0 -5
- package/dist/dl-common/utils/s3Service.js +0 -45
- package/dist/dl-common/utils/secretManagerService.d.ts +0 -2
- package/dist/dl-common/utils/secretManagerService.js +0 -33
- package/dist/dl-common/utils/signer/adapter.d.ts +0 -18
- package/dist/dl-common/utils/signer/adapter.js +0 -71
- package/dist/dl-common/utils/signer/address.d.ts +0 -10
- package/dist/dl-common/utils/signer/address.js +0 -42
- package/dist/dl-common/utils/signer/asn1-parser.d.ts +0 -11
- package/dist/dl-common/utils/signer/asn1-parser.js +0 -80
- package/dist/dl-common/utils/signer/crypto.d.ts +0 -6
- package/dist/dl-common/utils/signer/crypto.js +0 -34
- package/dist/dl-common/utils/signer/index.d.ts +0 -4
- package/dist/dl-common/utils/signer/index.js +0 -20
- package/dist/dl-common/utils/signer/kms-ethers-signer.d.ts +0 -19
- package/dist/dl-common/utils/signer/kms-ethers-signer.js +0 -32
- package/dist/dl-common/utils/signer/kms-signer.d.ts +0 -14
- package/dist/dl-common/utils/signer/kms-signer.js +0 -46
- package/dist/dl-common/utils/signer/signature.d.ts +0 -17
- package/dist/dl-common/utils/signer/signature.js +0 -65
- package/dist/dl-common/utils/signer/signer.d.ts +0 -7
- package/dist/dl-common/utils/signer/signer.js +0 -2
- package/dist/dl-common/utils/time.d.ts +0 -2
- package/dist/dl-common/utils/time.js +0 -7
- package/dist/src/constants/batcherModes.d.ts +0 -7
- package/dist/src/constants/batcherModes.js +0 -56
- package/dist/src/constants/config.d.ts +0 -39
- package/dist/src/constants/config.js +0 -77
- package/dist/src/constants/enums.d.ts +0 -21
- package/dist/src/constants/enums.js +0 -27
- package/dist/src/constants/gasEstimation.d.ts +0 -8
- package/dist/src/constants/gasEstimation.js +0 -61
- package/dist/src/constants/index.d.ts +0 -11
- package/dist/src/constants/index.js +0 -28
- package/dist/src/constants/limits.d.ts +0 -21
- package/dist/src/constants/limits.js +0 -91
- package/dist/src/constants/prometheus.config.d.ts +0 -43
- package/dist/src/constants/prometheus.config.js +0 -316
- package/dist/src/constants/relayer.d.ts +0 -6
- package/dist/src/constants/relayer.js +0 -15
- package/dist/src/constants/s3Config.d.ts +0 -13
- package/dist/src/constants/s3Config.js +0 -61
- package/dist/src/constants/stageConfig.d.ts +0 -7
- package/dist/src/constants/stageConfig.js +0 -24
- package/dist/src/constants/types.d.ts +0 -45
- package/dist/src/constants/types.js +0 -2
- package/dist/src/constants/watchers.d.ts +0 -15
- package/dist/src/constants/watchers.js +0 -137
- package/dist/src/controllers/index.d.ts +0 -0
- package/dist/src/controllers/index.js +0 -3
- package/dist/src/db/associations.d.ts +0 -1
- package/dist/src/db/associations.js +0 -46
- package/dist/src/db/connection.d.ts +0 -4
- package/dist/src/db/connection.js +0 -73
- package/dist/src/db/index.d.ts +0 -2
- package/dist/src/db/index.js +0 -18
- package/dist/src/db/init.d.ts +0 -2
- package/dist/src/db/init.js +0 -27
- package/dist/src/handlers/common.d.ts +0 -2
- package/dist/src/handlers/common.js +0 -59
- package/dist/src/handlers/cronHandler.d.ts +0 -10
- package/dist/src/handlers/cronHandler.js +0 -268
- package/dist/src/handlers/executeHandler.d.ts +0 -3
- package/dist/src/handlers/executeHandler.js +0 -66
- package/dist/src/handlers/handler.d.ts +0 -2
- package/dist/src/handlers/handler.js +0 -29
- package/dist/src/handlers/proposeHandler.d.ts +0 -3
- package/dist/src/handlers/proposeHandler.js +0 -69
- package/dist/src/handlers/routes.d.ts +0 -2
- package/dist/src/handlers/routes.js +0 -26
- package/dist/src/handlers/sealHandler.d.ts +0 -4
- package/dist/src/handlers/sealHandler.js +0 -245
- package/dist/src/handlers/statusHandler.d.ts +0 -5
- package/dist/src/handlers/statusHandler.js +0 -116
- package/dist/src/handlers/taskHandler.d.ts +0 -2
- package/dist/src/handlers/taskHandler.js +0 -110
- package/dist/src/handlers/testHandler.d.ts +0 -4
- package/dist/src/handlers/testHandler.js +0 -99
- package/dist/src/main.d.ts +0 -0
- package/dist/src/main.js +0 -12
- package/dist/src/relayers/common.d.ts +0 -7
- package/dist/src/relayers/common.js +0 -55
- package/dist/src/relayers/index.d.ts +0 -2
- package/dist/src/relayers/index.js +0 -19
- package/dist/src/relayers/proposeRelayer.d.ts +0 -7
- package/dist/src/relayers/proposeRelayer.js +0 -587
- package/dist/src/relayers/sealRelayer.d.ts +0 -8
- package/dist/src/relayers/sealRelayer.js +0 -276
- package/dist/src/services/attestService.d.ts +0 -45
- package/dist/src/services/attestService.js +0 -269
- package/dist/src/services/batcherService.d.ts +0 -9
- package/dist/src/services/batcherService.js +0 -197
- package/dist/src/services/executeService.d.ts +0 -16
- package/dist/src/services/executeService.js +0 -209
- package/dist/src/services/gasEstimationService.d.ts +0 -3
- package/dist/src/services/gasEstimationService.js +0 -12
- package/dist/src/services/index.d.ts +0 -4
- package/dist/src/services/index.js +0 -23
- package/dist/src/services/indexSealService.d.ts +0 -15
- package/dist/src/services/indexSealService.js +0 -120
- package/dist/src/services/proposalCheckService.d.ts +0 -9
- package/dist/src/services/proposalCheckService.js +0 -119
- package/dist/src/services/sealService.d.ts +0 -27
- package/dist/src/services/sealService.js +0 -190
- package/dist/src/statusTrackers/failedMessage.d.ts +0 -8
- package/dist/src/statusTrackers/failedMessage.js +0 -72
- package/dist/src/statusTrackers/failedPacket.d.ts +0 -13
- package/dist/src/statusTrackers/failedPacket.js +0 -110
- package/dist/src/statusTrackers/index.d.ts +0 -3
- package/dist/src/statusTrackers/index.js +0 -26
- package/dist/src/statusTrackers/message.d.ts +0 -4
- package/dist/src/statusTrackers/message.js +0 -257
- package/dist/src/statusTrackers/packet.d.ts +0 -33
- package/dist/src/statusTrackers/packet.js +0 -477
- package/dist/src/utils/chain-utils.d.ts +0 -5
- package/dist/src/utils/chain-utils.js +0 -42
- package/dist/src/utils/index.d.ts +0 -2
- package/dist/src/utils/index.js +0 -18
- package/dist/src/utils/logger.d.ts +0 -9
- package/dist/src/utils/logger.js +0 -9
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { IntegrationTypes } from "@socket.tech/dl-core";
|
|
3
|
-
// import { DataTypes, Model } from "sequelize";
|
|
4
|
-
// import { toLowerCase } from "../utils";
|
|
5
|
-
// import {Project} from "@socket.tech/socket-plugs";
|
|
6
|
-
// export enum SealRelayStatus {
|
|
7
|
-
// SEALED = "SEALED",
|
|
8
|
-
// SEALING = "SEALING",
|
|
9
|
-
// NO = "NO",
|
|
10
|
-
// SEAL_FAILED = "SEAL_FAILED",
|
|
11
|
-
// }
|
|
12
|
-
// export enum PacketTripRelayStatus {
|
|
13
|
-
// IS_TRIPPING = "IS_TRIPPING",
|
|
14
|
-
// NO = "NO",
|
|
15
|
-
// TRIPPING_FAILED = "TRIPPING_FAILED",
|
|
16
|
-
// TRIPPED = "TRIPPED",
|
|
17
|
-
// }
|
|
18
|
-
// export enum ProposeRelayStatus {
|
|
19
|
-
// PROPOSED = "PROPOSED",
|
|
20
|
-
// PROPOSING = "PROPOSING",
|
|
21
|
-
// CONFIRMING = "CONFIRMING",
|
|
22
|
-
// NO = "NO",
|
|
23
|
-
// PROPOSE_FAILED = "PROPOSE_FAILED",
|
|
24
|
-
// CONFIRM_FAILED = "CONFIRM_FAILED",
|
|
25
|
-
// }
|
|
26
|
-
// export enum TxType {
|
|
27
|
-
// SUPERBRIDGE = "SUPERBRIDGE",
|
|
28
|
-
// SUPERTOKEN = "SUPERTOKEN"
|
|
29
|
-
// }
|
|
30
|
-
// export class Transaction extends Model {
|
|
31
|
-
// declare id: number;
|
|
32
|
-
// srcChainSlug: number;
|
|
33
|
-
// dstChainSlug: number;
|
|
34
|
-
// from: string;
|
|
35
|
-
// to:string;
|
|
36
|
-
// amount:number;
|
|
37
|
-
// token: string;
|
|
38
|
-
// tokenAddress: string;
|
|
39
|
-
// srcPlug: string;
|
|
40
|
-
// dstPlug: string;
|
|
41
|
-
// usdAmount: number;
|
|
42
|
-
// type: TxType;
|
|
43
|
-
// project: Project;
|
|
44
|
-
// srcTxHash: string;
|
|
45
|
-
// txTime: string;
|
|
46
|
-
// root: string;
|
|
47
|
-
// rootSealed: string;
|
|
48
|
-
// sealer: string;
|
|
49
|
-
// sealTxHash: string;
|
|
50
|
-
// sealTxId: string;
|
|
51
|
-
// sealSignature: string;
|
|
52
|
-
// sealTime: number;
|
|
53
|
-
// sealRelayStatus: SealRelayStatus;
|
|
54
|
-
// packetTripTime: number;
|
|
55
|
-
// packetTripTxnHash: string;
|
|
56
|
-
// packetTripErrorMessage: string;
|
|
57
|
-
// isPacketTripped: boolean;
|
|
58
|
-
// packetTripRelayStatus: PacketTripRelayStatus;
|
|
59
|
-
// // proposeTxId, proposeTxHash refers to the proposal sent by us. For details of other proposals, see Proposal table.
|
|
60
|
-
// proposeTxId: string;
|
|
61
|
-
// proposeTxHash: string;
|
|
62
|
-
// proposeRelayStatus: ProposeRelayStatus;
|
|
63
|
-
// selectedProposalCount: number;
|
|
64
|
-
// // attestTxId, attestTxHash refers to the attestation sent by us. For details of other attestations, see Attestation table.
|
|
65
|
-
// attestTxId: string;
|
|
66
|
-
// attestTxHash: string;
|
|
67
|
-
// attestRelayStatus: AttestRelayStatus;
|
|
68
|
-
// outboundTxHash: string;
|
|
69
|
-
// outboundTime: number;
|
|
70
|
-
// sealIndexTime: number;
|
|
71
|
-
// proposeTime: number;
|
|
72
|
-
// attestTime: number;
|
|
73
|
-
// packetTripTxHash: string;
|
|
74
|
-
// isFilled: boolean;
|
|
75
|
-
// isSealed: boolean;
|
|
76
|
-
// isProposed: boolean;
|
|
77
|
-
// isAttested: boolean;
|
|
78
|
-
// isVerified: boolean;
|
|
79
|
-
// isFullyExecuted: boolean;
|
|
80
|
-
// tripreason: TripReason;
|
|
81
|
-
// executionWaitTime: number;
|
|
82
|
-
// }
|
|
83
|
-
// export const PacketModel = {
|
|
84
|
-
// id: {
|
|
85
|
-
// type: DataTypes.INTEGER,
|
|
86
|
-
// autoIncrement: true,
|
|
87
|
-
// },
|
|
88
|
-
// srcChainSlug: {
|
|
89
|
-
// type: DataTypes.BIGINT,
|
|
90
|
-
// },
|
|
91
|
-
// dstChainSlug: {
|
|
92
|
-
// type: DataTypes.BIGINT,
|
|
93
|
-
// },
|
|
94
|
-
// srcCapacitor: {
|
|
95
|
-
// type: DataTypes.STRING,
|
|
96
|
-
// },
|
|
97
|
-
// dstSwitchboard: {
|
|
98
|
-
// type: DataTypes.STRING,
|
|
99
|
-
// },
|
|
100
|
-
// switchboardId: {
|
|
101
|
-
// type: DataTypes.STRING,
|
|
102
|
-
// },
|
|
103
|
-
// integrationType: {
|
|
104
|
-
// type: DataTypes.ENUM,
|
|
105
|
-
// values: [...Object.values(IntegrationTypes)],
|
|
106
|
-
// defaultValue: IntegrationTypes.unknown,
|
|
107
|
-
// },
|
|
108
|
-
// packetId: {
|
|
109
|
-
// type: DataTypes.STRING,
|
|
110
|
-
// primaryKey: true,
|
|
111
|
-
// },
|
|
112
|
-
// capacitorPacketCount: {
|
|
113
|
-
// type: DataTypes.STRING,
|
|
114
|
-
// },
|
|
115
|
-
// root: {
|
|
116
|
-
// type: DataTypes.STRING,
|
|
117
|
-
// },
|
|
118
|
-
// rootSealed: {
|
|
119
|
-
// type: DataTypes.STRING,
|
|
120
|
-
// },
|
|
121
|
-
// isFilled: {
|
|
122
|
-
// type: DataTypes.BOOLEAN,
|
|
123
|
-
// },
|
|
124
|
-
// isSealed: {
|
|
125
|
-
// type: DataTypes.BOOLEAN,
|
|
126
|
-
// defaultValue: false,
|
|
127
|
-
// },
|
|
128
|
-
// isProposed: {
|
|
129
|
-
// type: DataTypes.BOOLEAN,
|
|
130
|
-
// defaultValue: false,
|
|
131
|
-
// },
|
|
132
|
-
// isAttested: {
|
|
133
|
-
// type: DataTypes.BOOLEAN,
|
|
134
|
-
// defaultValue: false,
|
|
135
|
-
// },
|
|
136
|
-
// isVerified: {
|
|
137
|
-
// type: DataTypes.BOOLEAN,
|
|
138
|
-
// defaultValue: false,
|
|
139
|
-
// },
|
|
140
|
-
// isFullyExecuted: {
|
|
141
|
-
// type: DataTypes.BOOLEAN,
|
|
142
|
-
// defaultValue: false,
|
|
143
|
-
// },
|
|
144
|
-
// sealer: {
|
|
145
|
-
// type: DataTypes.STRING,
|
|
146
|
-
// },
|
|
147
|
-
// sealRelayStatus: {
|
|
148
|
-
// type: DataTypes.ENUM,
|
|
149
|
-
// values: [...Object.values(SealRelayStatus)],
|
|
150
|
-
// defaultValue: SealRelayStatus.NO,
|
|
151
|
-
// },
|
|
152
|
-
// sealTxId: {
|
|
153
|
-
// type: DataTypes.STRING,
|
|
154
|
-
// defaultValue: "",
|
|
155
|
-
// },
|
|
156
|
-
// sealTxHash: {
|
|
157
|
-
// type: DataTypes.STRING,
|
|
158
|
-
// defaultValue: "",
|
|
159
|
-
// },
|
|
160
|
-
// outboundTxHash: {
|
|
161
|
-
// type: DataTypes.STRING,
|
|
162
|
-
// defaultValue: "",
|
|
163
|
-
// },
|
|
164
|
-
// outboundTime: {
|
|
165
|
-
// type: DataTypes.INTEGER,
|
|
166
|
-
// },
|
|
167
|
-
// proposeTime: {
|
|
168
|
-
// type: DataTypes.INTEGER,
|
|
169
|
-
// },
|
|
170
|
-
// attestTime: {
|
|
171
|
-
// type: DataTypes.INTEGER,
|
|
172
|
-
// },
|
|
173
|
-
// sealTime: {
|
|
174
|
-
// type: DataTypes.INTEGER,
|
|
175
|
-
// },
|
|
176
|
-
// sealIndexTime: {
|
|
177
|
-
// type: DataTypes.INTEGER,
|
|
178
|
-
// },
|
|
179
|
-
// sealSignature: {
|
|
180
|
-
// type: DataTypes.STRING,
|
|
181
|
-
// },
|
|
182
|
-
// packetTripRelayStatus: {
|
|
183
|
-
// type: DataTypes.ENUM,
|
|
184
|
-
// values: [...Object.values(PacketTripRelayStatus)],
|
|
185
|
-
// defaultValue: PacketTripRelayStatus.NO,
|
|
186
|
-
// },
|
|
187
|
-
// packetTripTxId: {
|
|
188
|
-
// type: DataTypes.STRING,
|
|
189
|
-
// defaultValue: "",
|
|
190
|
-
// },
|
|
191
|
-
// packetTripTxHash: {
|
|
192
|
-
// type: DataTypes.STRING,
|
|
193
|
-
// defaultValue: "",
|
|
194
|
-
// },
|
|
195
|
-
// packetTripErrorMessage: {
|
|
196
|
-
// type: DataTypes.STRING,
|
|
197
|
-
// defaultValue: "",
|
|
198
|
-
// },
|
|
199
|
-
// packetTripTime: {
|
|
200
|
-
// type: DataTypes.INTEGER,
|
|
201
|
-
// },
|
|
202
|
-
// isPacketTripped: {
|
|
203
|
-
// type: DataTypes.BOOLEAN,
|
|
204
|
-
// defaultValue: false,
|
|
205
|
-
// },
|
|
206
|
-
// proposeTxId: {
|
|
207
|
-
// type: DataTypes.STRING,
|
|
208
|
-
// defaultValue: "",
|
|
209
|
-
// },
|
|
210
|
-
// proposeTxHash: {
|
|
211
|
-
// type: DataTypes.STRING,
|
|
212
|
-
// defaultValue: "",
|
|
213
|
-
// },
|
|
214
|
-
// proposeRelayStatus: {
|
|
215
|
-
// type: DataTypes.ENUM,
|
|
216
|
-
// values: [...Object.values(ProposeRelayStatus)],
|
|
217
|
-
// defaultValue: ProposeRelayStatus.NO,
|
|
218
|
-
// },
|
|
219
|
-
// selectedProposalCount: {
|
|
220
|
-
// type: DataTypes.INTEGER,
|
|
221
|
-
// },
|
|
222
|
-
// executionWaitTime: {
|
|
223
|
-
// type: DataTypes.INTEGER,
|
|
224
|
-
// },
|
|
225
|
-
// attestTxId: {
|
|
226
|
-
// type: DataTypes.STRING,
|
|
227
|
-
// defaultValue: "",
|
|
228
|
-
// },
|
|
229
|
-
// attestTxHash: {
|
|
230
|
-
// type: DataTypes.STRING,
|
|
231
|
-
// defaultValue: "",
|
|
232
|
-
// },
|
|
233
|
-
// tripReason: {
|
|
234
|
-
// type: DataTypes.ENUM,
|
|
235
|
-
// values: [...Object.values(TripReason)],
|
|
236
|
-
// defaultValue: TripReason.NO,
|
|
237
|
-
// },
|
|
238
|
-
// // packetTripTxHash: {
|
|
239
|
-
// // type: DataTypes.STRING,
|
|
240
|
-
// // defaultValue: "",
|
|
241
|
-
// // },
|
|
242
|
-
// attestRelayStatus: {
|
|
243
|
-
// type: DataTypes.ENUM,
|
|
244
|
-
// values: [...Object.values(AttestRelayStatus)],
|
|
245
|
-
// defaultValue: AttestRelayStatus.NO,
|
|
246
|
-
// },
|
|
247
|
-
// };
|
|
248
|
-
// function processStrings(packet: Packet): Packet {
|
|
249
|
-
// if (packet.packetId) packet.packetId = toLowerCase(packet.packetId);
|
|
250
|
-
// if (packet.root) packet.root = toLowerCase(packet.root);
|
|
251
|
-
// if (packet.rootSealed) packet.rootSealed = toLowerCase(packet.rootSealed);
|
|
252
|
-
// if (packet.sealer) packet.sealer = toLowerCase(packet.sealer);
|
|
253
|
-
// if (packet.outboundTxHash) {
|
|
254
|
-
// packet.outboundTxHash = toLowerCase(packet.outboundTxHash);
|
|
255
|
-
// }
|
|
256
|
-
// if (packet.sealTxHash) packet.sealTxHash = toLowerCase(packet.sealTxHash);
|
|
257
|
-
// if (packet.sealSignature) {
|
|
258
|
-
// packet.sealSignature = toLowerCase(packet.sealSignature);
|
|
259
|
-
// }
|
|
260
|
-
// if (packet.dstSwitchboard) {
|
|
261
|
-
// packet.dstSwitchboard = toLowerCase(packet.dstSwitchboard);
|
|
262
|
-
// }
|
|
263
|
-
// if (packet.switchboardId) {
|
|
264
|
-
// packet.switchboardId = toLowerCase(packet.switchboardId);
|
|
265
|
-
// }
|
|
266
|
-
// if (packet.packetTripTxHash) {
|
|
267
|
-
// packet.packetTripTxHash = toLowerCase(packet.packetTripTxHash);
|
|
268
|
-
// }
|
|
269
|
-
// return packet;
|
|
270
|
-
// }
|
|
271
|
-
// export const addPacketHooks = () => {
|
|
272
|
-
// Packet.beforeBulkCreate((packet, options) => {
|
|
273
|
-
// for (let index = 0; index < packet.length; index++) {
|
|
274
|
-
// packet[index] = processStrings(packet[index]);
|
|
275
|
-
// }
|
|
276
|
-
// });
|
|
277
|
-
// Packet.beforeSave((packet, options) => {
|
|
278
|
-
// packet = processStrings(packet);
|
|
279
|
-
// });
|
|
280
|
-
// };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare let client: any;
|
|
2
|
-
export declare const initCache: (host: string, port: number, password: string, stage: string, serviceName: string) => void;
|
|
3
|
-
export declare const formatKey: (key: string) => string;
|
|
4
|
-
export declare const getKey: (key: string) => Promise<any>;
|
|
5
|
-
export declare const lock: (key: string, expire?: number) => Promise<boolean>;
|
|
6
|
-
export declare const deleteKey: (key: string) => Promise<any>;
|
|
7
|
-
export declare const unlock: (key: string) => Promise<any>;
|
|
8
|
-
export declare const setKey: (key: string, value: any, expire?: number, setIfNotExist?: boolean) => Promise<boolean>;
|
|
9
|
-
export declare const rpush: (key: string, values: any[]) => Promise<any>;
|
|
10
|
-
export declare const lpop: (key: string) => Promise<any>;
|
|
11
|
-
export declare const getListLength: (key: string) => Promise<any>;
|
|
12
|
-
export declare const increment: (key: string) => Promise<any>;
|
|
13
|
-
export declare const decrement: (key: string) => Promise<any>;
|
|
14
|
-
export declare const sendCommand: (command: string, params: any[]) => Promise<any>;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendCommand = exports.decrement = exports.increment = exports.getListLength = exports.lpop = exports.rpush = exports.setKey = exports.unlock = exports.deleteKey = exports.lock = exports.getKey = exports.formatKey = exports.initCache = exports.client = void 0;
|
|
4
|
-
const redis = require("async-redis");
|
|
5
|
-
let deploymentStage;
|
|
6
|
-
let servicePrefix;
|
|
7
|
-
const initCache = (host, port, password, stage, serviceName) => {
|
|
8
|
-
exports.client = redis.createClient({
|
|
9
|
-
port,
|
|
10
|
-
host,
|
|
11
|
-
password,
|
|
12
|
-
});
|
|
13
|
-
deploymentStage = stage;
|
|
14
|
-
servicePrefix = serviceName;
|
|
15
|
-
};
|
|
16
|
-
exports.initCache = initCache;
|
|
17
|
-
const formatKey = (key) => {
|
|
18
|
-
return deploymentStage + "_" + servicePrefix + "_" + key;
|
|
19
|
-
};
|
|
20
|
-
exports.formatKey = formatKey;
|
|
21
|
-
const getKey = async (key) => {
|
|
22
|
-
return await exports.client.get((0, exports.formatKey)(key));
|
|
23
|
-
};
|
|
24
|
-
exports.getKey = getKey;
|
|
25
|
-
const lock = async (key, expire = 0) => {
|
|
26
|
-
return await (0, exports.setKey)(key, "locked", expire, true);
|
|
27
|
-
};
|
|
28
|
-
exports.lock = lock;
|
|
29
|
-
const deleteKey = async (key) => {
|
|
30
|
-
return await exports.client.del((0, exports.formatKey)(key));
|
|
31
|
-
};
|
|
32
|
-
exports.deleteKey = deleteKey;
|
|
33
|
-
const unlock = async (key) => {
|
|
34
|
-
return await exports.client.del((0, exports.formatKey)(key));
|
|
35
|
-
};
|
|
36
|
-
exports.unlock = unlock;
|
|
37
|
-
const setKey = async (key, value, expire = 0, setIfNotExist = false) => {
|
|
38
|
-
let params = [(0, exports.formatKey)(key), value];
|
|
39
|
-
if (expire > 0)
|
|
40
|
-
params.push("EX", expire);
|
|
41
|
-
if (setIfNotExist)
|
|
42
|
-
params.push("NX");
|
|
43
|
-
let response = await exports.client.sendCommand("SET", params);
|
|
44
|
-
if (response) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
else
|
|
48
|
-
return false;
|
|
49
|
-
};
|
|
50
|
-
exports.setKey = setKey;
|
|
51
|
-
const rpush = async (key, values) => {
|
|
52
|
-
return await exports.client.rpush((0, exports.formatKey)(key), values);
|
|
53
|
-
};
|
|
54
|
-
exports.rpush = rpush;
|
|
55
|
-
const lpop = async (key) => {
|
|
56
|
-
return await exports.client.lpop((0, exports.formatKey)(key));
|
|
57
|
-
};
|
|
58
|
-
exports.lpop = lpop;
|
|
59
|
-
const getListLength = async (key) => {
|
|
60
|
-
return await exports.client.llen((0, exports.formatKey)(key));
|
|
61
|
-
};
|
|
62
|
-
exports.getListLength = getListLength;
|
|
63
|
-
const increment = async (key) => {
|
|
64
|
-
let value = await exports.client.incr((0, exports.formatKey)(key));
|
|
65
|
-
console.log("incremented key : ", (0, exports.formatKey)(key), " value : ", value);
|
|
66
|
-
return value;
|
|
67
|
-
};
|
|
68
|
-
exports.increment = increment;
|
|
69
|
-
const decrement = async (key) => {
|
|
70
|
-
return await exports.client.decr((0, exports.formatKey)(key));
|
|
71
|
-
};
|
|
72
|
-
exports.decrement = decrement;
|
|
73
|
-
const sendCommand = async (command, params) => {
|
|
74
|
-
params[0] = (0, exports.formatKey)(params[0]);
|
|
75
|
-
return await exports.client.sendCommand(command, params);
|
|
76
|
-
};
|
|
77
|
-
exports.sendCommand = sendCommand;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export type EventBridgeEntry = {
|
|
2
|
-
eventBus: string;
|
|
3
|
-
source: string;
|
|
4
|
-
detailType: string;
|
|
5
|
-
data: Object;
|
|
6
|
-
};
|
|
7
|
-
export declare const initEventBridgeClient: (region?: string) => void;
|
|
8
|
-
export declare const sendEvents: (events: EventBridgeEntry[]) => Promise<import("@aws-sdk/client-eventbridge").ServiceOutputTypes>;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendEvents = exports.initEventBridgeClient = void 0;
|
|
4
|
-
const client_eventbridge_1 = require("@aws-sdk/client-eventbridge");
|
|
5
|
-
let client;
|
|
6
|
-
const initEventBridgeClient = (region = "us-east-1") => {
|
|
7
|
-
client = new client_eventbridge_1.EventBridgeClient({ region });
|
|
8
|
-
};
|
|
9
|
-
exports.initEventBridgeClient = initEventBridgeClient;
|
|
10
|
-
const sendEvents = async (events) => {
|
|
11
|
-
// async/await.
|
|
12
|
-
try {
|
|
13
|
-
if (!client) {
|
|
14
|
-
throw new Error("EventBridge client is not initialized. Call initEventBridgeClient first.");
|
|
15
|
-
}
|
|
16
|
-
let entries = events.map((event) => {
|
|
17
|
-
let { eventBus, source, detailType, data } = event;
|
|
18
|
-
return {
|
|
19
|
-
Source: source,
|
|
20
|
-
DetailType: detailType,
|
|
21
|
-
Detail: JSON.stringify(data),
|
|
22
|
-
EventBusName: eventBus,
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
const params = {
|
|
26
|
-
Entries: entries,
|
|
27
|
-
};
|
|
28
|
-
const command = new client_eventbridge_1.PutEventsCommand(params);
|
|
29
|
-
return await client.send(command);
|
|
30
|
-
// process data.
|
|
31
|
-
// eslint-disable-next-line no-useless-catch
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
throw error;
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
// finally.
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
exports.sendEvents = sendEvents;
|
|
@@ -1,20 +0,0 @@
|
|
|
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("./queueService"), exports);
|
|
18
|
-
__exportStar(require("./cacheService"), exports);
|
|
19
|
-
__exportStar(require("./eventBridgeService"), exports);
|
|
20
|
-
// export * from "./apiService";
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const initQueue: (region: string) => void;
|
|
2
|
-
export declare const sendStandardSqsMessage: (queueUrl: string, data: any, DelaySeconds?: number) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
|
|
3
|
-
export declare const sendStandardBatchMessages: (QueueUrl: string, dataArray: any[], DelaySecondsArray?: number[]) => Promise<void>;
|
|
4
|
-
export declare const sendFifoSqsMessage: (queueUrl: string, data: any, MessageGroupId: string) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
|
|
5
|
-
declare const _default: {
|
|
6
|
-
sendStandardSqsMessage: (queueUrl: string, data: any, DelaySeconds?: number) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
|
|
7
|
-
sendFifoSqsMessage: (queueUrl: string, data: any, MessageGroupId: string) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
|
|
8
|
-
sendStandardBatchMessages: (QueueUrl: string, dataArray: any[], DelaySecondsArray?: number[]) => Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
export default _default;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendFifoSqsMessage = exports.sendStandardBatchMessages = exports.sendStandardSqsMessage = exports.initQueue = void 0;
|
|
4
|
-
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
|
-
let client;
|
|
7
|
-
const initQueue = (region) => {
|
|
8
|
-
client = new client_sqs_1.SQSClient({ region });
|
|
9
|
-
};
|
|
10
|
-
exports.initQueue = initQueue;
|
|
11
|
-
const sendStandardSqsMessage = async (queueUrl, data, DelaySeconds = 0) => {
|
|
12
|
-
let sqsOrderData = {
|
|
13
|
-
MessageBody: JSON.stringify(data),
|
|
14
|
-
QueueUrl: queueUrl,
|
|
15
|
-
DelaySeconds,
|
|
16
|
-
};
|
|
17
|
-
// Send the order data to the SQS queue
|
|
18
|
-
const command = new client_sqs_1.SendMessageCommand(sqsOrderData);
|
|
19
|
-
return await client.send(command);
|
|
20
|
-
};
|
|
21
|
-
exports.sendStandardSqsMessage = sendStandardSqsMessage;
|
|
22
|
-
const sendStandardBatchMessages = async (QueueUrl, dataArray, DelaySecondsArray = []) => {
|
|
23
|
-
var _a;
|
|
24
|
-
const dataChunks = [...(0, utils_1.chunks)(dataArray, 10)];
|
|
25
|
-
const delayChunks = [...(0, utils_1.chunks)(DelaySecondsArray, 10)];
|
|
26
|
-
for (let i = 0; i < dataChunks.length; i++) {
|
|
27
|
-
let Entries = [];
|
|
28
|
-
let currentDataArray = dataChunks[i];
|
|
29
|
-
let currentDelayArray = delayChunks[i];
|
|
30
|
-
for (let j = 0; j < currentDataArray.length; j++) {
|
|
31
|
-
Entries.push({
|
|
32
|
-
MessageBody: JSON.stringify(currentDataArray[j]),
|
|
33
|
-
Id: String(i) + "-" + String(j),
|
|
34
|
-
DelaySeconds: (_a = currentDelayArray[j]) !== null && _a !== void 0 ? _a : 0,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
let sqsOrderData = {
|
|
38
|
-
Entries,
|
|
39
|
-
QueueUrl,
|
|
40
|
-
};
|
|
41
|
-
// Send the order data to the SQS queue
|
|
42
|
-
const command = new client_sqs_1.SendMessageBatchCommand(sqsOrderData);
|
|
43
|
-
await client.send(command);
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
exports.sendStandardBatchMessages = sendStandardBatchMessages;
|
|
47
|
-
const sendFifoSqsMessage = async (queueUrl, data, MessageGroupId) => {
|
|
48
|
-
let sqsOrderData = {
|
|
49
|
-
MessageBody: JSON.stringify(data),
|
|
50
|
-
QueueUrl: queueUrl,
|
|
51
|
-
MessageGroupId,
|
|
52
|
-
};
|
|
53
|
-
// Send the order data to the SQS queue
|
|
54
|
-
const command = new client_sqs_1.SendMessageCommand(sqsOrderData);
|
|
55
|
-
return await client.send(command);
|
|
56
|
-
};
|
|
57
|
-
exports.sendFifoSqsMessage = sendFifoSqsMessage;
|
|
58
|
-
exports.default = {
|
|
59
|
-
sendStandardSqsMessage: exports.sendStandardSqsMessage,
|
|
60
|
-
sendFifoSqsMessage: exports.sendFifoSqsMessage,
|
|
61
|
-
sendStandardBatchMessages: exports.sendStandardBatchMessages,
|
|
62
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toLowerCase = exports.checksum = void 0;
|
|
4
|
-
const ethers_1 = require("ethers");
|
|
5
|
-
const checksum = (address) => ethers_1.utils.getAddress(address);
|
|
6
|
-
exports.checksum = checksum;
|
|
7
|
-
const toLowerCase = (address) => address.toLowerCase();
|
|
8
|
-
exports.toLowerCase = toLowerCase;
|
|
@@ -1,54 +0,0 @@
|
|
|
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.axiosPost = exports.axiosGet = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const __1 = require("..");
|
|
9
|
-
const axiosGet = async (url, config = {}, errorLogging = false) => {
|
|
10
|
-
var _a, _b, _c, _d;
|
|
11
|
-
if (!url)
|
|
12
|
-
throw (0, __1.InternalServerError)("GET request url not provided");
|
|
13
|
-
try {
|
|
14
|
-
const response = await axios_1.default.get(url, config);
|
|
15
|
-
return { success: true, ...response === null || response === void 0 ? void 0 : response.data };
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
if (errorLogging) {
|
|
19
|
-
console.log("status : ", (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status);
|
|
20
|
-
console.log("error occurred, url : ", url, "\n error : ", error === null || error === void 0 ? void 0 : error.message, (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data);
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
success: false,
|
|
24
|
-
status: (_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.status,
|
|
25
|
-
message: error === null || error === void 0 ? void 0 : error.message,
|
|
26
|
-
...(_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
exports.axiosGet = axiosGet;
|
|
31
|
-
const axiosPost = async (url, data, config = {}, errorLogging = false) => {
|
|
32
|
-
var _a, _b, _c, _d;
|
|
33
|
-
if (!url)
|
|
34
|
-
throw (0, __1.InternalServerError)("POST request url not provided");
|
|
35
|
-
if (!data)
|
|
36
|
-
throw (0, __1.InternalServerError)("POST request data not provided");
|
|
37
|
-
try {
|
|
38
|
-
const response = await axios_1.default.post(url, data, config);
|
|
39
|
-
return { success: true, ...response === null || response === void 0 ? void 0 : response.data };
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (errorLogging) {
|
|
43
|
-
console.log("status : ", (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status);
|
|
44
|
-
console.log("error occurred, url : ", url, "data : ", data, "\n error : ", error === null || error === void 0 ? void 0 : error.message, (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.data);
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
success: false,
|
|
48
|
-
message: error === null || error === void 0 ? void 0 : error.message,
|
|
49
|
-
status: (_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.status,
|
|
50
|
-
...(_d = error === null || error === void 0 ? void 0 : error.response) === null || _d === void 0 ? void 0 : _d.data,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
exports.axiosPost = axiosPost;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.chunks = exports.MAX_PAYLOAD_SIZE = void 0;
|
|
4
|
-
exports.MAX_PAYLOAD_SIZE = 10 * 1024; // max is 24.5 kb, left some buffer for function and batch encoding
|
|
5
|
-
function* chunks(arr, n) {
|
|
6
|
-
for (let i = 0; i < arr.length; i += n) {
|
|
7
|
-
yield arr.slice(i, i + n);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.chunks = chunks;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendToDiscordWebhook = exports.initDiscord = void 0;
|
|
4
|
-
const __1 = require("..");
|
|
5
|
-
const axios_1 = require("./axios");
|
|
6
|
-
let discordWebhookUrl;
|
|
7
|
-
let serviceName;
|
|
8
|
-
const initDiscord = (webhookUrl_, serviceName_) => {
|
|
9
|
-
discordWebhookUrl = webhookUrl_;
|
|
10
|
-
serviceName = serviceName_;
|
|
11
|
-
};
|
|
12
|
-
exports.initDiscord = initDiscord;
|
|
13
|
-
const sendToDiscordWebhook = async (title, data, optionalConfig = {}) => {
|
|
14
|
-
try {
|
|
15
|
-
if (!discordWebhookUrl) {
|
|
16
|
-
throw (0, __1.InternalServerError)("DISCORD_WEBHOOK_URL not provided");
|
|
17
|
-
}
|
|
18
|
-
let content = formatMsg(title, data);
|
|
19
|
-
await (0, axios_1.axiosPost)(discordWebhookUrl, { content, ...optionalConfig });
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
throw error;
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
exports.sendToDiscordWebhook = sendToDiscordWebhook;
|
|
26
|
-
const formatMsg = (title, data) => {
|
|
27
|
-
let message = `**${title}**\n`;
|
|
28
|
-
// Iterate through the object's key-value pairs
|
|
29
|
-
for (const key in data) {
|
|
30
|
-
if (data.hasOwnProperty(key)) {
|
|
31
|
-
message += `${key}: ${data[key]}\n`;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return message;
|
|
35
|
-
};
|