@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,101 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TeeCertificateService = void 0;
|
|
7
|
-
const node_forge_1 = __importDefault(require("node-forge"));
|
|
8
|
-
const QuoteParser_js_1 = require("./QuoteParser.js");
|
|
9
|
-
const QuoteValidator_js_1 = require("./QuoteValidator.js");
|
|
3
|
+
exports.TeeCertificateService = exports.ValidateTeeCertChainErrorCode = void 0;
|
|
10
4
|
const constants_js_1 = require("../constants.js");
|
|
11
5
|
const pki_common_1 = require("@super-protocol/pki-common");
|
|
12
6
|
const TeeSignatureVerifier_js_1 = require("./TeeSignatureVerifier.js");
|
|
13
7
|
const errors_js_1 = require("./errors.js");
|
|
8
|
+
const index_js_1 = require("../certificates/index.js");
|
|
9
|
+
var ValidateTeeCertChainErrorCode;
|
|
10
|
+
(function (ValidateTeeCertChainErrorCode) {
|
|
11
|
+
ValidateTeeCertChainErrorCode["CERT_CHAIN_IS_INVALID"] = "CERT_CHAIN_IS_INVALID";
|
|
12
|
+
ValidateTeeCertChainErrorCode["NOT_ALLOWED_CHALLENGE"] = "NOT_ALLOWED_CHALLENGE";
|
|
13
|
+
ValidateTeeCertChainErrorCode["CHALLENGE_IS_INVALID"] = "CHALLENGE_IS_INVALID";
|
|
14
|
+
})(ValidateTeeCertChainErrorCode || (exports.ValidateTeeCertChainErrorCode = ValidateTeeCertChainErrorCode = {}));
|
|
14
15
|
class TeeCertificateService {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return Buffer.from(publicKeyDer, 'binary');
|
|
21
|
-
}
|
|
22
|
-
async parseAndValidateCertificate(certificatePem, sgxApiUrl) {
|
|
23
|
-
const pem = Buffer.isBuffer(certificatePem) ? certificatePem.toString() : certificatePem;
|
|
24
|
-
const certificate = node_forge_1.default.pki.certificateFromPem(pem);
|
|
25
|
-
const extensions = certificate.extensions;
|
|
26
|
-
const quote = extensions.find((ext) => ext.id === this.certOidQuote);
|
|
27
|
-
const quoteBuffer = Buffer.from(quote.value, 'binary');
|
|
28
|
-
const validator = new QuoteValidator_js_1.QuoteValidator(sgxApiUrl);
|
|
29
|
-
await validator.checkQuote(quoteBuffer, this.getCertificatePublicKey(certificate));
|
|
30
|
-
const parser = new QuoteParser_js_1.TeeSgxParser();
|
|
31
|
-
const parsedQuote = parser.parseQuote(quoteBuffer);
|
|
32
|
-
const report = parser.parseReport(parsedQuote.report);
|
|
33
|
-
return {
|
|
34
|
-
userData: Buffer.from(parsedQuote.header.userData),
|
|
35
|
-
mrEnclave: Buffer.from(report.mrEnclave),
|
|
36
|
-
mrSigner: Buffer.from(report.mrSigner),
|
|
37
|
-
dataHash: Buffer.from(report.dataHash),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
fromRawToPem(data) {
|
|
41
|
-
const base64 = Buffer.from(data).toString('base64');
|
|
42
|
-
return `-----BEGIN CERTIFICATE-----\n${base64.match(/.{1,64}/g).join('\n')}\n-----END CERTIFICATE-----`;
|
|
43
|
-
}
|
|
44
|
-
splitPemCerts(certs) {
|
|
45
|
-
const pemRegex = /(-----BEGIN CERTIFICATE-----[\s\S]*?-----END CERTIFICATE-----)/g;
|
|
46
|
-
return certs.match(pemRegex) || [];
|
|
16
|
+
static async validateTeeCertChainOrFail(certsPem) {
|
|
17
|
+
const result = await TeeCertificateService.validateTeeCertChain(certsPem);
|
|
18
|
+
if (!result.isValid) {
|
|
19
|
+
throw new Error(result.errorMessage);
|
|
20
|
+
}
|
|
47
21
|
}
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
22
|
+
static async validateTeeCertChain(certsPem) {
|
|
23
|
+
const { isValid, errorMessage } = await index_js_1.CertificatesHelper.validateCertChain(certsPem, constants_js_1.SUPERPROTOCOL_CA);
|
|
24
|
+
if (!isValid) {
|
|
25
|
+
return {
|
|
26
|
+
isValid: false,
|
|
27
|
+
errorCode: ValidateTeeCertChainErrorCode.CERT_CHAIN_IS_INVALID,
|
|
28
|
+
errorMessage: `Cert chain is invalid! (${errorMessage})`,
|
|
29
|
+
};
|
|
53
30
|
}
|
|
54
|
-
|
|
55
|
-
|
|
31
|
+
const sortedCerts = index_js_1.CertificatesHelper.sortCertsFromLeafToRoot(certsPem);
|
|
32
|
+
const challenges = sortedCerts.map((cert) => index_js_1.CertificatesHelper.getExtensionValue(cert, pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_TYPE)?.toString('binary'));
|
|
33
|
+
if (challenges.some((challenge) => !challenge || challenge === pki_common_1.ChallengeType.Untrusted)) {
|
|
34
|
+
return {
|
|
35
|
+
isValid: false,
|
|
36
|
+
errorCode: ValidateTeeCertChainErrorCode.NOT_ALLOWED_CHALLENGE,
|
|
37
|
+
errorMessage: `Cert chain has cert without or Untrusted challenge`,
|
|
38
|
+
};
|
|
56
39
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
40
|
+
const leafCertChallengeType = challenges[0];
|
|
41
|
+
try {
|
|
42
|
+
switch (leafCertChallengeType) {
|
|
43
|
+
case pki_common_1.ChallengeType.SGXDCAP:
|
|
44
|
+
TeeCertificateService.validateChallengeSgx(certsPem);
|
|
45
|
+
break;
|
|
46
|
+
case pki_common_1.ChallengeType.TDX:
|
|
47
|
+
case pki_common_1.ChallengeType.AMDSEV:
|
|
48
|
+
await TeeCertificateService.validateChallengeTdxAndSnp(certsPem);
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
return {
|
|
52
|
+
isValid: false,
|
|
53
|
+
errorCode: ValidateTeeCertChainErrorCode.NOT_ALLOWED_CHALLENGE,
|
|
54
|
+
errorMessage: `Challenge type ${leafCertChallengeType || `[none]`} is missing or not allowed!`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
67
57
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
await this.validateChallengeTdx(certsPem);
|
|
75
|
-
break;
|
|
76
|
-
default:
|
|
77
|
-
throw new Error(`Challenge type ${challengeType || `[none]`} is missing or not allowed!`);
|
|
58
|
+
catch (err) {
|
|
59
|
+
return {
|
|
60
|
+
isValid: false,
|
|
61
|
+
errorCode: ValidateTeeCertChainErrorCode.CHALLENGE_IS_INVALID,
|
|
62
|
+
errorMessage: `Challenge is not valid! (${err.message})`,
|
|
63
|
+
};
|
|
78
64
|
}
|
|
65
|
+
return { isValid: true };
|
|
79
66
|
}
|
|
80
|
-
validateChallengeSgx(certPem) {
|
|
81
|
-
const mrSignerBinaryString =
|
|
67
|
+
static validateChallengeSgx(certPem) {
|
|
68
|
+
const mrSignerBinaryString = index_js_1.CertificatesHelper.getExtensionValue(certPem, pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_COMMON_ID);
|
|
82
69
|
if (!mrSignerBinaryString) {
|
|
83
70
|
throw new Error(`SGX challenge signature is wrong!`);
|
|
84
71
|
}
|
|
85
72
|
try {
|
|
86
|
-
TeeSignatureVerifier_js_1.TeeSignatureVerifier.validateSignatureSgx(
|
|
73
|
+
TeeSignatureVerifier_js_1.TeeSignatureVerifier.validateSignatureSgx(mrSignerBinaryString);
|
|
87
74
|
}
|
|
88
75
|
catch (err) {
|
|
89
76
|
throw new Error(`SGX challenge signature is wrong!`);
|
|
90
77
|
}
|
|
91
78
|
}
|
|
92
|
-
async
|
|
93
|
-
const mrEnclaveBinaryString =
|
|
79
|
+
static async validateChallengeTdxAndSnp(certPem) {
|
|
80
|
+
const mrEnclaveBinaryString = index_js_1.CertificatesHelper.getExtensionValue(certPem, pki_common_1.OID_CUSTOM_EXTENSION_CHALLENGE_ID);
|
|
94
81
|
if (!mrEnclaveBinaryString) {
|
|
95
82
|
throw new Error(`Challenge id is missing in certificate!`);
|
|
96
83
|
}
|
|
97
84
|
try {
|
|
98
|
-
await TeeSignatureVerifier_js_1.TeeSignatureVerifier.
|
|
85
|
+
await TeeSignatureVerifier_js_1.TeeSignatureVerifier.validateSignatureTdxAndSnp(mrEnclaveBinaryString);
|
|
99
86
|
}
|
|
100
87
|
catch (err) {
|
|
101
88
|
const message = `Tdx signature is invalid!`;
|
|
@@ -107,4 +94,4 @@ class TeeCertificateService {
|
|
|
107
94
|
}
|
|
108
95
|
}
|
|
109
96
|
exports.TeeCertificateService = TeeCertificateService;
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQ2VydGlmaWNhdGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlZS9UZWVDZXJ0aWZpY2F0ZVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQW1EO0FBQ25ELDJEQUtvQztBQUNwQyx1RUFBaUU7QUFDakUsMkNBQW9EO0FBQ3BELHVEQUE4RDtBQUU5RCxJQUFZLDZCQUlYO0FBSkQsV0FBWSw2QkFBNkI7SUFDdkMsZ0ZBQStDLENBQUE7SUFDL0MsZ0ZBQStDLENBQUE7SUFDL0MsOEVBQTZDLENBQUE7QUFDL0MsQ0FBQyxFQUpXLDZCQUE2Qiw2Q0FBN0IsNkJBQTZCLFFBSXhDO0FBT0QsTUFBYSxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxRQUFnQjtRQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFFBQWdCO1FBQ2hELE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSw2QkFBa0IsQ0FBQyxpQkFBaUIsQ0FDMUUsUUFBUSxFQUNSLCtCQUFnQixDQUNqQixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxTQUFTLEVBQUUsNkJBQTZCLENBQUMscUJBQXFCO2dCQUM5RCxZQUFZLEVBQUUsMkJBQTJCLFlBQVksR0FBRzthQUN6RCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLDZCQUFrQixD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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
|
}
|
|
@@ -21,13 +21,13 @@ class TeeSignatureVerifier {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Validates TDX TEE signature by verifying the MRENCLAVE
|
|
24
|
+
* Validates TDX and SEV-SNP TEE signature by verifying the MRENCLAVE
|
|
25
25
|
* @param mrEnclave - Binary measurement of the TEE environment to verify
|
|
26
26
|
* @param options - Configuration for signature validation
|
|
27
27
|
* @param options.getMrEnclaveSignature - Function to retrieve signature for verification (defaults to TeeSignatureVerifier.getSignature)
|
|
28
28
|
* @throws Error If signature validation fails or signature cannot be retrieved
|
|
29
29
|
*/
|
|
30
|
-
static async
|
|
30
|
+
static async validateSignatureTdxAndSnp(mrEnclave, options = { getMrEnclaveSignature: TeeSignatureVerifier.getSignature }) {
|
|
31
31
|
const { getMrEnclaveSignature } = options;
|
|
32
32
|
const cert = node_forge_1.default.pki.certificateFromPem(constants_js_1.TEE_LOADER_TRUSTED_CERTIFICATE);
|
|
33
33
|
const isCertValid = node_forge_1.default.pki.verifyCertificateChain(node_forge_1.default.pki.createCaStore([cert]), [cert]);
|
|
@@ -88,4 +88,4 @@ class TeeSignatureVerifier {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
exports.TeeSignatureVerifier = TeeSignatureVerifier;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlU2lnbmF0dXJlVmVyaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1RlZVNpZ25hdHVyZVZlcmlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUE2QztBQUM3Qyw0REFBK0I7QUFDL0Isa0RBQThGO0FBQzlGLDBDQUFvRDtBQUVwRCx3REFBNEQ7QUFPNUQsTUFBYSxvQkFBb0I7SUFDL0I7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFvQjtRQUM5QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssMENBQTJCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUNyQyxTQUFxQixFQUNyQixVQUFpQyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixDQUFDLFlBQVksRUFBRTtRQUU3RixNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDMUMsTUFBTSxJQUFJLEdBQUcsb0JBQUssQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsNkNBQThCLENBQUMsQ0FBQztRQUMxRSxNQUFNLFdBQVcsR0FBRyxvQkFBSyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENB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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
|
}
|
|
@@ -12,6 +12,7 @@ const Superpro_js_1 = __importDefault(require("../staticModels/Superpro.js"));
|
|
|
12
12
|
const constants_js_1 = require("../constants.js");
|
|
13
13
|
const lodash_1 = __importDefault(require("lodash"));
|
|
14
14
|
const bottleneck_1 = __importDefault(require("bottleneck"));
|
|
15
|
+
const tryWithInterval_js_1 = require("./helpers/tryWithInterval.js");
|
|
15
16
|
class Web3TransactionError extends Error {
|
|
16
17
|
originalError;
|
|
17
18
|
constructor(originalError, message) {
|
|
@@ -29,11 +30,13 @@ class Web3TransactionRevertedByEvmError extends Web3TransactionError {
|
|
|
29
30
|
exports.Web3TransactionRevertedByEvmError = Web3TransactionRevertedByEvmError;
|
|
30
31
|
class TxManager {
|
|
31
32
|
static web3;
|
|
33
|
+
static externalTransactionSigner;
|
|
32
34
|
static logger = logger_js_1.default.child({ className: 'TxManager' });
|
|
33
35
|
static nonceTrackers = {};
|
|
34
36
|
static queues = {};
|
|
35
|
-
static init(web3) {
|
|
37
|
+
static init(web3, externalTransactionSigner = false) {
|
|
36
38
|
this.web3 = web3;
|
|
39
|
+
this.externalTransactionSigner = externalTransactionSigner;
|
|
37
40
|
}
|
|
38
41
|
static checkIfInitialized() {
|
|
39
42
|
if (!this.web3) {
|
|
@@ -56,7 +59,9 @@ class TxManager {
|
|
|
56
59
|
static async publishTransaction(txData, transactionOptions, transactionCall) {
|
|
57
60
|
this.checkIfInitialized();
|
|
58
61
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
59
|
-
const txOptions = await (0, helper_js_1.createTransactionOptions)({
|
|
62
|
+
const txOptions = await (0, helper_js_1.createTransactionOptions)(this.externalTransactionSigner, {
|
|
63
|
+
...transactionOptions,
|
|
64
|
+
});
|
|
60
65
|
if (!txOptions.from) {
|
|
61
66
|
throw Error('From account is undefined. You should pass it to transactionOptions or init action account.');
|
|
62
67
|
}
|
|
@@ -71,7 +76,39 @@ class TxManager {
|
|
|
71
76
|
minTime: store_js_1.default.txIntervalMs,
|
|
72
77
|
});
|
|
73
78
|
}
|
|
74
|
-
|
|
79
|
+
let transactionResultData;
|
|
80
|
+
if (this.externalTransactionSigner) {
|
|
81
|
+
transactionResultData = this.queues[publishTxOptions.from].schedule(() => TxManager._requestUnsignedTransaction(txData, publishTxOptions));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
transactionResultData = this.queues[publishTxOptions.from].schedule(() => TxManager._publishTransaction(txData, publishTxOptions, transactionCall));
|
|
85
|
+
}
|
|
86
|
+
return transactionResultData;
|
|
87
|
+
}
|
|
88
|
+
static async _requestUnsignedTransaction(txData, transactionOptions) {
|
|
89
|
+
const { from, web3 } = transactionOptions;
|
|
90
|
+
const txDataForUnsignedTx = {
|
|
91
|
+
from: from,
|
|
92
|
+
to: txData.to,
|
|
93
|
+
data: txData.data,
|
|
94
|
+
value: txData.value,
|
|
95
|
+
};
|
|
96
|
+
TxManager.logger.debug({
|
|
97
|
+
txData: lodash_1.default.omit(txDataForUnsignedTx, ['data']),
|
|
98
|
+
}, 'Publishing unsigned transaction');
|
|
99
|
+
const txHash = (await web3.provider.request({
|
|
100
|
+
method: 'eth_sendTransaction',
|
|
101
|
+
params: [txDataForUnsignedTx],
|
|
102
|
+
}));
|
|
103
|
+
const transactionResultData = await (0, tryWithInterval_js_1.tryWithInterval)({
|
|
104
|
+
handler: async () => await web3.eth.getTransactionReceipt(txHash),
|
|
105
|
+
checkResult: (txHash) => {
|
|
106
|
+
return { isResultOk: txHash !== null };
|
|
107
|
+
},
|
|
108
|
+
retryInterval: constants_js_1.BLOCKCHAIN_CALL_RETRY_INTERVAL,
|
|
109
|
+
retryMax: constants_js_1.BLOCKCHAIN_CALL_RETRY_ATTEMPTS,
|
|
110
|
+
});
|
|
111
|
+
return transactionResultData;
|
|
75
112
|
}
|
|
76
113
|
static async dryRun(transaction, transactionOptions) {
|
|
77
114
|
const from = transactionOptions?.from ?? store_js_1.default.actionAccount;
|
|
@@ -92,36 +129,25 @@ class TxManager {
|
|
|
92
129
|
maxPriorityFeePerGas,
|
|
93
130
|
maxFeePerGas,
|
|
94
131
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
catch (e) {
|
|
101
|
-
TxManager.logger.debug({ error: e }, 'Fail to calculate estimated gas');
|
|
102
|
-
estimatedGas = constants_js_1.defaultGasLimit;
|
|
103
|
-
}
|
|
132
|
+
if (transactionOptions.gas) {
|
|
133
|
+
TxManager.logger.warn({
|
|
134
|
+
specifiedGas: transactionOptions.gas,
|
|
135
|
+
}, 'Gas overriding');
|
|
136
|
+
txData.gas = transactionOptions.gas;
|
|
104
137
|
}
|
|
105
138
|
else {
|
|
106
|
-
|
|
107
|
-
|
|
139
|
+
let estimatedGas;
|
|
140
|
+
const txDataForEstimate = {
|
|
141
|
+
...txData,
|
|
142
|
+
gas: undefined,
|
|
143
|
+
};
|
|
144
|
+
if (transactionCall) {
|
|
145
|
+
estimatedGas = await transactionCall.estimateGas(txDataForEstimate);
|
|
108
146
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
estimatedGas = constants_js_1.defaultGasLimit;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
txData.gas = (0, helper_js_1.multiplyBigIntByNumber)(estimatedGas, store_js_1.default.gasLimitMultiplier);
|
|
115
|
-
// defaultGasLimit is max gas limit
|
|
116
|
-
txData.gas = txData.gas < constants_js_1.defaultGasLimit ? txData.gas : constants_js_1.defaultGasLimit;
|
|
117
|
-
if (transactionOptions.gas) {
|
|
118
|
-
if (transactionOptions.gas < estimatedGas) {
|
|
119
|
-
TxManager.logger.warn({
|
|
120
|
-
estimated: estimatedGas,
|
|
121
|
-
specified: transactionOptions.gas,
|
|
122
|
-
}, 'Overriding gas is lower than estimated');
|
|
147
|
+
else {
|
|
148
|
+
estimatedGas = await store_js_1.default.web3Https.eth.estimateGas(txDataForEstimate);
|
|
123
149
|
}
|
|
124
|
-
txData.gas =
|
|
150
|
+
txData.gas = (0, helper_js_1.multiplyBigIntByNumber)(estimatedGas, store_js_1.default.gasLimitMultiplier);
|
|
125
151
|
}
|
|
126
152
|
let nonceTracker;
|
|
127
153
|
// TODO: Consider a better way to organize different strategies for publishing transactions.
|
|
@@ -174,4 +200,4 @@ class TxManager {
|
|
|
174
200
|
}
|
|
175
201
|
}
|
|
176
202
|
exports.default = TxManager;
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3RUFBNkM7QUFDN0MsNkRBQXNDO0FBQ3RDLDJEQUFnQztBQVFoQywyQ0FLcUI7QUFDckIsOEVBQW1EO0FBQ25ELGtEQUFpRztBQUNqRyxvREFBNEI7QUFFNUIsNERBQW9DO0FBRXBDLHFFQUErRDtBQVEvRCxNQUFNLG9CQUFxQixTQUFRLEtBQUs7SUFDdEIsYUFBYSxDQUFVO0lBQ3ZDLFlBQVksYUFBc0IsRUFBRSxPQUFlO1FBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBYSxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUxELDhFQUtDO0FBSUQsTUFBTSxTQUFTO0lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBTztJQUNsQixNQUFNLENBQUMseUJBQXlCLENBQVU7SUFDMUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxtQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sQ0FBQyxhQUFhLEdBQXdDLEVBQUUsQ0FBQztJQUMvRCxNQUFNLENBQUMsTUFBTSxHQUFzQyxFQUFFLENBQUM7SUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFVLEVBQUUsNEJBQXFDLEtBQUs7UUFDdkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENB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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;
|