@super-protocol/sdk-js 3.4.0-beta.9 → 3.5.0-beta.0
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/certificates/crl.d.ts +6 -0
- package/dist/cjs/certificates/crl.js +66 -0
- package/dist/cjs/certificates/helper.d.ts +23 -0
- package/dist/cjs/certificates/helper.js +176 -0
- package/dist/cjs/certificates/index.d.ts +2 -0
- package/dist/cjs/certificates/index.js +19 -0
- package/dist/cjs/certificates/ocsp.d.ts +9 -0
- package/dist/cjs/certificates/ocsp.js +124 -0
- package/dist/cjs/certificates/types.d.ts +4 -0
- package/dist/cjs/certificates/types.js +3 -0
- package/dist/cjs/connectors/BaseConnector.d.ts +1 -0
- package/dist/cjs/connectors/BaseConnector.js +1 -1
- package/dist/cjs/connectors/BlockchainConnector.js +2 -2
- package/dist/cjs/constants.d.ts +8 -1
- package/dist/cjs/constants.js +10 -3
- package/dist/cjs/contracts/abi.d.ts +90 -30
- package/dist/cjs/contracts/abi.js +114 -36
- package/dist/cjs/crypto/types.d.ts +0 -4
- package/dist/cjs/crypto/utils.d.ts +2 -3
- package/dist/cjs/crypto/utils.js +46 -26
- package/dist/cjs/crypto/utils.spec.d.ts +1 -0
- package/dist/cjs/crypto/utils.spec.js +176 -0
- package/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/models/Offer.d.ts +7 -5
- package/dist/cjs/models/Offer.js +20 -13
- package/dist/cjs/providers/storage/fs-storage-provider.js +3 -4
- package/dist/cjs/staticModels/LoaderSecretsAccessPublicKeys.d.ts +9 -0
- package/dist/cjs/staticModels/LoaderSecretsAccessPublicKeys.js +48 -0
- package/dist/cjs/staticModels/OfferResources.js +3 -3
- package/dist/cjs/staticModels/OffersStorageRequests.js +3 -3
- package/dist/cjs/staticModels/SecretRequests.js +2 -2
- package/dist/cjs/store.d.ts +2 -0
- package/dist/cjs/store.js +3 -1
- package/dist/cjs/tee/OrderReportService.d.ts +0 -3
- package/dist/cjs/tee/OrderReportService.js +11 -28
- package/dist/cjs/tee/QuoteValidator.js +2 -2
- package/dist/cjs/tee/TeeCertificateService.d.ts +14 -17
- package/dist/cjs/tee/TeeCertificateService.js +60 -73
- package/dist/cjs/tee/TeeSignatureVerifier.d.ts +2 -2
- package/dist/cjs/tee/TeeSignatureVerifier.js +3 -3
- package/dist/cjs/types/DistributedSecretStorage.d.ts +1 -1
- package/dist/cjs/types/OrderUsage.d.ts +2 -0
- package/dist/cjs/types/ValueOfferSlot.d.ts +1 -0
- package/dist/cjs/utils/TxManager.d.ts +3 -1
- package/dist/cjs/utils/TxManager.js +56 -30
- package/dist/cjs/utils/helper.d.ts +3 -3
- package/dist/cjs/utils/helper.js +12 -11
- package/dist/mjs/certificates/crl.d.ts +6 -0
- package/dist/mjs/certificates/crl.js +39 -0
- package/dist/mjs/certificates/helper.d.ts +23 -0
- package/dist/mjs/certificates/helper.js +146 -0
- package/dist/mjs/certificates/index.d.ts +2 -0
- package/dist/mjs/certificates/index.js +3 -0
- package/dist/mjs/certificates/ocsp.d.ts +9 -0
- package/dist/mjs/certificates/ocsp.js +94 -0
- package/dist/mjs/certificates/types.d.ts +4 -0
- package/dist/mjs/certificates/types.js +2 -0
- package/dist/mjs/connectors/BaseConnector.d.ts +1 -0
- package/dist/mjs/connectors/BaseConnector.js +1 -1
- package/dist/mjs/connectors/BlockchainConnector.js +2 -2
- package/dist/mjs/constants.d.ts +8 -1
- package/dist/mjs/constants.js +9 -2
- package/dist/mjs/contracts/abi.d.ts +90 -30
- package/dist/mjs/contracts/abi.js +113 -35
- package/dist/mjs/crypto/types.d.ts +0 -4
- package/dist/mjs/crypto/utils.d.ts +2 -3
- package/dist/mjs/crypto/utils.js +46 -26
- package/dist/mjs/crypto/utils.spec.d.ts +1 -0
- package/dist/mjs/crypto/utils.spec.js +174 -0
- package/dist/mjs/index.d.ts +4 -2
- package/dist/mjs/index.js +5 -3
- package/dist/mjs/models/Offer.d.ts +7 -5
- package/dist/mjs/models/Offer.js +20 -13
- package/dist/mjs/providers/storage/fs-storage-provider.js +3 -4
- package/dist/mjs/staticModels/LoaderSecretsAccessPublicKeys.d.ts +9 -0
- package/dist/mjs/staticModels/LoaderSecretsAccessPublicKeys.js +43 -0
- package/dist/mjs/staticModels/OfferResources.js +3 -3
- package/dist/mjs/staticModels/OffersStorageRequests.js +3 -3
- package/dist/mjs/staticModels/SecretRequests.js +2 -2
- package/dist/mjs/store.d.ts +2 -0
- package/dist/mjs/store.js +4 -2
- package/dist/mjs/tee/OrderReportService.d.ts +0 -3
- package/dist/mjs/tee/OrderReportService.js +12 -29
- package/dist/mjs/tee/QuoteValidator.js +2 -2
- package/dist/mjs/tee/TeeCertificateService.d.ts +14 -17
- package/dist/mjs/tee/TeeCertificateService.js +59 -69
- package/dist/mjs/tee/TeeSignatureVerifier.d.ts +2 -2
- package/dist/mjs/tee/TeeSignatureVerifier.js +3 -3
- package/dist/mjs/types/DistributedSecretStorage.d.ts +1 -1
- package/dist/mjs/types/OrderUsage.d.ts +2 -0
- package/dist/mjs/types/ValueOfferSlot.d.ts +1 -0
- package/dist/mjs/utils/TxManager.d.ts +3 -1
- package/dist/mjs/utils/TxManager.js +57 -31
- package/dist/mjs/utils/helper.d.ts +3 -3
- package/dist/mjs/utils/helper.js +10 -9
- package/package.json +4 -4
- package/dist/cjs/staticModels/LoaderSecretsPublicKeys.d.ts +0 -9
- package/dist/cjs/staticModels/LoaderSecretsPublicKeys.js +0 -48
- package/dist/mjs/staticModels/LoaderSecretsPublicKeys.d.ts +0 -9
- package/dist/mjs/staticModels/LoaderSecretsPublicKeys.js +0 -43
|
@@ -1,95 +1,85 @@
|
|
|
1
|
-
import forge from 'node-forge';
|
|
2
|
-
import { TeeSgxParser } from './QuoteParser.js';
|
|
3
|
-
import { QuoteValidator } from './QuoteValidator.js';
|
|
4
1
|
import { SUPERPROTOCOL_CA } from '../constants.js';
|
|
5
2
|
import { ChallengeType, OID_CUSTOM_EXTENSION_CHALLENGE_COMMON_ID, OID_CUSTOM_EXTENSION_CHALLENGE_ID, OID_CUSTOM_EXTENSION_CHALLENGE_TYPE, } from '@super-protocol/pki-common';
|
|
6
3
|
import { TeeSignatureVerifier } from './TeeSignatureVerifier.js';
|
|
7
4
|
import { InvalidSignatureError } from './errors.js';
|
|
5
|
+
import { CertificatesHelper } from '../certificates/index.js';
|
|
6
|
+
export var ValidateTeeCertChainErrorCode;
|
|
7
|
+
(function (ValidateTeeCertChainErrorCode) {
|
|
8
|
+
ValidateTeeCertChainErrorCode["CERT_CHAIN_IS_INVALID"] = "CERT_CHAIN_IS_INVALID";
|
|
9
|
+
ValidateTeeCertChainErrorCode["NOT_ALLOWED_CHALLENGE"] = "NOT_ALLOWED_CHALLENGE";
|
|
10
|
+
ValidateTeeCertChainErrorCode["CHALLENGE_IS_INVALID"] = "CHALLENGE_IS_INVALID";
|
|
11
|
+
})(ValidateTeeCertChainErrorCode || (ValidateTeeCertChainErrorCode = {}));
|
|
8
12
|
export class TeeCertificateService {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return Buffer.from(publicKeyDer, 'binary');
|
|
15
|
-
}
|
|
16
|
-
async parseAndValidateCertificate(certificatePem, sgxApiUrl) {
|
|
17
|
-
const pem = Buffer.isBuffer(certificatePem) ? certificatePem.toString() : certificatePem;
|
|
18
|
-
const certificate = forge.pki.certificateFromPem(pem);
|
|
19
|
-
const extensions = certificate.extensions;
|
|
20
|
-
const quote = extensions.find((ext) => ext.id === this.certOidQuote);
|
|
21
|
-
const quoteBuffer = Buffer.from(quote.value, 'binary');
|
|
22
|
-
const validator = new QuoteValidator(sgxApiUrl);
|
|
23
|
-
await validator.checkQuote(quoteBuffer, this.getCertificatePublicKey(certificate));
|
|
24
|
-
const parser = new TeeSgxParser();
|
|
25
|
-
const parsedQuote = parser.parseQuote(quoteBuffer);
|
|
26
|
-
const report = parser.parseReport(parsedQuote.report);
|
|
27
|
-
return {
|
|
28
|
-
userData: Buffer.from(parsedQuote.header.userData),
|
|
29
|
-
mrEnclave: Buffer.from(report.mrEnclave),
|
|
30
|
-
mrSigner: Buffer.from(report.mrSigner),
|
|
31
|
-
dataHash: Buffer.from(report.dataHash),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
fromRawToPem(data) {
|
|
35
|
-
const base64 = Buffer.from(data).toString('base64');
|
|
36
|
-
return `-----BEGIN CERTIFICATE-----\n${base64.match(/.{1,64}/g).join('\n')}\n-----END CERTIFICATE-----`;
|
|
37
|
-
}
|
|
38
|
-
splitPemCerts(certs) {
|
|
39
|
-
const pemRegex = /(-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----)/g;
|
|
40
|
-
return certs.match(pemRegex) || [];
|
|
13
|
+
static async validateTeeCertChainOrFail(certsPem) {
|
|
14
|
+
const result = await TeeCertificateService.validateTeeCertChain(certsPem);
|
|
15
|
+
if (!result.isValid) {
|
|
16
|
+
throw new Error(result.errorMessage);
|
|
17
|
+
}
|
|
41
18
|
}
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
19
|
+
static async validateTeeCertChain(certsPem) {
|
|
20
|
+
const { isValid, errorMessage } = await CertificatesHelper.validateCertChain(certsPem, SUPERPROTOCOL_CA);
|
|
21
|
+
if (!isValid) {
|
|
22
|
+
return {
|
|
23
|
+
isValid: false,
|
|
24
|
+
errorCode: ValidateTeeCertChainErrorCode.CERT_CHAIN_IS_INVALID,
|
|
25
|
+
errorMessage: `Cert chain is invalid! (${errorMessage})`,
|
|
26
|
+
};
|
|
47
27
|
}
|
|
48
|
-
|
|
49
|
-
|
|
28
|
+
const sortedCerts = CertificatesHelper.sortCertsFromLeafToRoot(certsPem);
|
|
29
|
+
const challenges = sortedCerts.map((cert) => CertificatesHelper.getExtensionValue(cert, OID_CUSTOM_EXTENSION_CHALLENGE_TYPE)?.toString('binary'));
|
|
30
|
+
if (challenges.some((challenge) => !challenge || challenge === ChallengeType.Untrusted)) {
|
|
31
|
+
return {
|
|
32
|
+
isValid: false,
|
|
33
|
+
errorCode: ValidateTeeCertChainErrorCode.NOT_ALLOWED_CHALLENGE,
|
|
34
|
+
errorMessage: `Cert chain has cert without or Untrusted challenge`,
|
|
35
|
+
};
|
|
50
36
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
37
|
+
const leafCertChallengeType = challenges[0];
|
|
38
|
+
try {
|
|
39
|
+
switch (leafCertChallengeType) {
|
|
40
|
+
case ChallengeType.SGXDCAP:
|
|
41
|
+
TeeCertificateService.validateChallengeSgx(certsPem);
|
|
42
|
+
break;
|
|
43
|
+
case ChallengeType.TDX:
|
|
44
|
+
case ChallengeType.AMDSEV:
|
|
45
|
+
await TeeCertificateService.validateChallengeTdxAndSnp(certsPem);
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
return {
|
|
49
|
+
isValid: false,
|
|
50
|
+
errorCode: ValidateTeeCertChainErrorCode.NOT_ALLOWED_CHALLENGE,
|
|
51
|
+
errorMessage: `Challenge type ${leafCertChallengeType || `[none]`} is missing or not allowed!`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
61
54
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
await this.validateChallengeTdx(certsPem);
|
|
69
|
-
break;
|
|
70
|
-
default:
|
|
71
|
-
throw new Error(`Challenge type ${challengeType || `[none]`} is missing or not allowed!`);
|
|
55
|
+
catch (err) {
|
|
56
|
+
return {
|
|
57
|
+
isValid: false,
|
|
58
|
+
errorCode: ValidateTeeCertChainErrorCode.CHALLENGE_IS_INVALID,
|
|
59
|
+
errorMessage: `Challenge is not valid! (${err.message})`,
|
|
60
|
+
};
|
|
72
61
|
}
|
|
62
|
+
return { isValid: true };
|
|
73
63
|
}
|
|
74
|
-
validateChallengeSgx(certPem) {
|
|
75
|
-
const mrSignerBinaryString =
|
|
64
|
+
static validateChallengeSgx(certPem) {
|
|
65
|
+
const mrSignerBinaryString = CertificatesHelper.getExtensionValue(certPem, OID_CUSTOM_EXTENSION_CHALLENGE_COMMON_ID);
|
|
76
66
|
if (!mrSignerBinaryString) {
|
|
77
67
|
throw new Error(`SGX challenge signature is wrong!`);
|
|
78
68
|
}
|
|
79
69
|
try {
|
|
80
|
-
TeeSignatureVerifier.validateSignatureSgx(
|
|
70
|
+
TeeSignatureVerifier.validateSignatureSgx(mrSignerBinaryString);
|
|
81
71
|
}
|
|
82
72
|
catch (err) {
|
|
83
73
|
throw new Error(`SGX challenge signature is wrong!`);
|
|
84
74
|
}
|
|
85
75
|
}
|
|
86
|
-
async
|
|
87
|
-
const mrEnclaveBinaryString =
|
|
76
|
+
static async validateChallengeTdxAndSnp(certPem) {
|
|
77
|
+
const mrEnclaveBinaryString = CertificatesHelper.getExtensionValue(certPem, OID_CUSTOM_EXTENSION_CHALLENGE_ID);
|
|
88
78
|
if (!mrEnclaveBinaryString) {
|
|
89
79
|
throw new Error(`Challenge id is missing in certificate!`);
|
|
90
80
|
}
|
|
91
81
|
try {
|
|
92
|
-
await TeeSignatureVerifier.
|
|
82
|
+
await TeeSignatureVerifier.validateSignatureTdxAndSnp(mrEnclaveBinaryString);
|
|
93
83
|
}
|
|
94
84
|
catch (err) {
|
|
95
85
|
const message = `Tdx signature is invalid!`;
|
|
@@ -100,4 +90,4 @@ export class TeeCertificateService {
|
|
|
100
90
|
}
|
|
101
91
|
}
|
|
102
92
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQ2VydGlmaWNhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlZS9UZWVDZXJ0aWZpY2F0ZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGFBQWEsRUFDYix3Q0FBd0MsRUFDeEMsaUNBQWlDLEVBQ2pDLG1DQUFtQyxHQUNwQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5RCxNQUFNLENBQU4sSUFBWSw2QkFJWDtBQUpELFdBQVksNkJBQTZCO0lBQ3ZDLGdGQUErQyxDQUFBO0lBQy9DLGdGQUErQyxDQUFBO0lBQy9DLDhFQUE2QyxDQUFBO0FBQy9DLENBQUMsRUFKVyw2QkFBNkIsS0FBN0IsNkJBQTZCLFFBSXhDO0FBT0QsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLFFBQWdCO1FBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0scUJBQXFCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBZ0I7UUFDaEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxNQUFNLGtCQUFrQixDQUFDLGlCQUFpQixDQUMxRSxR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
|
|
@@ -12,12 +12,12 @@ export declare class TeeSignatureVerifier {
|
|
|
12
12
|
*/
|
|
13
13
|
static validateSignatureSgx(mrSigner: BinaryType): void;
|
|
14
14
|
/**
|
|
15
|
-
* Validates TDX TEE signature by verifying the MRENCLAVE
|
|
15
|
+
* Validates TDX and SEV-SNP TEE signature by verifying the MRENCLAVE
|
|
16
16
|
* @param mrEnclave - Binary measurement of the TEE environment to verify
|
|
17
17
|
* @param options - Configuration for signature validation
|
|
18
18
|
* @param options.getMrEnclaveSignature - Function to retrieve signature for verification (defaults to TeeSignatureVerifier.getSignature)
|
|
19
19
|
* @throws Error If signature validation fails or signature cannot be retrieved
|
|
20
20
|
*/
|
|
21
|
-
static
|
|
21
|
+
static validateSignatureTdxAndSnp(mrEnclave: BinaryType, options?: CheckSignatureOptions): Promise<void>;
|
|
22
22
|
static getSignature(mrEnclave: Buffer, options?: GetTdxSignatureOptions): Promise<Buffer>;
|
|
23
23
|
}
|
|
@@ -15,13 +15,13 @@ export class TeeSignatureVerifier {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
|
-
* Validates TDX TEE signature by verifying the MRENCLAVE
|
|
18
|
+
* Validates TDX and SEV-SNP TEE signature by verifying the MRENCLAVE
|
|
19
19
|
* @param mrEnclave - Binary measurement of the TEE environment to verify
|
|
20
20
|
* @param options - Configuration for signature validation
|
|
21
21
|
* @param options.getMrEnclaveSignature - Function to retrieve signature for verification (defaults to TeeSignatureVerifier.getSignature)
|
|
22
22
|
* @throws Error If signature validation fails or signature cannot be retrieved
|
|
23
23
|
*/
|
|
24
|
-
static async
|
|
24
|
+
static async validateSignatureTdxAndSnp(mrEnclave, options = { getMrEnclaveSignature: TeeSignatureVerifier.getSignature }) {
|
|
25
25
|
const { getMrEnclaveSignature } = options;
|
|
26
26
|
const cert = forge.pki.certificateFromPem(TEE_LOADER_TRUSTED_CERTIFICATE);
|
|
27
27
|
const isCertValid = forge.pki.verifyCertificateChain(forge.pki.createCaStore([cert]), [cert]);
|
|
@@ -81,4 +81,4 @@ export class TeeSignatureVerifier {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlU2lnbmF0dXJlVmVyaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1RlZVNpZ25hdHVyZVZlcmlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBd0IsTUFBTSxPQUFPLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPNUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQW9CO1FBQzlDLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxNQUFNLElBQUkscUJBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQ3JDLFNBQXFCLEVBQ3JCLFVBQWlDLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLENBQUMsWUFBWSxFQUFFO1FBRTdGLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDMUUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUs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
|
|
@@ -16,6 +16,7 @@ export type OrderUsage = OrderUsageBase & {
|
|
|
16
16
|
optionsCount: number[];
|
|
17
17
|
slotInfo: SlotInfo;
|
|
18
18
|
slotUsage: SlotUsage;
|
|
19
|
+
slotId: BlockchainId;
|
|
19
20
|
};
|
|
20
21
|
export type OrderUsageRaw = OrderUsageBase & {
|
|
21
22
|
slotCount: number;
|
|
@@ -23,4 +24,5 @@ export type OrderUsageRaw = OrderUsageBase & {
|
|
|
23
24
|
optionUsage: SlotUsage[];
|
|
24
25
|
optionIds: BlockchainId[];
|
|
25
26
|
optionsCount: number[];
|
|
27
|
+
slotId: BlockchainId;
|
|
26
28
|
};
|
|
@@ -11,14 +11,16 @@ export declare class Web3TransactionRevertedByEvmError extends Web3TransactionEr
|
|
|
11
11
|
}
|
|
12
12
|
declare class TxManager {
|
|
13
13
|
private static web3;
|
|
14
|
+
private static externalTransactionSigner;
|
|
14
15
|
private static logger;
|
|
15
16
|
private static nonceTrackers;
|
|
16
17
|
private static queues;
|
|
17
|
-
static init(web3: Web3): void;
|
|
18
|
+
static init(web3: Web3, externalTransactionSigner?: boolean): void;
|
|
18
19
|
private static checkIfInitialized;
|
|
19
20
|
static initAccount(address: string): Promise<void>;
|
|
20
21
|
static execute(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions, to?: string): Promise<TransactionReceipt>;
|
|
21
22
|
static publishTransaction(txData: TransactionDataOptions, transactionOptions?: TransactionOptions, transactionCall?: NonPayableMethodObject): Promise<TransactionReceipt>;
|
|
23
|
+
private static _requestUnsignedTransaction;
|
|
22
24
|
static dryRun<SpecialOutput = unknown>(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions): Promise<SpecialOutput>;
|
|
23
25
|
private static _publishTransaction;
|
|
24
26
|
}
|
|
@@ -3,9 +3,10 @@ import rootLogger from '../logger.js';
|
|
|
3
3
|
import store from '../store.js';
|
|
4
4
|
import { checkForUsingExternalTxManager, checkIfActionAccountInitialized, createTransactionOptions, multiplyBigIntByNumber, } from './helper.js';
|
|
5
5
|
import Superpro from '../staticModels/Superpro.js';
|
|
6
|
-
import {
|
|
6
|
+
import { BLOCKCHAIN_CALL_RETRY_ATTEMPTS, BLOCKCHAIN_CALL_RETRY_INTERVAL } from '../constants.js';
|
|
7
7
|
import lodash from 'lodash';
|
|
8
8
|
import Bottleneck from 'bottleneck';
|
|
9
|
+
import { tryWithInterval } from './helpers/tryWithInterval.js';
|
|
9
10
|
class Web3TransactionError extends Error {
|
|
10
11
|
originalError;
|
|
11
12
|
constructor(originalError, message) {
|
|
@@ -22,11 +23,13 @@ export class Web3TransactionRevertedByEvmError extends Web3TransactionError {
|
|
|
22
23
|
}
|
|
23
24
|
class TxManager {
|
|
24
25
|
static web3;
|
|
26
|
+
static externalTransactionSigner;
|
|
25
27
|
static logger = rootLogger.child({ className: 'TxManager' });
|
|
26
28
|
static nonceTrackers = {};
|
|
27
29
|
static queues = {};
|
|
28
|
-
static init(web3) {
|
|
30
|
+
static init(web3, externalTransactionSigner = false) {
|
|
29
31
|
this.web3 = web3;
|
|
32
|
+
this.externalTransactionSigner = externalTransactionSigner;
|
|
30
33
|
}
|
|
31
34
|
static checkIfInitialized() {
|
|
32
35
|
if (!this.web3) {
|
|
@@ -49,7 +52,9 @@ class TxManager {
|
|
|
49
52
|
static async publishTransaction(txData, transactionOptions, transactionCall) {
|
|
50
53
|
this.checkIfInitialized();
|
|
51
54
|
checkIfActionAccountInitialized(transactionOptions);
|
|
52
|
-
const txOptions = await createTransactionOptions({
|
|
55
|
+
const txOptions = await createTransactionOptions(this.externalTransactionSigner, {
|
|
56
|
+
...transactionOptions,
|
|
57
|
+
});
|
|
53
58
|
if (!txOptions.from) {
|
|
54
59
|
throw Error('From account is undefined. You should pass it to transactionOptions or init action account.');
|
|
55
60
|
}
|
|
@@ -64,7 +69,39 @@ class TxManager {
|
|
|
64
69
|
minTime: store.txIntervalMs,
|
|
65
70
|
});
|
|
66
71
|
}
|
|
67
|
-
|
|
72
|
+
let transactionResultData;
|
|
73
|
+
if (this.externalTransactionSigner) {
|
|
74
|
+
transactionResultData = this.queues[publishTxOptions.from].schedule(() => TxManager._requestUnsignedTransaction(txData, publishTxOptions));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
transactionResultData = this.queues[publishTxOptions.from].schedule(() => TxManager._publishTransaction(txData, publishTxOptions, transactionCall));
|
|
78
|
+
}
|
|
79
|
+
return transactionResultData;
|
|
80
|
+
}
|
|
81
|
+
static async _requestUnsignedTransaction(txData, transactionOptions) {
|
|
82
|
+
const { from, web3 } = transactionOptions;
|
|
83
|
+
const txDataForUnsignedTx = {
|
|
84
|
+
from: from,
|
|
85
|
+
to: txData.to,
|
|
86
|
+
data: txData.data,
|
|
87
|
+
value: txData.value,
|
|
88
|
+
};
|
|
89
|
+
TxManager.logger.debug({
|
|
90
|
+
txData: lodash.omit(txDataForUnsignedTx, ['data']),
|
|
91
|
+
}, 'Publishing unsigned transaction');
|
|
92
|
+
const txHash = (await web3.provider.request({
|
|
93
|
+
method: 'eth_sendTransaction',
|
|
94
|
+
params: [txDataForUnsignedTx],
|
|
95
|
+
}));
|
|
96
|
+
const transactionResultData = await tryWithInterval({
|
|
97
|
+
handler: async () => await web3.eth.getTransactionReceipt(txHash),
|
|
98
|
+
checkResult: (txHash) => {
|
|
99
|
+
return { isResultOk: txHash !== null };
|
|
100
|
+
},
|
|
101
|
+
retryInterval: BLOCKCHAIN_CALL_RETRY_INTERVAL,
|
|
102
|
+
retryMax: BLOCKCHAIN_CALL_RETRY_ATTEMPTS,
|
|
103
|
+
});
|
|
104
|
+
return transactionResultData;
|
|
68
105
|
}
|
|
69
106
|
static async dryRun(transaction, transactionOptions) {
|
|
70
107
|
const from = transactionOptions?.from ?? store.actionAccount;
|
|
@@ -85,36 +122,25 @@ class TxManager {
|
|
|
85
122
|
maxPriorityFeePerGas,
|
|
86
123
|
maxFeePerGas,
|
|
87
124
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
catch (e) {
|
|
94
|
-
TxManager.logger.debug({ error: e }, 'Fail to calculate estimated gas');
|
|
95
|
-
estimatedGas = defaultGasLimit;
|
|
96
|
-
}
|
|
125
|
+
if (transactionOptions.gas) {
|
|
126
|
+
TxManager.logger.warn({
|
|
127
|
+
specifiedGas: transactionOptions.gas,
|
|
128
|
+
}, 'Gas overriding');
|
|
129
|
+
txData.gas = transactionOptions.gas;
|
|
97
130
|
}
|
|
98
131
|
else {
|
|
99
|
-
|
|
100
|
-
|
|
132
|
+
let estimatedGas;
|
|
133
|
+
const txDataForEstimate = {
|
|
134
|
+
...txData,
|
|
135
|
+
gas: undefined,
|
|
136
|
+
};
|
|
137
|
+
if (transactionCall) {
|
|
138
|
+
estimatedGas = await transactionCall.estimateGas(txDataForEstimate);
|
|
101
139
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
estimatedGas = defaultGasLimit;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
txData.gas = multiplyBigIntByNumber(estimatedGas, store.gasLimitMultiplier);
|
|
108
|
-
// defaultGasLimit is max gas limit
|
|
109
|
-
txData.gas = txData.gas < defaultGasLimit ? txData.gas : defaultGasLimit;
|
|
110
|
-
if (transactionOptions.gas) {
|
|
111
|
-
if (transactionOptions.gas < estimatedGas) {
|
|
112
|
-
TxManager.logger.warn({
|
|
113
|
-
estimated: estimatedGas,
|
|
114
|
-
specified: transactionOptions.gas,
|
|
115
|
-
}, 'Overriding gas is lower than estimated');
|
|
140
|
+
else {
|
|
141
|
+
estimatedGas = await store.web3Https.eth.estimateGas(txDataForEstimate);
|
|
116
142
|
}
|
|
117
|
-
txData.gas =
|
|
143
|
+
txData.gas = multiplyBigIntByNumber(estimatedGas, store.gasLimitMultiplier);
|
|
118
144
|
}
|
|
119
145
|
let nonceTracker;
|
|
120
146
|
// TODO: Consider a better way to organize different strategies for publishing transactions.
|
|
@@ -167,4 +193,4 @@ class TxManager {
|
|
|
167
193
|
}
|
|
168
194
|
}
|
|
169
195
|
export default TxManager;
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBUWhDLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxRQUFRLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRL0QsTUFBTSxvQkFBcUIsU0FBUSxLQUFLO0lBQ3RCLGFBQWEsQ0FBVTtJQUN2QyxZQUFZLGFBQXNCLEVBQUUsT0FBZTtRQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUlELE1BQU0sU0FBUztJQUNMLE1BQU0sQ0FBQyxJQUFJLENBQU87SUFDbEIsTUFBTSxDQUFDLHlCQUF5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
|
|
@@ -2,7 +2,7 @@ import { TransactionOptions } from '../types/Web3.js';
|
|
|
2
2
|
import Web3 from 'web3';
|
|
3
3
|
import { Web3BatchRequest } from 'web3-core';
|
|
4
4
|
import { SlotInfo } from '../types/SlotInfo.js';
|
|
5
|
-
import { ConsensusBenchmarkStorage,
|
|
5
|
+
import { ConsensusBenchmarkStorage, LoaderSecretAccessPublicKey, LoaderSession, OfferResource, OfferStorageAllocated, OfferStorageRequest, OptionInfo, OptionInfoRaw, OrderUsage, OrderUsageRaw, SecretRequest, SlotUsage, TcbPublicData, TeeOfferOption, TeeOfferOptionRaw, TeeOfferSlot, ValueOfferSlot, ValueOfferSlotRaw, ConsensusBenchmarkPriceMultipliers } from '../types/index.js';
|
|
6
6
|
import { BenchmarkInfo, ConsensusBenchmark } from '@super-protocol/dto-js';
|
|
7
7
|
/**
|
|
8
8
|
* Function for checking if provider action account initialized (required for set methods)
|
|
@@ -20,14 +20,14 @@ export declare const multiplyBigIntByNumber: (big: bigint, num: number) => bigin
|
|
|
20
20
|
* Merge transaction options from arguments and from store
|
|
21
21
|
* Used in all set methods
|
|
22
22
|
*/
|
|
23
|
-
export declare const createTransactionOptions: (options?: TransactionOptions) => Promise<TransactionOptions>;
|
|
23
|
+
export declare const createTransactionOptions: (externalTransactionSigner: boolean, options?: TransactionOptions) => Promise<TransactionOptions>;
|
|
24
24
|
export declare const isNodeJS: () => boolean;
|
|
25
25
|
export declare function incrementMethodCall(): (_target: unknown, propertyName: string, propertyDescriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
26
26
|
export declare function packDeviceId(hexedDeviceId: string): string;
|
|
27
27
|
export declare function unpackDeviceId(bytes32: string): string;
|
|
28
28
|
export declare function convertBigIntToString(obj: any): any;
|
|
29
29
|
export declare function convertTeeOfferOptionFromRaw(option: TeeOfferOptionRaw): TeeOfferOption;
|
|
30
|
-
export declare function
|
|
30
|
+
export declare function convertLoaderSecretAccessPublicKeyFromRaw(loaderSecretAccessPublicKeyRaw: LoaderSecretAccessPublicKey): LoaderSecretAccessPublicKey;
|
|
31
31
|
export declare function convertLoaderSessionFromRaw(loaderSessionRaw: LoaderSession): LoaderSession;
|
|
32
32
|
export declare function convertOfferResourceFromRaw(offerResourceRaw: OfferResource): OfferResource;
|
|
33
33
|
export declare function convertSecretRequestFromRaw(secretRequestRaw: SecretRequest): SecretRequest;
|