@super-protocol/sdk-js 3.16.0-beta.0 → 3.16.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,407 @@
1
+ export const adminCertificateHelperAbi = [
2
+ {
3
+ inputs: [
4
+ {
5
+ internalType: 'contract ICertVerifier',
6
+ name: '_certVerifier',
7
+ type: 'address',
8
+ },
9
+ ],
10
+ stateMutability: 'nonpayable',
11
+ type: 'constructor',
12
+ },
13
+ {
14
+ inputs: [],
15
+ name: 'ECDSAInvalidSignature',
16
+ type: 'error',
17
+ },
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: 'uint256',
22
+ name: 'length',
23
+ type: 'uint256',
24
+ },
25
+ ],
26
+ name: 'ECDSAInvalidSignatureLength',
27
+ type: 'error',
28
+ },
29
+ {
30
+ inputs: [
31
+ {
32
+ internalType: 'bytes32',
33
+ name: 's',
34
+ type: 'bytes32',
35
+ },
36
+ ],
37
+ name: 'ECDSAInvalidSignatureS',
38
+ type: 'error',
39
+ },
40
+ {
41
+ anonymous: false,
42
+ inputs: [
43
+ {
44
+ indexed: true,
45
+ internalType: 'contract ICertVerifier',
46
+ name: 'oldCertVerifier',
47
+ type: 'address',
48
+ },
49
+ {
50
+ indexed: true,
51
+ internalType: 'contract ICertVerifier',
52
+ name: 'newCertVerifier',
53
+ type: 'address',
54
+ },
55
+ ],
56
+ name: 'CertVerifierSet',
57
+ type: 'event',
58
+ },
59
+ {
60
+ anonymous: false,
61
+ inputs: [
62
+ {
63
+ indexed: true,
64
+ internalType: 'address',
65
+ name: 'from',
66
+ type: 'address',
67
+ },
68
+ {
69
+ indexed: true,
70
+ internalType: 'address',
71
+ name: 'to',
72
+ type: 'address',
73
+ },
74
+ ],
75
+ name: 'OwnershipTransferRequested',
76
+ type: 'event',
77
+ },
78
+ {
79
+ anonymous: false,
80
+ inputs: [
81
+ {
82
+ indexed: true,
83
+ internalType: 'address',
84
+ name: 'from',
85
+ type: 'address',
86
+ },
87
+ {
88
+ indexed: true,
89
+ internalType: 'address',
90
+ name: 'to',
91
+ type: 'address',
92
+ },
93
+ ],
94
+ name: 'OwnershipTransferred',
95
+ type: 'event',
96
+ },
97
+ {
98
+ anonymous: false,
99
+ inputs: [
100
+ {
101
+ indexed: true,
102
+ internalType: 'address',
103
+ name: 'oldAdmin',
104
+ type: 'address',
105
+ },
106
+ {
107
+ indexed: true,
108
+ internalType: 'address',
109
+ name: 'newAdmin',
110
+ type: 'address',
111
+ },
112
+ {
113
+ components: [
114
+ {
115
+ internalType: 'bytes[]',
116
+ name: 'nonSerializedParts',
117
+ type: 'bytes[]',
118
+ },
119
+ {
120
+ internalType: 'bytes',
121
+ name: 'expirationDate',
122
+ type: 'bytes',
123
+ },
124
+ {
125
+ internalType: 'bytes',
126
+ name: 'ca',
127
+ type: 'bytes',
128
+ },
129
+ {
130
+ internalType: 'bytes32',
131
+ name: 'userData',
132
+ type: 'bytes32',
133
+ },
134
+ {
135
+ internalType: 'bytes',
136
+ name: 'publicKey',
137
+ type: 'bytes',
138
+ },
139
+ {
140
+ internalType: 'bytes',
141
+ name: 'serialNumber',
142
+ type: 'bytes',
143
+ },
144
+ {
145
+ internalType: 'bytes32',
146
+ name: 'mrEnclave',
147
+ type: 'bytes32',
148
+ },
149
+ {
150
+ internalType: 'bytes32',
151
+ name: 'mrSigner',
152
+ type: 'bytes32',
153
+ },
154
+ {
155
+ internalType: 'bytes',
156
+ name: 'signature',
157
+ type: 'bytes',
158
+ },
159
+ ],
160
+ indexed: false,
161
+ internalType: 'struct ChunkedX509Cert[]',
162
+ name: 'certsChain',
163
+ type: 'tuple[]',
164
+ },
165
+ {
166
+ indexed: false,
167
+ internalType: 'uint256',
168
+ name: 'rootCertId',
169
+ type: 'uint256',
170
+ },
171
+ ],
172
+ name: 'SetAdmin',
173
+ type: 'event',
174
+ },
175
+ {
176
+ inputs: [],
177
+ name: 'acceptOwnership',
178
+ outputs: [],
179
+ stateMutability: 'nonpayable',
180
+ type: 'function',
181
+ },
182
+ {
183
+ inputs: [
184
+ {
185
+ components: [
186
+ {
187
+ internalType: 'bytes[]',
188
+ name: 'nonSerializedParts',
189
+ type: 'bytes[]',
190
+ },
191
+ {
192
+ internalType: 'bytes',
193
+ name: 'expirationDate',
194
+ type: 'bytes',
195
+ },
196
+ {
197
+ internalType: 'bytes',
198
+ name: 'ca',
199
+ type: 'bytes',
200
+ },
201
+ {
202
+ internalType: 'bytes32',
203
+ name: 'userData',
204
+ type: 'bytes32',
205
+ },
206
+ {
207
+ internalType: 'bytes',
208
+ name: 'publicKey',
209
+ type: 'bytes',
210
+ },
211
+ {
212
+ internalType: 'bytes',
213
+ name: 'serialNumber',
214
+ type: 'bytes',
215
+ },
216
+ {
217
+ internalType: 'bytes32',
218
+ name: 'mrEnclave',
219
+ type: 'bytes32',
220
+ },
221
+ {
222
+ internalType: 'bytes32',
223
+ name: 'mrSigner',
224
+ type: 'bytes32',
225
+ },
226
+ {
227
+ internalType: 'bytes',
228
+ name: 'signature',
229
+ type: 'bytes',
230
+ },
231
+ ],
232
+ internalType: 'struct ChunkedX509Cert[]',
233
+ name: '_certsChain',
234
+ type: 'tuple[]',
235
+ },
236
+ {
237
+ internalType: 'uint256',
238
+ name: '_rootCertId',
239
+ type: 'uint256',
240
+ },
241
+ {
242
+ internalType: 'bytes',
243
+ name: 'signature',
244
+ type: 'bytes',
245
+ },
246
+ ],
247
+ name: 'addAdmin',
248
+ outputs: [],
249
+ stateMutability: 'nonpayable',
250
+ type: 'function',
251
+ },
252
+ {
253
+ inputs: [],
254
+ name: 'getAdminData',
255
+ outputs: [
256
+ {
257
+ internalType: 'address',
258
+ name: '_admin',
259
+ type: 'address',
260
+ },
261
+ {
262
+ components: [
263
+ {
264
+ internalType: 'bytes[]',
265
+ name: 'nonSerializedParts',
266
+ type: 'bytes[]',
267
+ },
268
+ {
269
+ internalType: 'bytes',
270
+ name: 'expirationDate',
271
+ type: 'bytes',
272
+ },
273
+ {
274
+ internalType: 'bytes',
275
+ name: 'ca',
276
+ type: 'bytes',
277
+ },
278
+ {
279
+ internalType: 'bytes32',
280
+ name: 'userData',
281
+ type: 'bytes32',
282
+ },
283
+ {
284
+ internalType: 'bytes',
285
+ name: 'publicKey',
286
+ type: 'bytes',
287
+ },
288
+ {
289
+ internalType: 'bytes',
290
+ name: 'serialNumber',
291
+ type: 'bytes',
292
+ },
293
+ {
294
+ internalType: 'bytes32',
295
+ name: 'mrEnclave',
296
+ type: 'bytes32',
297
+ },
298
+ {
299
+ internalType: 'bytes32',
300
+ name: 'mrSigner',
301
+ type: 'bytes32',
302
+ },
303
+ {
304
+ internalType: 'bytes',
305
+ name: 'signature',
306
+ type: 'bytes',
307
+ },
308
+ ],
309
+ internalType: 'struct ChunkedX509Cert[]',
310
+ name: '_certsChain',
311
+ type: 'tuple[]',
312
+ },
313
+ {
314
+ internalType: 'uint256',
315
+ name: '_rootCertId',
316
+ type: 'uint256',
317
+ },
318
+ ],
319
+ stateMutability: 'view',
320
+ type: 'function',
321
+ },
322
+ {
323
+ inputs: [],
324
+ name: 'getCertVerifier',
325
+ outputs: [
326
+ {
327
+ internalType: 'contract ICertVerifier',
328
+ name: '',
329
+ type: 'address',
330
+ },
331
+ ],
332
+ stateMutability: 'view',
333
+ type: 'function',
334
+ },
335
+ {
336
+ inputs: [],
337
+ name: 'getSignatureNonce',
338
+ outputs: [
339
+ {
340
+ internalType: 'uint256',
341
+ name: '',
342
+ type: 'uint256',
343
+ },
344
+ ],
345
+ stateMutability: 'view',
346
+ type: 'function',
347
+ },
348
+ {
349
+ inputs: [
350
+ {
351
+ internalType: 'address',
352
+ name: 'caller',
353
+ type: 'address',
354
+ },
355
+ ],
356
+ name: 'isAdmin',
357
+ outputs: [
358
+ {
359
+ internalType: 'bool',
360
+ name: '',
361
+ type: 'bool',
362
+ },
363
+ ],
364
+ stateMutability: 'view',
365
+ type: 'function',
366
+ },
367
+ {
368
+ inputs: [],
369
+ name: 'owner',
370
+ outputs: [
371
+ {
372
+ internalType: 'address payable',
373
+ name: '',
374
+ type: 'address',
375
+ },
376
+ ],
377
+ stateMutability: 'view',
378
+ type: 'function',
379
+ },
380
+ {
381
+ inputs: [
382
+ {
383
+ internalType: 'contract ICertVerifier',
384
+ name: '_certVerifier',
385
+ type: 'address',
386
+ },
387
+ ],
388
+ name: 'setCertVerifier',
389
+ outputs: [],
390
+ stateMutability: 'nonpayable',
391
+ type: 'function',
392
+ },
393
+ {
394
+ inputs: [
395
+ {
396
+ internalType: 'address',
397
+ name: '_to',
398
+ type: 'address',
399
+ },
400
+ ],
401
+ name: 'transferOwnership',
402
+ outputs: [],
403
+ stateMutability: 'nonpayable',
404
+ type: 'function',
405
+ },
406
+ ];
407
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW5DZXJ0aWZpY2F0ZUhlbHBlckFiaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvYWRtaW5DZXJ0aWZpY2F0ZUhlbHBlckFiaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QztRQUNFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFlBQVksRUFBRSx3QkFBd0I7Z0JBQ3RDLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsU0FBUzthQUNoQjtTQUNGO1FBQ0QsZUFBZSxFQUFFLFlBQVk7UUFDN0IsSUFBSSxFQUFFLGFBQWE7S0FDcEI7SUFDRDtRQUNFLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFNBQVM7YUFDaEI7U0FDRjtRQUNELElBQUksRUFBRSw2QkFBNkI7UUFDbkMsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsWUFBWSxFQUFFLFNBQVM7Z0JBQ3ZCLElBQUksRUFBRSxHQUFHO2dCQUNULElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRDtRQUNFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFlBQVksRUFBRSx3QkFBd0I7Z0JBQ3RDLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsWUFBWSxFQUFFLHdCQUF3Qjtn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
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ import { Contract, TransactionReceipt } from 'web3';
3
+ import { adminCertificateHelperAbi } from '../contracts/adminCertificateHelperAbi.js';
4
+ import { BlockchainCert } from '../certificates/index.js';
5
+ import { TransactionOptions } from '../types/index.js';
6
+ export declare class AdminCertificateHelper {
7
+ private static contractHttps?;
8
+ private static _addressHttps?;
9
+ static set address(newAddress: string);
10
+ static createContract(newAddress: string): Contract<typeof adminCertificateHelperAbi>;
11
+ static get address(): string;
12
+ static addAdmin(chain: BlockchainCert[], signature: Buffer | string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
13
+ static getSignatureNonce(): Promise<number>;
14
+ static isAdmin(caller: string): Promise<boolean>;
15
+ static getCertVerifier(): Promise<string>;
16
+ static getAdminData(): Promise<{
17
+ admin: string;
18
+ certsChain: BlockchainCert[];
19
+ rootCertId: number;
20
+ }>;
21
+ private static certToRawBLockchainCert;
22
+ private static fromRawBlockchainCert;
23
+ private static getContract;
24
+ }
@@ -0,0 +1,92 @@
1
+ import { adminCertificateHelperAbi } from '../contracts/adminCertificateHelperAbi.js';
2
+ import store from '../store.js';
3
+ import { checkIfActionAccountInitialized, fromBlockchainHex, fromBlockchainHexOptional, toBlockchainHex, } from '../utils/helper.js';
4
+ import TxManager from '../utils/TxManager.js';
5
+ export class AdminCertificateHelper {
6
+ static contractHttps;
7
+ static _addressHttps;
8
+ static set address(newAddress) {
9
+ AdminCertificateHelper._addressHttps = newAddress;
10
+ const contractHttps = AdminCertificateHelper.createContract(newAddress);
11
+ AdminCertificateHelper.contractHttps = contractHttps;
12
+ }
13
+ static createContract(newAddress) {
14
+ if (!store.web3Https) {
15
+ throw new Error('web3Https is not initialized');
16
+ }
17
+ const httpsContract = new store.web3Https.eth.Contract(adminCertificateHelperAbi, newAddress, {
18
+ config: { contractDataInputFill: 'data' },
19
+ });
20
+ return httpsContract;
21
+ }
22
+ static get address() {
23
+ if (!AdminCertificateHelper._addressHttps) {
24
+ throw new Error('AdminCertificateHelper.address is not set');
25
+ }
26
+ return AdminCertificateHelper._addressHttps;
27
+ }
28
+ static async addAdmin(chain, signature, transactionOptions, checkTxBeforeSend = false) {
29
+ const contract = this.getContract();
30
+ checkIfActionAccountInitialized(transactionOptions);
31
+ const blockchainChain = chain.map((cert) => AdminCertificateHelper.certToRawBLockchainCert(cert));
32
+ const blockchainSignature = signature instanceof Buffer ? toBlockchainHex(signature) : signature;
33
+ if (checkTxBeforeSend) {
34
+ await TxManager.dryRun(contract.methods.addAdmin(blockchainChain, 0, blockchainSignature), transactionOptions);
35
+ }
36
+ return await TxManager.execute(contract.methods.addAdmin(blockchainChain, 0, blockchainSignature), transactionOptions, AdminCertificateHelper.address);
37
+ }
38
+ static async getSignatureNonce() {
39
+ const contract = this.getContract();
40
+ return Number(await contract.methods.getSignatureNonce().call());
41
+ }
42
+ static async isAdmin(caller) {
43
+ const contract = this.getContract();
44
+ return await contract.methods.isAdmin(caller).call();
45
+ }
46
+ static async getCertVerifier() {
47
+ const contract = this.getContract();
48
+ return await contract.methods.getCertVerifier().call();
49
+ }
50
+ static async getAdminData() {
51
+ const contract = this.getContract();
52
+ const res = (await contract.methods.getAdminData().call());
53
+ const adminRaw = res._admin;
54
+ const certsChainRaw = res._certsChain;
55
+ const rootCertIdRaw = res._rootCertId;
56
+ const certsChain = certsChainRaw.map(AdminCertificateHelper.fromRawBlockchainCert);
57
+ return { admin: adminRaw, certsChain, rootCertId: Number(rootCertIdRaw) };
58
+ }
59
+ static certToRawBLockchainCert(cert) {
60
+ return [
61
+ cert.nonSerializedParts.map(toBlockchainHex),
62
+ toBlockchainHex(cert.expirationDate),
63
+ toBlockchainHex(cert.ca),
64
+ toBlockchainHex(cert.userData),
65
+ toBlockchainHex(cert.publicKey),
66
+ toBlockchainHex(cert.serialNumber),
67
+ toBlockchainHex(cert.mrEnclave),
68
+ toBlockchainHex(cert.mrSigner),
69
+ toBlockchainHex(cert.signature),
70
+ ];
71
+ }
72
+ static fromRawBlockchainCert(rawCert) {
73
+ return {
74
+ nonSerializedParts: rawCert.nonSerializedParts.map((part) => fromBlockchainHex(part)),
75
+ expirationDate: fromBlockchainHex(rawCert.expirationDate),
76
+ ca: fromBlockchainHex(rawCert.ca),
77
+ userData: fromBlockchainHexOptional(rawCert.userData),
78
+ publicKey: fromBlockchainHex(rawCert.publicKey),
79
+ serialNumber: fromBlockchainHex(rawCert.serialNumber),
80
+ mrEnclave: fromBlockchainHexOptional(rawCert.mrEnclave),
81
+ mrSigner: fromBlockchainHexOptional(rawCert.mrSigner),
82
+ signature: fromBlockchainHex(rawCert.signature),
83
+ };
84
+ }
85
+ static getContract() {
86
+ if (!this.contractHttps) {
87
+ throw new Error('AdminCertificateHelper is no initialized');
88
+ }
89
+ return this.contractHttps;
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRtaW5DZXJ0aWZpY2F0ZUhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0aWNNb2RlbHMvQWRtaW5DZXJ0aWZpY2F0ZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFHaEMsT0FBTyxFQUNMLCtCQUErQixFQUMvQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQW9COUMsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixNQUFNLENBQUMsYUFBYSxDQUE4QztJQUNsRSxNQUFNLENBQUMsYUFBYSxDQUFVO0lBRS9CLE1BQU0sS0FBSyxPQUFPLENBQUMsVUFBa0I7UUFDMUMsc0JBQXNCLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEUsc0JBQXNCLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFrQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsVUFBVSxFQUFFO1lBQzVGLE1BQU0sRUFBRSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRTtTQUMxQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFD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
@@ -17,18 +17,9 @@ declare class Campaign {
17
17
  */
18
18
  private static checkInit;
19
19
  private static getContract;
20
- static isUniqueSrcAddressByParticipant(participant: string, srcAddress: string, contract?: Contract<typeof abi>): Promise<{
21
- clearedLink: string;
22
- isUnique: boolean;
23
- }>;
24
- static isUniqueDstAddress(dstAddress: string, contract?: Contract<typeof abi>): Promise<{
25
- clearedLink: string;
26
- isUnique: boolean;
27
- }>;
28
- static isUniqueSrcAddress(srcAddress: string, contract?: Contract<typeof abi>): Promise<{
29
- clearedLink: string;
30
- isUnique: boolean;
31
- }>;
20
+ static isUniqueSrcAddressByParticipant(participant: string, srcAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
21
+ static isUniqueDstAddress(dstAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
22
+ static isUniqueSrcAddress(srcAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
32
23
  static getStat(contract?: Contract<typeof abi>): Promise<{
33
24
  totalMigrations: number;
34
25
  totalDeployedMigrations: number;
@@ -0,0 +1,13 @@
1
+ import { RegisterAdminParams } from './types.js';
2
+ import { BlockchainCert } from '../certificates/index.js';
3
+ export declare class AdminService {
4
+ private readonly logger;
5
+ constructor(adminCertificateContractAddress: string);
6
+ registerAdmin(params: RegisterAdminParams): Promise<void>;
7
+ isAdmin(caller: string): Promise<boolean>;
8
+ getAdminData(): Promise<{
9
+ admin: string;
10
+ rootCertId: number;
11
+ certsChain: BlockchainCert[];
12
+ }>;
13
+ }
@@ -0,0 +1,66 @@
1
+ import { createHash, createPrivateKey } from 'crypto';
2
+ import { ethers } from 'ethers';
3
+ import rootLogger from '../logger.js';
4
+ import { CertificateSerializer, CertificatesHelper, } from '../certificates/index.js';
5
+ import store from '../store.js';
6
+ import { CryptoKeysTransformer } from '../utils/CryptoKeysTransformer.js';
7
+ import { AdminCertificateHelper } from '../staticModels/AdminCertificateHelper.js';
8
+ export class AdminService {
9
+ logger = rootLogger.child({ module: AdminService.name });
10
+ constructor(adminCertificateContractAddress) {
11
+ AdminCertificateHelper.address = adminCertificateContractAddress;
12
+ }
13
+ async registerAdmin(params) {
14
+ const { adminAccountAddress, certPrivateKeyPem, certsPem } = params;
15
+ const { certs } = CertificatesHelper.extractCAFromChain(certsPem);
16
+ const chain = CertificatesHelper.splitPemCerts(certs);
17
+ if (!chain.length) {
18
+ throw new Error('No certificates found to register admin');
19
+ }
20
+ const blockchainSerializedChain = chain.map((certPem) => CertificateSerializer.serializeForBlockchain(certPem));
21
+ const signatureNonce = await AdminCertificateHelper.getSignatureNonce();
22
+ const chainId = store.chainId;
23
+ const signatureBase = store.web3Https.eth.abi.encodeParameters(['address', 'uint256', 'address', 'uint256'], [
24
+ adminAccountAddress,
25
+ BigInt(chainId),
26
+ AdminCertificateHelper.address,
27
+ BigInt(signatureNonce),
28
+ ]);
29
+ const messageBytes = Buffer.from(signatureBase.replace(/^0x/, ''), 'hex');
30
+ const digest = createHash('sha256').update(messageBytes).digest();
31
+ const keyObj = createPrivateKey(certPrivateKeyPem);
32
+ const privHex = CryptoKeysTransformer.getStructuredPrivateKeyFromKeyObj(keyObj); // hex without 0x
33
+ const signingKey = new ethers.utils.SigningKey('0x' + privHex);
34
+ const sig = signingKey.signDigest('0x' + digest.toString('hex'));
35
+ const signatureHex = ethers.utils.joinSignature(sig);
36
+ this.logger.info({
37
+ admin: adminAccountAddress,
38
+ chainId,
39
+ certsCount: chain.length,
40
+ signatureNonce,
41
+ signaturePreview: `${signatureHex.slice(0, 5)}…${signatureHex.slice(-5)}`,
42
+ }, 'Registering admin with certificate');
43
+ try {
44
+ const tx = await AdminCertificateHelper.addAdmin(blockchainSerializedChain, signatureHex, {
45
+ from: adminAccountAddress,
46
+ });
47
+ this.logger.trace({ admin: adminAccountAddress, txHash: tx.transactionHash }, 'Admin registration successful');
48
+ }
49
+ catch (err) {
50
+ this.logger.error({ err }, 'Admin registration failed');
51
+ throw err;
52
+ }
53
+ }
54
+ async isAdmin(caller) {
55
+ return await AdminCertificateHelper.isAdmin(caller);
56
+ }
57
+ async getAdminData() {
58
+ const data = await AdminCertificateHelper.getAdminData();
59
+ return {
60
+ admin: data.admin,
61
+ rootCertId: data.rootCertId,
62
+ certsChain: data.certsChain,
63
+ };
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9hZG1pbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVoQyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQkFBa0IsR0FDbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFbkYsTUFBTSxPQUFPLFlBQVk7SUFDTixNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxRSxZQUFZLCtCQUF1QztRQUNqRCxzQkFBc0IsQ0FBQyxPQUFPLEdBQUcsK0JBQStCLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBMkI7UUFDN0MsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUVwRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMs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
@@ -76,3 +76,6 @@ export declare function executeBatchAsync<T>(requests: JsonRpcOptionalRequest[],
76
76
  export declare function executeBatchAsync<T>(requests: JsonRpcOptionalRequest[], options?: ExecuteBatchOptions): Promise<BatchResponse<T>[]>;
77
77
  export declare const preparePrivateKey: (pk: string) => string;
78
78
  export declare const isIpAddress: (host: string) => boolean;
79
+ export declare const fromBlockchainHexOptional: (hex?: string) => Uint8Array | undefined;
80
+ export declare const fromBlockchainHex: (hex: string) => Uint8Array;
81
+ export declare const toBlockchainHex: (u?: Uint8Array) => string;