@super-protocol/sdk-js 2.1.9-beta.1 → 2.1.9-beta.3
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/RIGenerator.d.ts +17 -0
- package/dist/cjs/RIGenerator.js +50 -0
- package/dist/cjs/TIIGenerator.d.ts +12 -15
- package/dist/cjs/TIIGenerator.js +14 -137
- package/dist/cjs/TeeInputGeneratorBase.d.ts +11 -0
- package/dist/cjs/TeeInputGeneratorBase.js +79 -0
- package/dist/cjs/constants.d.ts +2 -0
- package/dist/cjs/constants.js +8 -2
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +8 -2
- package/dist/cjs/proto/Compression.d.ts +1 -1
- package/dist/cjs/proto/TRI.d.ts +3 -3
- package/dist/cjs/proto/TeeProperties.d.ts +5 -5
- package/dist/cjs/tee/TeeBlockVerifier.d.ts +10 -0
- package/dist/cjs/tee/TeeBlockVerifier.js +86 -0
- package/dist/cjs/types/Order.d.ts +8 -6
- package/dist/cjs/types/Order.js +1 -1
- package/dist/cjs/utils/helpers/index.d.ts +0 -1
- package/dist/cjs/utils/helpers/index.js +1 -2
- package/dist/mjs/RIGenerator.d.ts +17 -0
- package/dist/mjs/RIGenerator.js +45 -0
- package/dist/mjs/TIIGenerator.d.ts +12 -15
- package/dist/mjs/TIIGenerator.js +16 -139
- package/dist/mjs/TeeInputGeneratorBase.d.ts +11 -0
- package/dist/mjs/TeeInputGeneratorBase.js +73 -0
- package/dist/mjs/constants.d.ts +2 -0
- package/dist/mjs/constants.js +7 -1
- package/dist/mjs/index.d.ts +4 -0
- package/dist/mjs/index.js +5 -1
- package/dist/mjs/proto/Compression.d.ts +1 -1
- package/dist/mjs/proto/TRI.d.ts +3 -3
- package/dist/mjs/proto/TeeProperties.d.ts +5 -5
- package/dist/mjs/tee/TeeBlockVerifier.d.ts +10 -0
- package/dist/mjs/tee/TeeBlockVerifier.js +79 -0
- package/dist/mjs/types/Order.d.ts +8 -6
- package/dist/mjs/types/Order.js +1 -1
- package/dist/mjs/utils/helpers/index.d.ts +0 -1
- package/dist/mjs/utils/helpers/index.js +1 -2
- package/package.json +2 -3
- package/dist/cjs/utils/helpers/orderHelpers.d.ts +0 -12
- package/dist/cjs/utils/helpers/orderHelpers.js +0 -42
- package/dist/mjs/utils/helpers/orderHelpers.d.ts +0 -12
- package/dist/mjs/utils/helpers/orderHelpers.js +0 -34
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EncryptionKey, Hash, Encryption } from '@super-protocol/dto-js';
|
|
3
|
+
import { OrderEncryptedInfo, OrderResultInfo } from './types/index.js';
|
|
4
|
+
import TeeInputGeneratorBase from './TeeInputGeneratorBase.js';
|
|
5
|
+
declare class RIGenerator extends TeeInputGeneratorBase {
|
|
6
|
+
static getDerivedPrivateKey(publicKeyEncryption: EncryptionKey): Promise<EncryptionKey>;
|
|
7
|
+
static generate(params: {
|
|
8
|
+
offerId: string;
|
|
9
|
+
encryptionPrivateKey: EncryptionKey;
|
|
10
|
+
pccsServiceApiUrl: string;
|
|
11
|
+
solutionHashes: Hash[];
|
|
12
|
+
dataHashes: Hash[];
|
|
13
|
+
linkage: string;
|
|
14
|
+
}): Promise<OrderResultInfo>;
|
|
15
|
+
static getResultInfo(encryptedResultInfo: Encryption, privateKey: Buffer): Promise<OrderEncryptedInfo>;
|
|
16
|
+
}
|
|
17
|
+
export default RIGenerator;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dto_js_1 = require("@super-protocol/dto-js");
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const index_js_1 = __importDefault(require("./crypto/index.js"));
|
|
9
|
+
const TeeInputGeneratorBase_js_1 = __importDefault(require("./TeeInputGeneratorBase.js"));
|
|
10
|
+
class RIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
11
|
+
static async getDerivedPrivateKey(publicKeyEncryption) {
|
|
12
|
+
const derivedPrivateKey = await index_js_1.default.createHash(Buffer.from(publicKeyEncryption.key, publicKeyEncryption.encoding), { encoding: dto_js_1.Encoding.base64, algo: dto_js_1.HashAlgorithm.SHA256 });
|
|
13
|
+
return {
|
|
14
|
+
key: derivedPrivateKey.hash,
|
|
15
|
+
encoding: derivedPrivateKey.encoding,
|
|
16
|
+
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
static async generate(params) {
|
|
20
|
+
const resultEncryption = index_js_1.default.getPublicKey(params.encryptionPrivateKey);
|
|
21
|
+
const derivedPrivateKey = await this.getDerivedPrivateKey(resultEncryption);
|
|
22
|
+
const ecdh = (0, crypto_1.createECDH)('secp256k1');
|
|
23
|
+
ecdh.setPrivateKey(Buffer.from(derivedPrivateKey.key, derivedPrivateKey.encoding));
|
|
24
|
+
const publicKey = {
|
|
25
|
+
key: ecdh.getPublicKey(derivedPrivateKey.encoding),
|
|
26
|
+
encoding: dto_js_1.Encoding.base64,
|
|
27
|
+
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
28
|
+
};
|
|
29
|
+
const orderInfoToEncrypt = {
|
|
30
|
+
publicKey: resultEncryption,
|
|
31
|
+
solutionHashes: params.solutionHashes || [],
|
|
32
|
+
dataHashes: params.dataHashes || [],
|
|
33
|
+
linkage: params.linkage || '',
|
|
34
|
+
};
|
|
35
|
+
const encryptedInfo = await this.encryptByTeeBlock(params.offerId, JSON.stringify(orderInfoToEncrypt), params.pccsServiceApiUrl);
|
|
36
|
+
return {
|
|
37
|
+
publicKey: JSON.stringify(publicKey),
|
|
38
|
+
encryptedInfo: JSON.stringify(encryptedInfo),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
static async getResultInfo(encryptedResultInfo, privateKey) {
|
|
42
|
+
const resultInfo = await index_js_1.default.decrypt({
|
|
43
|
+
...encryptedResultInfo,
|
|
44
|
+
key: privateKey.toString(encryptedResultInfo.encoding),
|
|
45
|
+
}).then((res) => JSON.parse(res));
|
|
46
|
+
return resultInfo;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.default = RIGenerator;
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUklHZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUklHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFPZ0M7QUFDaEMsbUNBQW9DO0FBRXBDLGlFQUF1QztBQUN2QywwRkFBK0Q7QUFFL0QsTUFBTSxXQUFZLFNBQVEsa0NBQXFCO0lBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsbUJBQWtDO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQkFBTSxDQUFDLFVBQVUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQ25FLEVBQUUsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUMxRCxDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1lBQzNCLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1lBQ3BDLElBQUksRUFBRSx3QkFBZSxDQUFDLEtBQUs7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQU9yQjtRQUNDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxTQUFTLEdBQUc7WUFDaEIsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQ2xELFFBQVEsRUFBRSxpQkFBUSxDQUFDLE1BQU07WUFDekIsSUFBSSxFQUFFLHdCQUFlLENBQUMsS0FBSztTQUNkLENBQUM7UUFFaEIsTUFBTSxrQkFBa0IsR0FBdUI7WUFDN0MsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQzNDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtTQUM5QixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQ2hELE1BQU0sQ0FBQyxPQUFPLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxNQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7UUFFRixPQUFPO1lBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQ3BDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUN4QixtQkFBK0IsRUFDL0IsVUFBa0I7UUFFbEIsTUFBTSxVQUFVLEdBQXVCLE1BQU0sa0JBQU0sQ0FBQyxPQUFPLENBQUM7WUFDMUQsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1NBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVsQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxXQUFXLENBQUMifQ==
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { TCB } from './models/index.js';
|
|
3
2
|
import { BlockchainId } from './types/index.js';
|
|
4
3
|
import { Encryption, Hash, Resource, TeeRunInfo } from '@super-protocol/dto-js';
|
|
5
|
-
import
|
|
6
|
-
declare class TIIGenerator {
|
|
7
|
-
static
|
|
8
|
-
static verifiedTcbs: Set<BlockchainId>;
|
|
9
|
-
private static checkQuote;
|
|
10
|
-
static verifyTcb(tcb: TCB, quoteString: string, pubKey: string, sgxApiUrl: string): Promise<void>;
|
|
11
|
-
static verifyTlb(tlb: TLBlockUnserializeResultType, tlbString: string, offerId: string, sgxApiUrl: string): Promise<void>;
|
|
12
|
-
private static getVerifiedBlockEncryption;
|
|
13
|
-
static encryptByTeeBlock(offerId: string, data: string, sgxApiUrl: string): Promise<Encryption>;
|
|
14
|
-
static generateByOffer(offerId: BlockchainId, solutionHashes: Hash[], linkageString: string | undefined, resource: Resource, args: any, encryption: Encryption, sgxApiUrl: string): Promise<string>;
|
|
4
|
+
import TeeInputGeneratorBase from './TeeInputGeneratorBase.js';
|
|
5
|
+
declare class TIIGenerator extends TeeInputGeneratorBase {
|
|
6
|
+
static generateByOffer({ offerId, solutionHashes, linkageString, resource, args, encryption, sgxApiUrl, }: GenerateByOfferParams): Promise<string>;
|
|
15
7
|
static generate(orderId: BlockchainId, resource: Resource, args: any, encryption: Encryption, sgxApiUrl: string): Promise<string>;
|
|
16
|
-
static getSolutionHashesAndLinkage(inputOffers: BlockchainId[]): Promise<{
|
|
17
|
-
hashes: Hash[];
|
|
18
|
-
linkage?: string;
|
|
19
|
-
}>;
|
|
20
8
|
static getTRI(tii: string, decryptionKey: Buffer): Promise<TeeRunInfo>;
|
|
21
9
|
static getUrl(tii: string, decryptionKey: Buffer): Promise<string>;
|
|
22
10
|
static getResource<T>(tii: string, decryptionKey: Buffer): Promise<T>;
|
|
23
11
|
}
|
|
12
|
+
export type GenerateByOfferParams = {
|
|
13
|
+
offerId: BlockchainId;
|
|
14
|
+
solutionHashes: Hash[];
|
|
15
|
+
linkageString: string | undefined;
|
|
16
|
+
resource: Resource;
|
|
17
|
+
args: any;
|
|
18
|
+
encryption: Encryption;
|
|
19
|
+
sgxApiUrl: string;
|
|
20
|
+
};
|
|
24
21
|
export default TIIGenerator;
|
package/dist/cjs/TIIGenerator.js
CHANGED
|
@@ -4,123 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_gzip_1 = __importDefault(require("node-gzip"));
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const config_js_1 = require("./config.js");
|
|
9
7
|
const Compression_js_1 = require("./proto/Compression.js");
|
|
10
8
|
const TRI_js_1 = require("./proto/TRI.js");
|
|
11
9
|
const index_js_1 = __importDefault(require("./crypto/index.js"));
|
|
12
10
|
const index_js_2 = require("./models/index.js");
|
|
13
11
|
const dto_js_1 = require("@super-protocol/dto-js");
|
|
14
|
-
const
|
|
15
|
-
const QuoteValidator_js_1 = require("./tee/QuoteValidator.js");
|
|
16
|
-
const statuses_js_1 = require("./tee/statuses.js");
|
|
17
|
-
const QuoteParser_js_1 = require("./tee/QuoteParser.js");
|
|
18
|
-
const logger_js_1 = __importDefault(require("./logger.js"));
|
|
12
|
+
const TeeInputGeneratorBase_js_1 = __importDefault(require("./TeeInputGeneratorBase.js"));
|
|
19
13
|
const { gzip, ungzip } = node_gzip_1.default;
|
|
20
|
-
class TIIGenerator {
|
|
21
|
-
static
|
|
22
|
-
static verifiedTcbs = new Set();
|
|
23
|
-
static async checkQuote(quote, dataBlob, sgxApiUrl) {
|
|
24
|
-
const quoteBuffer = Buffer.from(quote);
|
|
25
|
-
const validator = new QuoteValidator_js_1.QuoteValidator(sgxApiUrl);
|
|
26
|
-
const quoteStatus = await validator.validate(quoteBuffer);
|
|
27
|
-
if (quoteStatus.quoteValidationStatus !== statuses_js_1.QuoteValidationStatuses.UpToDate) {
|
|
28
|
-
if (quoteStatus.quoteValidationStatus === statuses_js_1.QuoteValidationStatuses.Error) {
|
|
29
|
-
throw new Error('Quote is invalid');
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
logger_js_1.default.warn(quoteStatus, 'Quote validation status is not UpToDate');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
const userDataCheckResult = await validator.isQuoteHasUserData(quoteBuffer, Buffer.from(dataBlob));
|
|
36
|
-
if (!userDataCheckResult) {
|
|
37
|
-
throw new Error('Quote has invalid user data');
|
|
38
|
-
}
|
|
39
|
-
const parser = new QuoteParser_js_1.TeeSgxParser();
|
|
40
|
-
const parsedQuote = parser.parseQuote(quote);
|
|
41
|
-
const report = parser.parseReport(parsedQuote.report);
|
|
42
|
-
if (report.mrSigner.toString('hex') !== config_js_1.config.TEE_LOADER_TRUSTED_MRSIGNER) {
|
|
43
|
-
throw new Error('Quote has invalid MR signer');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static async verifyTcb(tcb, quoteString, pubKey, sgxApiUrl) {
|
|
47
|
-
// check cache
|
|
48
|
-
if (this.verifiedTcbs.has(tcb.tcbId)) {
|
|
49
|
-
logger_js_1.default.trace(`Tcb id = ${tcb.tcbId}, already validated`);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const quote = Buffer.from(quoteString, 'base64');
|
|
53
|
-
const signedTcbData = {
|
|
54
|
-
checkingTcbId: tcb.tcbId.toString(),
|
|
55
|
-
pubKey,
|
|
56
|
-
...(await tcb.getPublicData()),
|
|
57
|
-
};
|
|
58
|
-
const serializer = new tee_lib_1.TLBlockSerializerV1();
|
|
59
|
-
const dataBlob = await serializer.serializeAnyData(signedTcbData);
|
|
60
|
-
await this.checkQuote(quote, dataBlob, sgxApiUrl);
|
|
61
|
-
// update cashe
|
|
62
|
-
this.verifiedTcbs.add(tcb.tcbId);
|
|
63
|
-
if (this.verifiedTcbs.size > config_js_1.config.TLB_CACHE_SIZE) {
|
|
64
|
-
const [value] = this.verifiedTcbs.entries().next().value;
|
|
65
|
-
this.verifiedTcbs.delete(value);
|
|
66
|
-
logger_js_1.default.trace(value, `TCB id = ${value} removed from the cache. Cache size: ${this.verifiedTcbs.size}, cache limit: ${config_js_1.config.TLB_CACHE_SIZE}`);
|
|
67
|
-
}
|
|
68
|
-
logger_js_1.default.trace(tcb.tcbId, `TCB id = ${tcb.tcbId} added to the cache. Cache size: ${this.verifiedTcbs.size}, cache limit: ${config_js_1.config.TLB_CACHE_SIZE}`);
|
|
69
|
-
}
|
|
70
|
-
static async verifyTlb(tlb, tlbString, offerId, sgxApiUrl) {
|
|
71
|
-
const tlbHash = await index_js_1.default.createHash(Buffer.from(tlbString), {
|
|
72
|
-
algo: dto_js_1.HashAlgorithm.SHA256,
|
|
73
|
-
encoding: dto_js_1.Encoding.base64,
|
|
74
|
-
});
|
|
75
|
-
if (this.verifiedTlbHashes.has(tlbHash.hash)) {
|
|
76
|
-
logger_js_1.default.trace(tlbHash, `TLB hash of offer ${this.verifiedTlbHashes.get(tlbHash.hash)} loaded from the cache. Cache size: ${this.verifiedTlbHashes.size}, cache limit: ${config_js_1.config.TLB_CACHE_SIZE}`);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const quoteBuffer = Buffer.from(tlb.quote);
|
|
80
|
-
await this.checkQuote(quoteBuffer, tlb.dataBlob, sgxApiUrl);
|
|
81
|
-
this.verifiedTlbHashes.set(tlbHash.hash, offerId);
|
|
82
|
-
if (this.verifiedTlbHashes.size > config_js_1.config.TLB_CACHE_SIZE) {
|
|
83
|
-
const [key, value] = this.verifiedTlbHashes.entries().next().value;
|
|
84
|
-
this.verifiedTlbHashes.delete(key);
|
|
85
|
-
logger_js_1.default.trace(key, `TLB hash of offer ${value} removed from the cache. Cache size: ${this.verifiedTlbHashes.size}, cache limit: ${config_js_1.config.TLB_CACHE_SIZE}`);
|
|
86
|
-
}
|
|
87
|
-
logger_js_1.default.trace(tlbHash.hash, `TLB hash of offer ${offerId} added to the cache. Cache size: ${this.verifiedTlbHashes.size}, cache limit: ${config_js_1.config.TLB_CACHE_SIZE}`);
|
|
88
|
-
}
|
|
89
|
-
static async getVerifiedBlockEncryption(offerId, sgxApiUrl) {
|
|
90
|
-
const teeOffer = new index_js_2.TeeOffer(offerId);
|
|
91
|
-
const teeOfferInfo = await teeOffer.getInfo();
|
|
92
|
-
const tcbId = await teeOffer.getActualTcbId();
|
|
93
|
-
const verifyByTcb = Number.parseInt(tcbId) != 0;
|
|
94
|
-
let encryption;
|
|
95
|
-
if (verifyByTcb) {
|
|
96
|
-
const tcb = new index_js_2.TCB(await teeOffer.getActualTcbId());
|
|
97
|
-
const { pubKey, quote } = await tcb.getUtilityData();
|
|
98
|
-
await this.verifyTcb(tcb, quote, pubKey, sgxApiUrl);
|
|
99
|
-
// TODO: must be 'blockEncryption = JSON.parse(pubKey);'
|
|
100
|
-
encryption = {
|
|
101
|
-
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
102
|
-
key: pubKey,
|
|
103
|
-
encoding: dto_js_1.Encoding.base64,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
const serializer = new tee_lib_1.TLBlockSerializerV1();
|
|
108
|
-
const tlb = serializer.unserializeTlb(Buffer.from(teeOfferInfo.tlb, 'base64'));
|
|
109
|
-
await this.verifyTlb(tlb, teeOfferInfo.tlb, offerId, sgxApiUrl);
|
|
110
|
-
encryption = {
|
|
111
|
-
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
112
|
-
key: tlb.data.teePubKeyData.toString('base64'),
|
|
113
|
-
encoding: dto_js_1.Encoding.base64,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
return encryption;
|
|
117
|
-
}
|
|
118
|
-
static async encryptByTeeBlock(offerId, data, sgxApiUrl) {
|
|
119
|
-
const encryption = await this.getVerifiedBlockEncryption(offerId, sgxApiUrl);
|
|
120
|
-
const encryptedInfo = await index_js_1.default.encrypt(data, encryption);
|
|
121
|
-
return encryptedInfo;
|
|
122
|
-
}
|
|
123
|
-
static async generateByOffer(offerId, solutionHashes, linkageString, resource, args, encryption, sgxApiUrl) {
|
|
14
|
+
class TIIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
15
|
+
static async generateByOffer({ offerId, solutionHashes, linkageString, resource, args, encryption, sgxApiUrl, }) {
|
|
124
16
|
const teeOffer = new index_js_2.TeeOffer(offerId);
|
|
125
17
|
const teeOfferInfo = await teeOffer.getInfo();
|
|
126
18
|
const linkage = linkageString
|
|
@@ -168,31 +60,16 @@ class TIIGenerator {
|
|
|
168
60
|
const parentOrderId = await order.getParentOrder();
|
|
169
61
|
const parentOrder = new index_js_2.Order(parentOrderId);
|
|
170
62
|
const parentOrderInfo = await parentOrder.getOrderInfo();
|
|
171
|
-
const {
|
|
172
|
-
return this.generateByOffer(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (offerInfo.hash) {
|
|
182
|
-
solutionHashes.push(JSON.parse(offerInfo.hash));
|
|
183
|
-
}
|
|
184
|
-
const restrictions = lodash_1.default.intersection(offerInfo.restrictions.offers, inputOffers).filter((restrictedOfferId) => restrictedOfferId !== offer.id);
|
|
185
|
-
if (restrictions.length) {
|
|
186
|
-
solutionLinkage = offerInfo.linkage;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
anyLinkage = offerInfo.linkage;
|
|
190
|
-
}
|
|
191
|
-
}));
|
|
192
|
-
return {
|
|
193
|
-
hashes: solutionHashes,
|
|
194
|
-
linkage: solutionLinkage || anyLinkage,
|
|
195
|
-
};
|
|
63
|
+
const { solutionHashes, linkage } = await this.getOffersHashesAndLinkage(parentOrderInfo.args.inputOffers);
|
|
64
|
+
return this.generateByOffer({
|
|
65
|
+
offerId: parentOrderInfo.offerId,
|
|
66
|
+
solutionHashes,
|
|
67
|
+
linkageString: linkage,
|
|
68
|
+
resource,
|
|
69
|
+
args,
|
|
70
|
+
encryption,
|
|
71
|
+
sgxApiUrl,
|
|
72
|
+
});
|
|
196
73
|
}
|
|
197
74
|
static async getTRI(tii, decryptionKey) {
|
|
198
75
|
const tiiObj = JSON.parse(tii);
|
|
@@ -243,4 +120,4 @@ class TIIGenerator {
|
|
|
243
120
|
}
|
|
244
121
|
}
|
|
245
122
|
exports.default = TIIGenerator;
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVElJR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RJSUdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUFpQztBQUNqQyxvREFBdUI7QUFFdkIsMkNBQXFDO0FBQ3JDLDJEQUF1RTtBQUN2RSwyQ0FBcUM7QUFDckMsaUVBQXVDO0FBQ3ZDLGdEQUFnRTtBQUVoRSxtREFZZ0M7QUFDaEMscURBQTRGO0FBQzVGLCtEQUF5RDtBQUN6RCxtREFBNEQ7QUFDNUQseURBQW9EO0FBQ3BELDREQUFpQztBQUVqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLG1CQUFRLENBQUM7QUFFbEMsTUFBTSxZQUFZO0lBQ2hCLE1BQU0sQ0FBQyxpQkFBaUIsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMxRCxNQUFNLENBQUMsWUFBWSxHQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUM3QixLQUFpQixFQUNqQixRQUFvQixFQUNwQixTQUFpQjtRQUVqQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksa0NBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxXQUFXLENBQUMscUJBQXFCLEtBQUsscUNBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0UsSUFBSSxXQUFXLENBQUMscUJBQXFCLEtBQUsscUNBQXVCLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sbUJBQU0sQ0FBQyxJQUFJLENB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
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVElJR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RJSUdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBEQUFpQztBQUdqQywyREFBdUU7QUFDdkUsMkNBQXFDO0FBQ3JDLGlFQUF1QztBQUN2QyxnREFBb0Q7QUFFcEQsbURBWWdDO0FBQ2hDLDBGQUErRDtBQUUvRCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLG1CQUFRLENBQUM7QUFFbEMsTUFBTSxZQUFhLFNBQVEsa0NBQXFCO0lBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFFBQVEsRUFDUixJQUFJLEVBQ0osVUFBVSxFQUNWLFNBQVMsR0FDYTtRQUN0QixNQUFNLFFBQVEsR0FBYSxJQUFJLG1CQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQWlCLE1BQU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFZLGFBQWE7WUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzNCLENBQUMsQ0FBQztnQkFDRSxRQUFRLEVBQUUsaUJBQVEsQ0FBQyxNQUFNO2dCQUN6QixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUM7UUFFTixNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFbEYsOEJBQThCO1FBQzlCLE1BQU0sR0FBRyxHQUFJLFVBQWtCLENBQUMsT0FBTyxJQUFLLFVBQWtDLENBQUMsR0FBRyxDQUFDO1FBQ25GLE1BQU0sTUFBTSxHQUFHO1lBQ2IsY0FBYyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDNUMsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQzNELFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUN6RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLFVBQVUsRUFBRTtnQkFDVixHQUFHLFVBQVU7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO29CQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7b0JBQ3pELENBQUMsQ0FBQyxTQUFTO2dCQUNiLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNsRixFQUFFLEVBQUcsVUFBa0MsQ0FBQyxFQUFFO29CQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBRSxVQUFrQyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUMxRSxDQUFDLENBQUMsU0FBUztnQkFDYixHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7YUFDN0Q7U0FDRixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsWUFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV4QyxNQUFNLGFBQWEsR0FBRyw0QkFBVyxDQUFDLE1BQU0sQ0FBQztZQUN2QyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3JCLElBQUksRUFBRSxpQ0FBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixpQkFBaUIsRUFBRSxNQUFNLGtCQUFNLENBQUMsT0FBTyxDQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQWUsQ0FDckQ7WUFDRCxHQUFHLEVBQUUsTUFBTSxrQkFBTSxDQUFDLE9BQU8sQ0FDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxNQUFNLENBQUMsRUFDcEQsZUFBZSxDQUNoQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDMUIsT0FBcUIsRUFDckIsUUFBa0IsRUFDbEIsSUFBUyxFQUNULFVBQXNCLEVBQ3RCLFNBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUFVLElBQUksZ0JBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxNQUFNLGFBQWEsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFdBQVcsR0FBVSxJQUFJLGdCQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsTUFBTSxlQUFlLEdBQWMsTUFBTSxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEUsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FDdEUsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ2pDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDMUIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxPQUFPO1lBQ2hDLGNBQWM7WUFDZCxhQUFhLEVBQUUsT0FBTztZQUN0QixRQUFRO1lBQ1IsSUFBSTtZQUNKLFVBQVU7WUFDVixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVcsRUFBRSxhQUFxQjtRQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxNQUFNLEdBQUcsR0FBVyxNQUFNLGtCQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFpQixDQUFDLENBQUM7UUFFbkUsTUFBTSxXQUFXLEdBQUcsNEJBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTlFLElBQUksWUFBb0IsQ0FBQztRQUN6QixRQUFRLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixLQUFLLGlDQUFnQixDQUFDLElBQUk7Z0JBQ3hCLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLE1BQU07WUFFUjtnQkFDRSxNQUFNLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxZQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXpDLE9BQU87WUFDTCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsSUFBcUI7Z0JBQ2hDLFFBQVEsRUFBRSxpQkFBUSxDQUFDLE1BQU07YUFDMUIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxpQkFBUSxDQUFDLE1BQU07Z0JBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ25FLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxNQUFNLENBQUM7YUFDbEU7WUFDRCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVyxDQUFDLElBQXVCO2dCQUNqRCxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVcsQ0FBQyxNQUFpQjtnQkFDN0MsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTTtnQkFDekIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVcsQ0FBQyxHQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BFLEVBQUUsRUFDQSxPQUFPLENBQUMsVUFBVyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFXLENBQUMsRUFBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFRLENBQUMsTUFBTSxDQUFDO2dCQUMxRixHQUFHLEVBQ0QsT0FBTyxDQUFDLFVBQVcsQ0FBQyxHQUFHO29CQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFXLENBQUMsR0FBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFRLENBQUMsTUFBTSxDQUFDO2FBQzNDO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLGFBQXFCO1FBQzNELE1BQU0sR0FBRyxHQUFHLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBYyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFNUUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBSSxHQUFXLEVBQUUsYUFBcUI7UUFDbkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGlCQUErQixDQUFDO1FBQzFFLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFXLE1BQU0sa0JBQU0sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVqRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFNLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBWUQsa0JBQWUsWUFBWSxDQUFDIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Encryption, Hash } from '@super-protocol/dto-js';
|
|
2
|
+
import { BlockchainId } from './types/index.js';
|
|
3
|
+
export default class TeeInputGeneratorBase {
|
|
4
|
+
static getOffersHashesAndLinkage(inputOffers: BlockchainId[]): Promise<{
|
|
5
|
+
solutionHashes: Hash[];
|
|
6
|
+
dataHashes: Hash[];
|
|
7
|
+
linkage?: string;
|
|
8
|
+
}>;
|
|
9
|
+
static encryptByTeeBlock(offerId: string, data: string, sgxApiUrl: string): Promise<Encryption>;
|
|
10
|
+
protected static getVerifiedBlockEncryption(offerId: string, sgxApiUrl: string): Promise<Encryption>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dto_js_1 = require("@super-protocol/dto-js");
|
|
7
|
+
const tee_lib_1 = require("@super-protocol/tee-lib");
|
|
8
|
+
const index_js_1 = require("./models/index.js");
|
|
9
|
+
const index_js_2 = require("./types/index.js");
|
|
10
|
+
const index_js_3 = __importDefault(require("./crypto/index.js"));
|
|
11
|
+
const TeeBlockVerifier_js_1 = require("./tee/TeeBlockVerifier.js");
|
|
12
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
13
|
+
const constants_js_1 = require("./constants.js");
|
|
14
|
+
class TeeInputGeneratorBase {
|
|
15
|
+
static async getOffersHashesAndLinkage(inputOffers) {
|
|
16
|
+
const solutionHashes = [];
|
|
17
|
+
const dataHashes = [];
|
|
18
|
+
let solutionLinkage;
|
|
19
|
+
let anyLinkage;
|
|
20
|
+
await Promise.all(inputOffers.map(async (offerId) => {
|
|
21
|
+
const offer = new index_js_1.Offer(offerId);
|
|
22
|
+
const offerInfo = await offer.getInfo();
|
|
23
|
+
if (offerInfo.offerType === index_js_2.OfferType.Solution) {
|
|
24
|
+
solutionHashes.push(offerInfo.hash ? JSON.parse(offerInfo.hash) : constants_js_1.ZERO_HASH);
|
|
25
|
+
const restrictions = lodash_1.default.intersection(offerInfo.restrictions.offers, inputOffers).filter((restrictedOfferId) => restrictedOfferId !== offer.id);
|
|
26
|
+
if (restrictions.length) {
|
|
27
|
+
solutionLinkage = offerInfo.linkage;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
anyLinkage = offerInfo.linkage;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (offerInfo.offerType === index_js_2.OfferType.Data) {
|
|
34
|
+
dataHashes.push(offerInfo.hash ? JSON.parse(offerInfo.hash) : constants_js_1.ZERO_HASH);
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
return {
|
|
38
|
+
solutionHashes,
|
|
39
|
+
dataHashes,
|
|
40
|
+
linkage: solutionLinkage || anyLinkage,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
static async encryptByTeeBlock(offerId, data, sgxApiUrl) {
|
|
44
|
+
const encryption = await this.getVerifiedBlockEncryption(offerId, sgxApiUrl);
|
|
45
|
+
const encryptedInfo = await index_js_3.default.encrypt(data, encryption);
|
|
46
|
+
return encryptedInfo;
|
|
47
|
+
}
|
|
48
|
+
static async getVerifiedBlockEncryption(offerId, sgxApiUrl) {
|
|
49
|
+
const teeOffer = new index_js_1.TeeOffer(offerId);
|
|
50
|
+
const teeOfferInfo = await teeOffer.getInfo();
|
|
51
|
+
const tcbId = await teeOffer.getActualTcbId();
|
|
52
|
+
const verifyByTcb = Number.parseInt(tcbId) != 0;
|
|
53
|
+
let encryption;
|
|
54
|
+
if (verifyByTcb) {
|
|
55
|
+
const tcb = new index_js_1.TCB(await teeOffer.getActualTcbId());
|
|
56
|
+
const { pubKey, quote } = await tcb.getUtilityData();
|
|
57
|
+
await TeeBlockVerifier_js_1.TeeBlockVerifier.verifyTcb(tcb, quote, pubKey, sgxApiUrl);
|
|
58
|
+
// TODO: must be 'blockEncryption = JSON.parse(pubKey);'
|
|
59
|
+
encryption = {
|
|
60
|
+
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
61
|
+
key: pubKey,
|
|
62
|
+
encoding: dto_js_1.Encoding.base64,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
const serializer = new tee_lib_1.TLBlockSerializerV1();
|
|
67
|
+
const tlb = serializer.unserializeTlb(Buffer.from(teeOfferInfo.tlb, 'base64'));
|
|
68
|
+
await TeeBlockVerifier_js_1.TeeBlockVerifier.verifyTlb(tlb, teeOfferInfo.tlb, offerId, sgxApiUrl);
|
|
69
|
+
encryption = {
|
|
70
|
+
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
71
|
+
key: tlb.data.teePubKeyData.toString('base64'),
|
|
72
|
+
encoding: dto_js_1.Encoding.base64,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return encryption;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.default = TeeInputGeneratorBase;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlSW5wdXRHZW5lcmF0b3JCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RlZUlucHV0R2VuZXJhdG9yQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1EQUFxRjtBQUNyRixxREFBNEY7QUFDNUYsZ0RBQXlEO0FBQ3pELCtDQUFvRjtBQUNwRixpRUFBdUM7QUFDdkMsbUVBQTZEO0FBQzdELG9EQUF1QjtBQUN2QixpREFBMkM7QUFFM0MsTUFBcUIscUJBQXFCO0lBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQzNDLFdBQTJCO1FBRTNCLE1BQU0sY0FBYyxHQUFXLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBVyxFQUFFLENBQUM7UUFDOUIsSUFBSSxlQUFtQyxDQUFDO1FBQ3hDLElBQUksVUFBOEIsQ0FBQztRQUNuQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFpQixFQUFFO1lBQy9DLE1BQU0sS0FBSyxHQUFVLElBQUksZ0JBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxNQUFNLFNBQVMsR0FBYyxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVuRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEtBQUssb0JBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQVMsQ0FBQyxDQUFDO2dCQUU3RSxNQUFNLFlBQVksR0FBRyxnQkFBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQ3BGLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxD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
|
package/dist/cjs/constants.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Hash } from '@super-protocol/dto-js';
|
|
1
2
|
export declare const defaultBlockchainUrl = "http://127.0.0.1:8545";
|
|
2
3
|
export declare const defaultGasLimit: bigint;
|
|
3
4
|
export declare const defaultGasPrice: bigint;
|
|
@@ -14,3 +15,4 @@ export declare const BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
|
|
|
14
15
|
export declare const POLYGON_MAIN_CHAIN_ID = 137;
|
|
15
16
|
export declare const POLYGON_AMOY_CHAIN_ID = 80002;
|
|
16
17
|
export declare const AMOY_TX_COST_LIMIT: bigint;
|
|
18
|
+
export declare const ZERO_HASH: Hash;
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AMOY_TX_COST_LIMIT = exports.POLYGON_AMOY_CHAIN_ID = exports.POLYGON_MAIN_CHAIN_ID = exports.BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = exports.BLOCKCHAIN_CALL_RETRY_INTERVAL = exports.BLOCKCHAIN_CALL_RETRY_ATTEMPTS = exports.POLYGON_MATIC_EVENT_PATH = exports.BLOCK_SIZE_TO_FETCH_TRANSACTION = exports.ONE_DAY = exports.txIntervalMs = exports.txConcurrency = exports.defaultGasLimitMultiplier = exports.defaultGasPriceMultiplier = exports.defaultGasPrice = exports.defaultGasLimit = exports.defaultBlockchainUrl = void 0;
|
|
3
|
+
exports.ZERO_HASH = exports.AMOY_TX_COST_LIMIT = exports.POLYGON_AMOY_CHAIN_ID = exports.POLYGON_MAIN_CHAIN_ID = exports.BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = exports.BLOCKCHAIN_CALL_RETRY_INTERVAL = exports.BLOCKCHAIN_CALL_RETRY_ATTEMPTS = exports.POLYGON_MATIC_EVENT_PATH = exports.BLOCK_SIZE_TO_FETCH_TRANSACTION = exports.ONE_DAY = exports.txIntervalMs = exports.txConcurrency = exports.defaultGasLimitMultiplier = exports.defaultGasPriceMultiplier = exports.defaultGasPrice = exports.defaultGasLimit = exports.defaultBlockchainUrl = void 0;
|
|
4
|
+
const dto_js_1 = require("@super-protocol/dto-js");
|
|
4
5
|
exports.defaultBlockchainUrl = 'http://127.0.0.1:8545';
|
|
5
6
|
exports.defaultGasLimit = BigInt(7000000);
|
|
6
7
|
exports.defaultGasPrice = BigInt(3000000000);
|
|
@@ -17,4 +18,9 @@ exports.BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
|
|
|
17
18
|
exports.POLYGON_MAIN_CHAIN_ID = 137;
|
|
18
19
|
exports.POLYGON_AMOY_CHAIN_ID = 80002;
|
|
19
20
|
exports.AMOY_TX_COST_LIMIT = BigInt('5000000000000000000');
|
|
20
|
-
|
|
21
|
+
exports.ZERO_HASH = {
|
|
22
|
+
hash: '0000000000000000000000000000000000000000000000000000000000000000',
|
|
23
|
+
algo: dto_js_1.HashAlgorithm.SHA256,
|
|
24
|
+
encoding: dto_js_1.Encoding.base64,
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBdUU7QUFFMUQsUUFBQSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztBQUMvQyxRQUFBLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsUUFBQSxlQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JDLFFBQUEseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLFFBQUEseUJBQXlCLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLFFBQUEsYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNuQixRQUFBLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDbEIsUUFBQSxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDdkIsUUFBQSwrQkFBK0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsUUFBQSx3QkFBd0IsR0FBRyw0Q0FBNEMsQ0FBQztBQUN4RSxRQUFBLDhCQUE4QixHQUFHLEVBQUUsQ0FBQztBQUNwQyxRQUFBLDhCQUE4QixHQUFHLElBQUksQ0FBQztBQUN0QyxRQUFBLGdDQUFnQyxHQUFHLEtBQUssQ0FBQztBQUN6QyxRQUFBLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUM1QixRQUFBLHFCQUFxQixHQUFHLEtBQUssQ0FBQztBQUM5QixRQUFBLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ25ELFFBQUEsU0FBUyxHQUFTO0lBQzdCLElBQUksRUFBRSxrRUFBa0U7SUFDeEUsSUFBSSxFQUFFLHNCQUFhLENBQUMsTUFBTTtJQUMxQixRQUFRLEVBQUUsaUJBQVEsQ0FBQyxNQUFNO0NBQzFCLENBQUMifQ==
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export { default as BlockchainEventsListener } from './connectors/BlockchainEven
|
|
|
5
5
|
export { default as Crypto } from './crypto/index.js';
|
|
6
6
|
export { default as TIIGenerator } from './TIIGenerator.js';
|
|
7
7
|
export * from './TIIGenerator.js';
|
|
8
|
+
export { default as RIGenerator } from './RIGenerator.js';
|
|
9
|
+
export * from './TIIGenerator.js';
|
|
8
10
|
export { default as Consensus } from './staticModels/Consensus.js';
|
|
9
11
|
export * from './staticModels/Consensus.js';
|
|
10
12
|
export { default as Orders } from './staticModels/Orders.js';
|
|
@@ -67,11 +69,13 @@ export { default as StorageAccess } from './types/storage/StorageAccess.js';
|
|
|
67
69
|
export { default as getStorageProvider } from './providers/storage/getStorageProvider.js';
|
|
68
70
|
export { default as IStorageProvider } from './providers/storage/IStorageProvider.js';
|
|
69
71
|
export * as helpers from './utils/helpers/index.js';
|
|
72
|
+
export * as constants from './constants.js';
|
|
70
73
|
export { Web3TransactionRevertedByEvmError } from './utils/TxManager.js';
|
|
71
74
|
import './polyfills.js';
|
|
72
75
|
export { TeeSgxParser } from './tee/QuoteParser.js';
|
|
73
76
|
export { QuoteValidator } from './tee/QuoteValidator.js';
|
|
74
77
|
export * from './tee/statuses.js';
|
|
78
|
+
export { TeeBlockVerifier } from './tee/TeeBlockVerifier.js';
|
|
75
79
|
export * from './analytics/types.js';
|
|
76
80
|
export { default as Analytics } from './analytics/Analytics.js';
|
|
77
81
|
export { default as NodeEventProvider } from './analytics/eventProviders/NodeEventProvider.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.FetchTransport = exports.AxiosTransport = exports.BrowserEventProvider = exports.NodeEventProvider = exports.Analytics = exports.QuoteValidator = exports.TeeSgxParser = exports.Web3TransactionRevertedByEvmError = exports.helpers = exports.getStorageProvider = exports.ContentWriterType = exports.StorageContentWriter = exports.CacheEvents = exports.StorageAdapter = exports.StorageKeyValueAdapter = exports.StorageMetadataReader = exports.StorjAdapter = exports.ChunkedStorageProvider = exports.TCB = exports.Offer = exports.TeeOffer = exports.Provider = exports.Order = exports.Deposits = exports.Marks = exports.Superpro = exports.SuperproToken = exports.ProviderRegistry = exports.TeeOffers = exports.Offers = exports.ActiveOffers = exports.ActiveOrders = exports.Orders = exports.Consensus = exports.TIIGenerator = exports.Crypto = exports.BlockchainEventsListener = exports.BlockchainConnector = void 0;
|
|
32
|
+
exports.FetchTransport = exports.AxiosTransport = exports.BrowserEventProvider = exports.NodeEventProvider = exports.Analytics = exports.TeeBlockVerifier = exports.QuoteValidator = exports.TeeSgxParser = exports.Web3TransactionRevertedByEvmError = exports.constants = exports.helpers = exports.getStorageProvider = exports.ContentWriterType = exports.StorageContentWriter = exports.CacheEvents = exports.StorageAdapter = exports.StorageKeyValueAdapter = exports.StorageMetadataReader = exports.StorjAdapter = exports.ChunkedStorageProvider = exports.TCB = exports.Offer = exports.TeeOffer = exports.Provider = exports.Order = exports.Deposits = exports.Marks = exports.Superpro = exports.SuperproToken = exports.ProviderRegistry = exports.TeeOffers = exports.Offers = exports.ActiveOffers = exports.ActiveOrders = exports.Orders = exports.Consensus = exports.RIGenerator = exports.TIIGenerator = exports.Crypto = exports.BlockchainEventsListener = exports.BlockchainConnector = void 0;
|
|
33
33
|
var BlockchainConnector_js_1 = require("./connectors/BlockchainConnector.js");
|
|
34
34
|
Object.defineProperty(exports, "BlockchainConnector", { enumerable: true, get: function () { return __importDefault(BlockchainConnector_js_1).default; } });
|
|
35
35
|
__exportStar(require("./connectors/BlockchainConnector.js"), exports);
|
|
@@ -40,6 +40,9 @@ Object.defineProperty(exports, "Crypto", { enumerable: true, get: function () {
|
|
|
40
40
|
var TIIGenerator_js_1 = require("./TIIGenerator.js");
|
|
41
41
|
Object.defineProperty(exports, "TIIGenerator", { enumerable: true, get: function () { return __importDefault(TIIGenerator_js_1).default; } });
|
|
42
42
|
__exportStar(require("./TIIGenerator.js"), exports);
|
|
43
|
+
var RIGenerator_js_1 = require("./RIGenerator.js");
|
|
44
|
+
Object.defineProperty(exports, "RIGenerator", { enumerable: true, get: function () { return __importDefault(RIGenerator_js_1).default; } });
|
|
45
|
+
__exportStar(require("./TIIGenerator.js"), exports);
|
|
43
46
|
var Consensus_js_1 = require("./staticModels/Consensus.js");
|
|
44
47
|
Object.defineProperty(exports, "Consensus", { enumerable: true, get: function () { return __importDefault(Consensus_js_1).default; } });
|
|
45
48
|
__exportStar(require("./staticModels/Consensus.js"), exports);
|
|
@@ -122,6 +125,7 @@ Object.defineProperty(exports, "ContentWriterType", { enumerable: true, get: fun
|
|
|
122
125
|
var getStorageProvider_js_1 = require("./providers/storage/getStorageProvider.js");
|
|
123
126
|
Object.defineProperty(exports, "getStorageProvider", { enumerable: true, get: function () { return __importDefault(getStorageProvider_js_1).default; } });
|
|
124
127
|
exports.helpers = __importStar(require("./utils/helpers/index.js"));
|
|
128
|
+
exports.constants = __importStar(require("./constants.js"));
|
|
125
129
|
var TxManager_js_1 = require("./utils/TxManager.js");
|
|
126
130
|
Object.defineProperty(exports, "Web3TransactionRevertedByEvmError", { enumerable: true, get: function () { return TxManager_js_1.Web3TransactionRevertedByEvmError; } });
|
|
127
131
|
require("./polyfills.js");
|
|
@@ -130,6 +134,8 @@ Object.defineProperty(exports, "TeeSgxParser", { enumerable: true, get: function
|
|
|
130
134
|
var QuoteValidator_js_1 = require("./tee/QuoteValidator.js");
|
|
131
135
|
Object.defineProperty(exports, "QuoteValidator", { enumerable: true, get: function () { return QuoteValidator_js_1.QuoteValidator; } });
|
|
132
136
|
__exportStar(require("./tee/statuses.js"), exports);
|
|
137
|
+
var TeeBlockVerifier_js_1 = require("./tee/TeeBlockVerifier.js");
|
|
138
|
+
Object.defineProperty(exports, "TeeBlockVerifier", { enumerable: true, get: function () { return TeeBlockVerifier_js_1.TeeBlockVerifier; } });
|
|
133
139
|
__exportStar(require("./analytics/types.js"), exports);
|
|
134
140
|
var Analytics_js_1 = require("./analytics/Analytics.js");
|
|
135
141
|
Object.defineProperty(exports, "Analytics", { enumerable: true, get: function () { return __importDefault(Analytics_js_1).default; } });
|
|
@@ -141,4 +147,4 @@ var AxiosTransport_js_1 = require("./analytics/transports/AxiosTransport.js");
|
|
|
141
147
|
Object.defineProperty(exports, "AxiosTransport", { enumerable: true, get: function () { return __importDefault(AxiosTransport_js_1).default; } });
|
|
142
148
|
var FetchTransport_js_1 = require("./analytics/transports/FetchTransport.js");
|
|
143
149
|
Object.defineProperty(exports, "FetchTransport", { enumerable: true, get: function () { return __importDefault(FetchTransport_js_1).default; } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4RUFBcUY7QUFBNUUsOElBQUEsT0FBTyxPQUF1QjtBQUV2QyxzRUFBb0Q7QUFJcEQsd0ZBQStGO0FBQXRGLHdKQUFBLE9BQU8sT0FBNEI7QUFFNUMsOENBQXNEO0FBQTdDLG1IQUFBLE9BQU8sT0FBVTtBQUUxQixxREFBNEQ7QUFBbkQsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyxvREFBa0M7QUFFbEMsbURBQTBEO0FBQWpELDhIQUFBLE9BQU8sT0FBZTtBQUMvQixvREFBa0M7QUFFbEMsNERBQW1FO0FBQTFELDBIQUFBLE9BQU8sT0FBYTtBQUM3Qiw4REFBNEM7QUFFNUMsc0RBQTZEO0FBQXBELG9IQUFBLE9BQU8sT0FBVTtBQUMxQiwyREFBeUM7QUFFekMsa0VBQXlFO0FBQWhFLGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMsaUVBQStDO0FBRS9DLGtFQUF5RTtBQUFoRSxnSUFBQSxPQUFPLE9BQWdCO0FBQ2hDLGlFQUErQztBQUUvQyxzREFBNkQ7QUFBcEQsb0hBQUEsT0FBTyxPQUFVO0FBQzFCLDJEQUF5QztBQUV6Qyw0REFBbUU7QUFBMUQsMEhBQUEsT0FBTyxPQUFhO0FBQzdCLDhEQUE0QztBQUU1QywwRUFBaUY7QUFBeEUsd0lBQUEsT0FBTyxPQUFvQjtBQUNwQyxxRUFBbUQ7QUFFbkQsb0VBQTJFO0FBQWxFLGtJQUFBLE9BQU8sT0FBaUI7QUFDakMsa0VBQWdEO0FBRWhELDBEQUFpRTtBQUF4RCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsNkRBQTJDO0FBRTNDLG9EQUEyRDtBQUFsRCxrSEFBQSxPQUFPLE9BQVM7QUFDekIsMERBQXdDO0FBRXhDLDBEQUFpRTtBQUF4RCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsNkRBQTJDO0FBRTNDLDhDQUFxRDtBQUE1QyxrSEFBQSxPQUFPLE9BQVM7QUFDekIsb0RBQWtDO0FBRWxDLG9EQUEyRDtBQUFsRCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsdURBQXFDO0FBRXJDLG9EQUEyRDtBQUFsRCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsdURBQXFDO0FBRXJDLDhDQUFxRDtBQUE1QyxrSEFBQSxPQUFPLE9BQVM7QUFDekIsb0RBQWtDO0FBRWxDLDBDQUFpRDtBQUF4Qyw4R0FBQSxPQUFPLE9BQU87QUFDdkIsa0RBQWdDO0FBRWhDLG1EQUFpQztBQUNqQyxtREFBaUM7QUFDakMsbURBQWlDO0FBQ2pDLDBEQUF3QztBQUN4QywwREFBd0M7QUFDeEMsc0RBQW9DO0FBQ3BDLHVEQUFxQztBQUNyQyx3REFBc0M7QUFDdEMsd0RBQXNDO0FBQ3RDLDBEQUF3QztBQUN4Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLDREQUEwQztBQUMxQyxzREFBb0M7QUFDcEMsc0RBQW9DO0FBQ3BDLHVEQUFxQztBQUNyQyxxREFBbUM7QUFDbkMsa0RBQWdDO0FBRWhDLHlHQUF5RjtBQUN6Rix1RUFBMkY7QUFBbEYsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyx5RkFHc0Q7QUFGcEQsa0pBQUEsT0FBTyxPQUF5QjtBQUdsQywyRkFBa0c7QUFBekYsb0pBQUEsT0FBTyxPQUEwQjtBQUMxQywyRUFJK0M7QUFIN0Msb0lBQUEsT0FBTyxPQUFrQjtBQUN6QixnSEFBQSxXQUFXLE9BQUE7QUFHYix1RkFJcUQ7QUFIbkQsZ0pBQUEsT0FBTyxPQUF3QjtBQUUvQiw0SEFBQSxpQkFBaUIsT0FBQTtBQU1uQixtRkFBMEY7QUFBakYsNElBQUEsT0FBTyxPQUFzQjtBQUd0QyxvRUFBb0Q7QUFDcEQsNERBQTRDO0FBRTVDLHFEQUF5RTtBQUFoRSxpSUFBQSxpQ0FBaUMsT0FBQTtBQUUxQywwQkFBd0I7QUFFeEIsdURBQW9EO0FBQTNDLDhHQUFBLFlBQVksT0FBQTtBQUNyQiw2REFBeUQ7QUFBaEQsbUhBQUEsY0FBYyxPQUFBO0FBQ3ZCLG9EQUFrQztBQUNsQyxpRUFBNkQ7QUFBcEQsdUhBQUEsZ0JBQWdCLE9BQUE7QUFFekIsdURBQXFDO0FBQ3JDLHlEQUFnRTtBQUF2RCwwSEFBQSxPQUFPLE9BQWE7QUFDN0Isd0ZBQStGO0FBQXRGLDBJQUFBLE9BQU8sT0FBcUI7QUFDckMsOEZBQXFHO0FBQTVGLGdKQUFBLE9BQU8sT0FBd0I7QUFDeEMsOEVBQXFGO0FBQTVFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMsOEVBQXFGO0FBQTVFLG9JQUFBLE9BQU8sT0FBa0IifQ==
|
|
@@ -21,7 +21,7 @@ export declare const Compression: {
|
|
|
21
21
|
} & {
|
|
22
22
|
type?: Compression_TYPE | undefined;
|
|
23
23
|
data?: Uint8Array | undefined;
|
|
24
|
-
} & { [K in Exclude<keyof I, keyof Compression>]: never; }>(base?: I
|
|
24
|
+
} & { [K in Exclude<keyof I, keyof Compression>]: never; }>(base?: I): Compression;
|
|
25
25
|
fromPartial<I_1 extends {
|
|
26
26
|
type?: Compression_TYPE | undefined;
|
|
27
27
|
data?: Uint8Array | undefined;
|
package/dist/cjs/proto/TRI.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export declare const Encryption: {
|
|
|
41
41
|
iv?: Uint8Array | undefined;
|
|
42
42
|
mac?: Uint8Array | undefined;
|
|
43
43
|
encoding?: string | undefined;
|
|
44
|
-
} & { [K in Exclude<keyof I, keyof Encryption>]: never; }>(base?: I
|
|
44
|
+
} & { [K in Exclude<keyof I, keyof Encryption>]: never; }>(base?: I): Encryption;
|
|
45
45
|
fromPartial<I_1 extends {
|
|
46
46
|
algo?: string | undefined;
|
|
47
47
|
key?: Uint8Array | undefined;
|
|
@@ -71,7 +71,7 @@ export declare const Hash: {
|
|
|
71
71
|
} & {
|
|
72
72
|
algo?: string | undefined;
|
|
73
73
|
hash?: Uint8Array | undefined;
|
|
74
|
-
} & { [K in Exclude<keyof I, keyof Hash>]: never; }>(base?: I
|
|
74
|
+
} & { [K in Exclude<keyof I, keyof Hash>]: never; }>(base?: I): Hash;
|
|
75
75
|
fromPartial<I_1 extends {
|
|
76
76
|
algo?: string | undefined;
|
|
77
77
|
hash?: Uint8Array | undefined;
|
|
@@ -136,7 +136,7 @@ export declare const TRI: {
|
|
|
136
136
|
encoding?: string | undefined;
|
|
137
137
|
} & { [K_2 in Exclude<keyof I["encryption"], keyof Encryption>]: never; }) | undefined;
|
|
138
138
|
mrsigner?: Uint8Array | undefined;
|
|
139
|
-
} & { [K_3 in Exclude<keyof I, keyof TRI>]: never; }>(base?: I
|
|
139
|
+
} & { [K_3 in Exclude<keyof I, keyof TRI>]: never; }>(base?: I): TRI;
|
|
140
140
|
fromPartial<I_1 extends {
|
|
141
141
|
solutionHashes?: {
|
|
142
142
|
algo?: string | undefined;
|
|
@@ -133,7 +133,7 @@ export declare const TeeProperties: {
|
|
|
133
133
|
memBandwidth?: number | undefined;
|
|
134
134
|
memConfirmedSize?: number | undefined;
|
|
135
135
|
} & { [K_4 in Exclude<keyof I["teeRunMemoryBenchmark"], keyof TeeRunMemoryBenchmark>]: never; }) | undefined;
|
|
136
|
-
} & { [K_5 in Exclude<keyof I, keyof TeeProperties>]: never; }>(base?: I
|
|
136
|
+
} & { [K_5 in Exclude<keyof I, keyof TeeProperties>]: never; }>(base?: I): TeeProperties;
|
|
137
137
|
fromPartial<I_1 extends {
|
|
138
138
|
teeDeviceInfo?: {
|
|
139
139
|
cpus?: {
|
|
@@ -294,7 +294,7 @@ export declare const TeeDeviceInfo: {
|
|
|
294
294
|
memSize?: number | undefined;
|
|
295
295
|
totalPhysicalCores?: number | undefined;
|
|
296
296
|
totalLogicalCores?: number | undefined;
|
|
297
|
-
} & { [K_2 in Exclude<keyof I, keyof TeeDeviceInfo>]: never; }>(base?: I
|
|
297
|
+
} & { [K_2 in Exclude<keyof I, keyof TeeDeviceInfo>]: never; }>(base?: I): TeeDeviceInfo;
|
|
298
298
|
fromPartial<I_1 extends {
|
|
299
299
|
cpus?: {
|
|
300
300
|
vendorId?: string | undefined;
|
|
@@ -375,7 +375,7 @@ export declare const Cpus: {
|
|
|
375
375
|
logicalCores?: number | undefined;
|
|
376
376
|
baseFreq?: number | undefined;
|
|
377
377
|
maxFreq?: number | undefined;
|
|
378
|
-
} & { [K in Exclude<keyof I, keyof Cpus>]: never; }>(base?: I
|
|
378
|
+
} & { [K in Exclude<keyof I, keyof Cpus>]: never; }>(base?: I): Cpus;
|
|
379
379
|
fromPartial<I_1 extends {
|
|
380
380
|
vendorId?: string | undefined;
|
|
381
381
|
cpuFamily?: number | undefined;
|
|
@@ -409,7 +409,7 @@ export declare const TeeRunCpuBenchmark: {
|
|
|
409
409
|
cpuScore?: number | undefined;
|
|
410
410
|
cpuBenchmark?: string | undefined;
|
|
411
411
|
cpuCoresCount?: number | undefined;
|
|
412
|
-
} & { [K in Exclude<keyof I, keyof TeeRunCpuBenchmark>]: never; }>(base?: I
|
|
412
|
+
} & { [K in Exclude<keyof I, keyof TeeRunCpuBenchmark>]: never; }>(base?: I): TeeRunCpuBenchmark;
|
|
413
413
|
fromPartial<I_1 extends {
|
|
414
414
|
cpuScore?: number | undefined;
|
|
415
415
|
cpuBenchmark?: string | undefined;
|
|
@@ -431,7 +431,7 @@ export declare const TeeRunMemoryBenchmark: {
|
|
|
431
431
|
} & {
|
|
432
432
|
memBandwidth?: number | undefined;
|
|
433
433
|
memConfirmedSize?: number | undefined;
|
|
434
|
-
} & { [K in Exclude<keyof I, keyof TeeRunMemoryBenchmark>]: never; }>(base?: I
|
|
434
|
+
} & { [K in Exclude<keyof I, keyof TeeRunMemoryBenchmark>]: never; }>(base?: I): TeeRunMemoryBenchmark;
|
|
435
435
|
fromPartial<I_1 extends {
|
|
436
436
|
memBandwidth?: number | undefined;
|
|
437
437
|
memConfirmedSize?: number | undefined;
|