@super-protocol/sdk-js 3.2.4 → 3.2.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/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/models/Order.js +3 -3
- package/dist/cjs/staticModels/SuperproToken.d.ts +11 -4
- package/dist/cjs/staticModels/SuperproToken.js +21 -11
- package/dist/cjs/tee/OrderReportService.d.ts +11 -7
- package/dist/cjs/tee/OrderReportService.js +83 -15
- package/dist/cjs/tee/QuoteValidator.d.ts +3 -9
- package/dist/cjs/tee/QuoteValidator.js +9 -59
- package/dist/cjs/tee/TeeCertificateService.d.ts +2 -0
- package/dist/cjs/tee/TeeCertificateService.js +16 -1
- package/dist/cjs/tee/TeeSignatureVerifier.d.ts +23 -0
- package/dist/cjs/tee/TeeSignatureVerifier.js +91 -0
- package/dist/cjs/tee/types.d.ts +5 -0
- package/dist/cjs/utils/tokens/get-tokens-info.d.ts +8 -0
- package/dist/cjs/utils/tokens/get-tokens-info.js +30 -0
- package/dist/cjs/utils/tokens/index.d.ts +1 -0
- package/dist/cjs/utils/tokens/index.js +18 -0
- package/dist/mjs/index.d.ts +1 -0
- package/dist/mjs/index.js +2 -1
- package/dist/mjs/models/Order.js +3 -3
- package/dist/mjs/staticModels/SuperproToken.d.ts +11 -4
- package/dist/mjs/staticModels/SuperproToken.js +21 -11
- package/dist/mjs/tee/OrderReportService.d.ts +11 -7
- package/dist/mjs/tee/OrderReportService.js +84 -16
- package/dist/mjs/tee/QuoteValidator.d.ts +3 -9
- package/dist/mjs/tee/QuoteValidator.js +8 -58
- package/dist/mjs/tee/TeeCertificateService.d.ts +2 -0
- package/dist/mjs/tee/TeeCertificateService.js +16 -1
- package/dist/mjs/tee/TeeSignatureVerifier.d.ts +23 -0
- package/dist/mjs/tee/TeeSignatureVerifier.js +84 -0
- package/dist/mjs/tee/types.d.ts +5 -0
- package/dist/mjs/utils/tokens/get-tokens-info.d.ts +8 -0
- package/dist/mjs/utils/tokens/get-tokens-info.js +23 -0
- package/dist/mjs/utils/tokens/index.d.ts +1 -0
- package/dist/mjs/utils/tokens/index.js +2 -0
- package/package.json +3 -2
|
@@ -11,4 +11,6 @@ export declare class TeeCertificateService {
|
|
|
11
11
|
parseAndValidateCertificate(certificatePem: string | Buffer, sgxApiUrl: string): Promise<ParseTlsCertificateResult>;
|
|
12
12
|
fromRawToPem(data: Uint8Array): string;
|
|
13
13
|
splitPemCerts(certs: string): string[];
|
|
14
|
+
validateCertChain(certsPem: string, caPem: string): boolean;
|
|
15
|
+
getExtensionValue(certPem: string, oid: string): string | undefined;
|
|
14
16
|
}
|
|
@@ -35,5 +35,20 @@ export class TeeCertificateService {
|
|
|
35
35
|
const pemRegex = /(-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----)/g;
|
|
36
36
|
return certs.match(pemRegex) || [];
|
|
37
37
|
}
|
|
38
|
+
validateCertChain(certsPem, caPem) {
|
|
39
|
+
const certs = this.splitPemCerts(certsPem).map((cert) => forge.pki.certificateFromPem(cert));
|
|
40
|
+
const ca = forge.pki.certificateFromPem(caPem);
|
|
41
|
+
try {
|
|
42
|
+
return forge.pki.verifyCertificateChain(forge.pki.createCaStore([ca]), certs);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
getExtensionValue(certPem, oid) {
|
|
49
|
+
const cert = forge.pki.certificateFromPem(certPem);
|
|
50
|
+
const extension = cert.extensions.find((ext) => ext.id === oid);
|
|
51
|
+
return extension?.value;
|
|
52
|
+
}
|
|
38
53
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQ2VydGlmaWNhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlZS9UZWVDZXJ0aWZpY2F0ZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFTckQsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztJQUVyRCx1QkFBdUIsQ0FBQyxXQUFrQztRQUNoRSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSTthQUM1QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZELFFBQVEsRUFBRSxDQUFDO1FBRWQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsS0FBSyxDQUFDLDJCQUEyQixDQUMvQixjQUErQixFQUMvQixTQUFpQjtRQUVqQixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN6RixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFFMUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENB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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { BinaryType, GetTdxSignatureOptions } from './types.js';
|
|
3
|
+
export type GetMrEnclaveSignatureFn = (mrEnclave: Buffer) => Promise<Buffer>;
|
|
4
|
+
export type CheckSignatureOptions = {
|
|
5
|
+
getMrEnclaveSignature: GetMrEnclaveSignatureFn;
|
|
6
|
+
};
|
|
7
|
+
export declare class TeeSignatureVerifier {
|
|
8
|
+
/**
|
|
9
|
+
* Validates tee signature for SGX
|
|
10
|
+
* @param mrSigner Buffer
|
|
11
|
+
* @throws Error If signature validation fails
|
|
12
|
+
*/
|
|
13
|
+
static validateSignatureSgx(mrSigner: BinaryType): void;
|
|
14
|
+
/**
|
|
15
|
+
* Validates TDX TEE signature by verifying the MRENCLAVE
|
|
16
|
+
* @param mrEnclave - Binary measurement of the TEE environment to verify
|
|
17
|
+
* @param options - Configuration for signature validation
|
|
18
|
+
* @param options.getMrEnclaveSignature - Function to retrieve signature for verification (defaults to TeeSignatureVerifier.getSignature)
|
|
19
|
+
* @throws Error If signature validation fails or signature cannot be retrieved
|
|
20
|
+
*/
|
|
21
|
+
static validateSignatureTdx(mrEnclave: BinaryType, options?: CheckSignatureOptions): Promise<void>;
|
|
22
|
+
static getSignature(mrEnclave: Buffer, options?: GetTdxSignatureOptions): Promise<Buffer>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import forge from 'node-forge';
|
|
3
|
+
import { TEE_LOADER_TRUSTED_CERTIFICATE, TEE_LOADER_TRUSTED_MRSIGNER } from '../constants.js';
|
|
4
|
+
import { InvalidSignatureError } from '../index.js';
|
|
5
|
+
import { tryWithInterval } from '../utils/helpers/index.js';
|
|
6
|
+
export class TeeSignatureVerifier {
|
|
7
|
+
/**
|
|
8
|
+
* Validates tee signature for SGX
|
|
9
|
+
* @param mrSigner Buffer
|
|
10
|
+
* @throws Error If signature validation fails
|
|
11
|
+
*/
|
|
12
|
+
static validateSignatureSgx(mrSigner) {
|
|
13
|
+
if (mrSigner.toString('hex') !== TEE_LOADER_TRUSTED_MRSIGNER.toString('hex')) {
|
|
14
|
+
throw new InvalidSignatureError('Quote has an invalid MR signer');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validates TDX TEE signature by verifying the MRENCLAVE
|
|
19
|
+
* @param mrEnclave - Binary measurement of the TEE environment to verify
|
|
20
|
+
* @param options - Configuration for signature validation
|
|
21
|
+
* @param options.getMrEnclaveSignature - Function to retrieve signature for verification (defaults to TeeSignatureVerifier.getSignature)
|
|
22
|
+
* @throws Error If signature validation fails or signature cannot be retrieved
|
|
23
|
+
*/
|
|
24
|
+
static async validateSignatureTdx(mrEnclave, options = { getMrEnclaveSignature: TeeSignatureVerifier.getSignature }) {
|
|
25
|
+
const { getMrEnclaveSignature } = options;
|
|
26
|
+
const cert = forge.pki.certificateFromPem(TEE_LOADER_TRUSTED_CERTIFICATE);
|
|
27
|
+
const isCertValid = forge.pki.verifyCertificateChain(forge.pki.createCaStore([cert]), [cert]);
|
|
28
|
+
if (!isCertValid) {
|
|
29
|
+
throw new Error('Trusted cert is invalid');
|
|
30
|
+
}
|
|
31
|
+
const publicKey = cert.publicKey;
|
|
32
|
+
if (!Object.prototype.hasOwnProperty.call(publicKey, 'n') ||
|
|
33
|
+
!Object.prototype.hasOwnProperty.call(publicKey, 'e')) {
|
|
34
|
+
throw new InvalidSignatureError('Expected RSA private key inside certificate');
|
|
35
|
+
}
|
|
36
|
+
const digest = forge.md.sha256
|
|
37
|
+
.create()
|
|
38
|
+
.update(String.fromCharCode(...mrEnclave))
|
|
39
|
+
.digest();
|
|
40
|
+
const signature = await getMrEnclaveSignature(Buffer.from(mrEnclave));
|
|
41
|
+
const isSignatureValid = publicKey.verify(digest.bytes(), String.fromCharCode(...signature));
|
|
42
|
+
if (!isSignatureValid) {
|
|
43
|
+
throw new InvalidSignatureError('TDX signature is invalid');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
static async getSignature(mrEnclave, options) {
|
|
47
|
+
const baseURL = options?.baseURL ?? 'https://raw.githubusercontent.com/Super-Protocol/sp-vm';
|
|
48
|
+
const retryMax = options?.retryMax ?? 3;
|
|
49
|
+
const retryInterval = options?.retryInterval ?? 1000;
|
|
50
|
+
const mrenclaveHex = mrEnclave.toString('hex');
|
|
51
|
+
const axiosInstance = axios.create({
|
|
52
|
+
baseURL,
|
|
53
|
+
});
|
|
54
|
+
try {
|
|
55
|
+
const response = await tryWithInterval({
|
|
56
|
+
checkResult(response) {
|
|
57
|
+
return { isResultOk: response.status === 200 };
|
|
58
|
+
},
|
|
59
|
+
handler() {
|
|
60
|
+
return axiosInstance.get(`/main/signatures/mrenclave-${mrenclaveHex}.sign`, {
|
|
61
|
+
responseType: 'arraybuffer',
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
checkError(err) {
|
|
65
|
+
if (axios.isAxiosError(err) && err.response) {
|
|
66
|
+
const status = err.response.status;
|
|
67
|
+
return { retryable: status < 400 || status >= 500 };
|
|
68
|
+
}
|
|
69
|
+
return { retryable: axios.isAxiosError(err) };
|
|
70
|
+
},
|
|
71
|
+
retryInterval,
|
|
72
|
+
retryMax,
|
|
73
|
+
});
|
|
74
|
+
return Buffer.from(response.data);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
if (axios.isAxiosError(err) && err.response?.status === 404) {
|
|
78
|
+
throw new InvalidSignatureError(`TDX signature is missing for mrEnclave ${mrenclaveHex}`);
|
|
79
|
+
}
|
|
80
|
+
throw err;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlU2lnbmF0dXJlVmVyaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1RlZVNpZ25hdHVyZVZlcmlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBd0IsTUFBTSxPQUFPLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQW9CO1FBQzlDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxNQUFNLElBQUkscUJBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQy9CLFNBQXFCLEVBQ3JCLFVBQWlDLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMsWUFBWSxFQUFFO1FBRTdGLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDMUUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUs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
|
package/dist/mjs/tee/types.d.ts
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import logger from '../../logger.js';
|
|
2
|
+
import Superpro from '../../staticModels/Superpro.js';
|
|
3
|
+
import SuperproToken from '../../staticModels/SuperproToken.js';
|
|
4
|
+
export const getTokensInfo = async () => {
|
|
5
|
+
const tokens = await Superpro.getTokens();
|
|
6
|
+
const output = [];
|
|
7
|
+
for (const token of tokens) {
|
|
8
|
+
const contract = SuperproToken.createContract(token.tokenInfo.tokenAddress);
|
|
9
|
+
const symbol = await SuperproToken.symbol(contract).catch((err) => {
|
|
10
|
+
logger.error(err, `Failed to get token symbol (tokenAddress=${token.tokenInfo.tokenAddress})`);
|
|
11
|
+
throw err;
|
|
12
|
+
});
|
|
13
|
+
output.push({
|
|
14
|
+
index: Number(token.index),
|
|
15
|
+
address: token.tokenInfo.tokenAddress,
|
|
16
|
+
symbol,
|
|
17
|
+
isPrimary: token.tokenInfo.isPrimary,
|
|
18
|
+
protocolCommissionPercent: token.tokenInfo.protocolCommissionPercent,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return output;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRva2Vucy1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Rva2Vucy9nZXQtdG9rZW5zLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxRQUFRLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEQsT0FBTyxhQUFhLE1BQU0scUNBQXFDLENBQUM7QUFTaEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssSUFBa0MsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQyxNQUFNLE1BQU0sR0FBd0IsRUFBRSxDQUFDO0lBRXZDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVFLE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNoRSxNQUFNLENBQUMsS0FBSyxDQUNWLEdBQUcsRUFDSCw0Q0FBNEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEdBQUcsQ0FDNUUsQ0FBQztZQUNGLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLE9BQU8sRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDckMsTUFBTTtZQUNOLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFDcEMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyx5QkFBeUI7U0FDckUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './get-tokens-info.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './get-tokens-info.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@super-protocol/sdk-js",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.6",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/mjs/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
"@fidm/x509": "^1.2.1",
|
|
62
62
|
"@msgpack/msgpack": "^2.8.0",
|
|
63
63
|
"@sinclair/typebox": "0.33.17",
|
|
64
|
-
"@super-protocol/dto-js": "1.0.
|
|
64
|
+
"@super-protocol/dto-js": "1.0.2",
|
|
65
|
+
"@super-protocol/pki-common": "^1.5.3",
|
|
65
66
|
"@super-protocol/tee-lib": "^0.1.2",
|
|
66
67
|
"@super-protocol/uplink-nodejs": "^1.2.20",
|
|
67
68
|
"asn1js": "^3.0.5",
|