@super-protocol/sdk-js 3.7.2 → 3.7.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.
@@ -1,2 +1,3 @@
1
1
  export * from './helper.js';
2
2
  export * from './types.js';
3
+ export * from './serializer.js';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./helper.js"), exports);
18
18
  __exportStar(require("./types.js"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2VydGlmaWNhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIsNkNBQTJCIn0=
19
+ __exportStar(require("./serializer.js"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2VydGlmaWNhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEI7QUFDNUIsNkNBQTJCO0FBQzNCLGtEQUFnQyJ9
@@ -0,0 +1,5 @@
1
+ export declare class CertificateSerializer {
2
+ static serializeCertChain(certChainPem: string): string;
3
+ static deserializeCertChain(input: string): string;
4
+ static isSerializedCertChain(certChainBase64: string): boolean;
5
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CertificateSerializer = void 0;
4
+ const helper_js_1 = require("./helper.js");
5
+ const CERTS_CHAIN_DELIMITER = ';';
6
+ const CERTS_SERIALIZATION_PREFIX = 'certs:';
7
+ class CertificateSerializer {
8
+ static serializeCertChain(certChainPem) {
9
+ const certsDer = helper_js_1.CertificatesHelper.pemChainToDer(certChainPem);
10
+ return `${CERTS_SERIALIZATION_PREFIX}${certsDer.map((cert) => Buffer.from(cert).toString('base64')).join(CERTS_CHAIN_DELIMITER)}`;
11
+ }
12
+ static deserializeCertChain(input) {
13
+ if (!input.startsWith(CERTS_SERIALIZATION_PREFIX)) {
14
+ throw new Error(`Missing prefix "${CERTS_SERIALIZATION_PREFIX}" in input`);
15
+ }
16
+ const certsDer = input
17
+ .split(CERTS_SERIALIZATION_PREFIX)[1]
18
+ ?.split(CERTS_CHAIN_DELIMITER)
19
+ ?.map((cert) => Buffer.from(cert, 'base64'));
20
+ return helper_js_1.CertificatesHelper.derChainToPem(certsDer);
21
+ }
22
+ static isSerializedCertChain(certChainBase64) {
23
+ return certChainBase64.startsWith(CERTS_SERIALIZATION_PREFIX);
24
+ }
25
+ }
26
+ exports.CertificateSerializer = CertificateSerializer;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZXJ0aWZpY2F0ZXMvc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBaUQ7QUFFakQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFFNUMsTUFBYSxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQW9CO1FBQzVDLE1BQU0sUUFBUSxHQUFHLDhCQUFrQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRSxPQUFPLEdBQUcsMEJBQTBCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO0lBQ3BJLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsMEJBQTBCLFlBQVksQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLO2FBQ25CLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxFQUFFLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztZQUM5QixFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMvQyxPQUFPLDhCQUFrQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLGVBQXVCO1FBQ2xELE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQXRCRCxzREFzQkMifQ==
@@ -14,7 +14,7 @@ export declare const ONE_HOUR: number;
14
14
  export declare const FIVE_MINUTES: number;
15
15
  export declare const BLOCK_SIZE_TO_FETCH_TRANSACTION = 500;
16
16
  export declare const POLYGON_MATIC_EVENT_PATH = "0x0000000000000000000000000000000000001010";
17
- export declare const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 10;
17
+ export declare const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 20;
18
18
  export declare const BLOCKCHAIN_CALL_RETRY_INTERVAL = 3000;
19
19
  export declare const BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
20
20
  export declare const POLYGON_MAIN_CHAIN_ID = 137;
@@ -16,7 +16,7 @@ exports.ONE_HOUR = 60 * 60;
16
16
  exports.FIVE_MINUTES = 5 * 60;
17
17
  exports.BLOCK_SIZE_TO_FETCH_TRANSACTION = 500;
18
18
  exports.POLYGON_MATIC_EVENT_PATH = '0x0000000000000000000000000000000000001010';
19
- exports.BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 10;
19
+ exports.BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 20;
20
20
  exports.BLOCKCHAIN_CALL_RETRY_INTERVAL = 3000;
21
21
  exports.BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
22
22
  exports.POLYGON_MAIN_CHAIN_ID = 137;
@@ -3,4 +3,6 @@ import { TcbUtilityData } from '../types/index.js';
3
3
  export declare class TeeBlockVerifier {
4
4
  private static readonly verifiedTcbs;
5
5
  static verifyTcb(tcb: TCB, utilityData: TcbUtilityData, sgxApiUrl: string): Promise<void>;
6
+ private static verifyWithQuote;
7
+ private static verifyWithCertificates;
6
8
  }
@@ -4,11 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TeeBlockVerifier = void 0;
7
+ const dto_js_1 = require("@super-protocol/dto-js");
7
8
  const logger_js_1 = __importDefault(require("../logger.js"));
8
9
  const config_js_1 = require("../config.js");
9
10
  const QuoteValidator_js_1 = require("./QuoteValidator.js");
10
11
  const TcbSerializer_js_1 = require("./TcbSerializer.js");
11
12
  const Consensus_js_1 = __importDefault(require("../staticModels/Consensus.js"));
13
+ const index_js_1 = require("../certificates/index.js");
14
+ const TeeCertificateService_js_1 = require("./TeeCertificateService.js");
15
+ const index_js_2 = require("../utils/helpers/index.js");
16
+ const constants_js_1 = require("../constants.js");
12
17
  class TeeBlockVerifier {
13
18
  static verifiedTcbs = new Set();
14
19
  static async verifyTcb(tcb, utilityData, sgxApiUrl) {
@@ -17,16 +22,17 @@ class TeeBlockVerifier {
17
22
  logger_js_1.default.trace(`Tcb id = ${tcb.tcbId}, already validated`);
18
23
  return;
19
24
  }
20
- const quote = Buffer.from(utilityData.quote, 'base64');
21
25
  const signedTcbData = {
22
26
  checkingTcbId: tcb.tcbId.toString(),
23
27
  pubKey: utilityData.pubKey,
24
28
  ...(await tcb.getPublicData()),
25
29
  benchmark: (await Consensus_js_1.default.getBenchmarksByTcbIds([tcb.tcbId], [utilityData.teeOfferId]))[tcb.tcbId],
26
30
  };
27
- const validator = new QuoteValidator_js_1.QuoteValidator(sgxApiUrl);
28
- await validator.checkQuote(quote, TcbSerializer_js_1.TcbDataSerializer.serialize(signedTcbData));
29
- await validator.checkSignature(quote);
31
+ const isCert = index_js_1.CertificateSerializer.isSerializedCertChain(utilityData.quote);
32
+ logger_js_1.default.trace({ tcbId: tcb.tcbId.toString() }, `Verifying TCB (isCert=${isCert})`);
33
+ isCert
34
+ ? await TeeBlockVerifier.verifyWithCertificates(utilityData.quote, signedTcbData)
35
+ : await TeeBlockVerifier.verifyWithQuote(utilityData.quote, signedTcbData, sgxApiUrl);
30
36
  // update cache
31
37
  this.verifiedTcbs.add(tcb.tcbId);
32
38
  if (this.verifiedTcbs.size > config_js_1.config.TLB_CACHE_SIZE) {
@@ -36,6 +42,25 @@ class TeeBlockVerifier {
36
42
  }
37
43
  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}`);
38
44
  }
45
+ static async verifyWithQuote(quoteBase64, signedTcbData, sgxApiUrl) {
46
+ const quote = Buffer.from(quoteBase64, dto_js_1.Encoding.base64);
47
+ const validator = new QuoteValidator_js_1.QuoteValidator(sgxApiUrl);
48
+ await validator.checkQuote(quote, TcbSerializer_js_1.TcbDataSerializer.serialize(signedTcbData));
49
+ await validator.checkSignature(quote);
50
+ }
51
+ static async verifyWithCertificates(certs, signedTcbData) {
52
+ const certChain = index_js_1.CertificateSerializer.deserializeCertChain(certs);
53
+ await TeeCertificateService_js_1.TeeCertificateService.validateTeeCertChainOrFail(certChain);
54
+ const userDataHashFromCert = index_js_1.CertificatesHelper.getExtensionValue(certChain, constants_js_1.OID_CUSTOM_EXTENSION_USER_DATA);
55
+ if (!userDataHashFromCert) {
56
+ throw new Error(`TCB is invalid: userData not found in TCB certificate`);
57
+ }
58
+ const signableDataHash = (0, index_js_2.calculateObjectHash)(signedTcbData);
59
+ const signableDataHashBuffer = Buffer.from(signableDataHash.hash, signableDataHash.encoding);
60
+ if (Buffer.compare(userDataHashFromCert, signableDataHashBuffer) !== 0) {
61
+ throw new Error(`TCB is invalid: userData is not match`);
62
+ }
63
+ }
39
64
  }
40
65
  exports.TeeBlockVerifier = TeeBlockVerifier;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQmxvY2tWZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZWUvVGVlQmxvY2tWZXJpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2REFBa0M7QUFDbEMsNENBQXNDO0FBRXRDLDJEQUFxRDtBQUVyRCx5REFBdUQ7QUFDdkQsZ0ZBQXFEO0FBRXJELE1BQWEsZ0JBQWdCO0lBQ25CLE1BQU0sQ0FBVSxZQUFZLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEUsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBUSxFQUFFLFdBQTJCLEVBQUUsU0FBaUI7UUFDN0UsY0FBYztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsbUJBQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sYUFBYSxHQUFHO1lBQ3BCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNuQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDMUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE1BQU0sc0JBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQ3ZGLEdBQUcsQ0FBQyxLQUFLLENBQ1Y7U0FDRixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQ0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsb0NBQWlCLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDOUUsTUFBTSxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLGVBQWU7UUFDZixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxrQkFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQXlCLENBQUM7WUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsbUJBQU0sQ0FBQyxLQUFLLENBQ1YsS0FBSyxFQUNMLFlBQVksS0FBSyx3Q0FBd0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixrQkFBTSxDQUFDLGNBQWMsRUFBRSxDQUN6SCxDQUFDO1FBQ0osQ0FBQztRQUNELG1CQUFNLENBQUMsS0FBSyxDQUNWLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsWUFBWSxHQUFHLENBQUMsS0FBSyxvQ0FBb0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixrQkFBTSxDQUFDLGNBQWMsRUFBRSxDQUN6SCxDQUFDO0lBQ0osQ0FBQzs7QUF0Q0gsNENBdUNDIn0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQmxvY2tWZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZWUvVGVlQmxvY2tWZXJpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFBa0Q7QUFDbEQsNkRBQWtDO0FBQ2xDLDRDQUFzQztBQUV0QywyREFBcUQ7QUFFckQseURBQWdFO0FBQ2hFLGdGQUFxRDtBQUNyRCx1REFBcUY7QUFDckYseUVBQW1FO0FBQ25FLHdEQUFnRTtBQUNoRSxrREFBaUU7QUFFakUsTUFBYSxnQkFBZ0I7SUFDbkIsTUFBTSxDQUFVLFlBQVksR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVwRSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFRLEVBQUUsV0FBMkIsRUFBRSxTQUFpQjtRQUM3RSxjQUFjO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxtQkFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxLQUFLLHFCQUFxQixDQUFDLENBQUM7WUFDekQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRztZQUNwQixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbkMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1lBQzFCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM5QixTQUFTLEVBQUUsQ0FBQyxNQUFNLHNCQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUN2RixHQUFHLENBQUMsS0FBSyxDQUNWO1NBQ0YsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLGdDQUFxQixDQUFDLHFCQUFxQixDQUFDLFdB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
@@ -21,6 +21,7 @@ declare class TxManager {
21
21
  static execute(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions, to?: string): Promise<TransactionReceipt>;
22
22
  static publishTransaction(txData: TransactionDataOptions, transactionOptions?: TransactionOptions, transactionCall?: NonPayableMethodObject): Promise<TransactionReceipt>;
23
23
  private static _requestUnsignedTransaction;
24
+ private static _getReceiptByTxHash;
24
25
  static dryRun<SpecialOutput = unknown>(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions): Promise<SpecialOutput>;
25
26
  private static _contractCallHandling;
26
27
  private static _publishTransaction;
@@ -100,7 +100,10 @@ class TxManager {
100
100
  method: 'eth_sendTransaction',
101
101
  params: [txDataForUnsignedTx],
102
102
  }));
103
- const transactionResultData = await (0, tryWithInterval_js_1.tryWithInterval)({
103
+ return await TxManager._getReceiptByTxHash(txHash);
104
+ }
105
+ static async _getReceiptByTxHash(txHash, web3 = this.web3) {
106
+ return await (0, tryWithInterval_js_1.tryWithInterval)({
104
107
  handler: async () => await web3.eth.getTransactionReceipt(txHash),
105
108
  checkResult: (txHash) => {
106
109
  return { isResultOk: txHash !== null };
@@ -108,7 +111,6 @@ class TxManager {
108
111
  retryInterval: constants_js_1.BLOCKCHAIN_CALL_RETRY_INTERVAL,
109
112
  retryMax: constants_js_1.BLOCKCHAIN_CALL_RETRY_ATTEMPTS,
110
113
  });
111
- return transactionResultData;
112
114
  }
113
115
  static async dryRun(transaction, transactionOptions) {
114
116
  const from = transactionOptions?.from ?? store_js_1.default.actionAccount;
@@ -180,7 +182,16 @@ class TxManager {
180
182
  txHash: signed.transactionHash,
181
183
  txData: lodash_1.default.omit(txData, ['data']),
182
184
  }, 'Publishing signed transaction');
183
- transactionResultData = await TxManager._contractCallHandling(async () => await web3.eth.sendSignedTransaction(signed.rawTransaction));
185
+ transactionResultData = await TxManager._contractCallHandling(async () => {
186
+ const txHash = await new Promise((resolve, _) => {
187
+ web3.eth
188
+ .sendSignedTransaction(signed.rawTransaction)
189
+ .once('transactionHash', (hash) => {
190
+ resolve(hash);
191
+ });
192
+ });
193
+ return await TxManager._getReceiptByTxHash(txHash);
194
+ });
184
195
  TxManager.logger.debug({
185
196
  txHash: signed.transactionHash,
186
197
  txBlockNumber: transactionResultData.blockNumber,
@@ -212,4 +223,4 @@ class TxManager {
212
223
  }
213
224
  }
214
225
  exports.default = TxManager;
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3RUFBNkM7QUFDN0MsNkRBQXNDO0FBQ3RDLDJEQUFnQztBQVFoQywyQ0FLcUI7QUFDckIsOEVBQW1EO0FBQ25ELGtEQUFpRztBQUNqRyxvREFBNEI7QUFFNUIsNERBQW9DO0FBRXBDLHFFQUErRDtBQVEvRCxNQUFNLG9CQUFxQixTQUFRLEtBQUs7SUFDdEIsYUFBYSxDQUFVO0lBQ3ZDLFlBQVksYUFBc0IsRUFBRSxPQUFlO1FBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBYSxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUxELDhFQUtDO0FBSUQsTUFBTSxTQUFTO0lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBTztJQUNsQixNQUFNLENBQUMseUJBQXlCLENBQVU7SUFDMUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxtQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sQ0FBQyxhQUFhLEdBQXdDLEVBQUUsQ0FBQztJQUMvRCxNQUFNLENBQUMsTUFBTSxHQUFzQyxFQUFFLENBQUM7SUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFVLEVBQUUsNEJBQXFDLEtBQUs7UUFDdkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENB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
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx3RUFBNkM7QUFDN0MsNkRBQXNDO0FBQ3RDLDJEQUFnQztBQVFoQywyQ0FLcUI7QUFDckIsOEVBQW1EO0FBQ25ELGtEQUFpRztBQUNqRyxvREFBNEI7QUFFNUIsNERBQW9DO0FBRXBDLHFFQUErRDtBQVEvRCxNQUFNLG9CQUFxQixTQUFRLEtBQUs7SUFDdEIsYUFBYSxDQUFVO0lBQ3ZDLFlBQVksYUFBc0IsRUFBRSxPQUFlO1FBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBYSxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUxELDhFQUtDO0FBSUQsTUFBTSxTQUFTO0lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBTztJQUNsQixNQUFNLENBQUMseUJBQXlCLENBQVU7SUFDMUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxtQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sQ0FBQyxhQUFhLEdBQXdDLEVBQUUsQ0FBQztJQUMvRCxNQUFNLENBQUMsTUFBTSxHQUFzQyxFQUFFLENBQUM7SUFDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFVLEVBQUUsNEJBQXFDLEtBQUs7UUFDdkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsa0JBQWtCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBZTtRQUM3QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTztRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUkseUJBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FDbkIsV0FBbUMsRUFDbkMsa0JBQXVDLEVBQ3ZDLEtBQWEscUJBQVEsQ0FBQyxPQUFPO1FBRTdCLE1BQU0sTUFBTSxHQUEyQjtZQUNyQyxFQUFFO1lBQ0YsSUFBSSxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUU7U0FDOUIsQ0FBQztRQUVGLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FDcEMsTUFBOEIsRUFDOUIsa0JBQXVDLEVBQ3ZDLGVBQXdDO1FBRXhDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUEsMkNBQStCLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVwRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsb0NBQXdCLEVBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQy9FLEdBQUcsa0JBQWtCO1NBQ3RCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsTUFBTSxLQUFLLENBQ1QsNkZBQTZGLENBQzlGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FBOEI7WUFDbEQsR0FBSSxTQUF3QztZQUM1QyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQzNDLG9CQUFvQixFQUFFLElBQUEsMENBQThCLEVBQUMsa0JBQWtCLENBQUM7U0FDekUsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLG9CQUFVLENBQUM7Z0JBQ2xELGFBQWEsRUFBRSxrQkFBSyxDQUFDLGFBQWE7Z0JBQ2xDLE9BQU8sRUFBRSxrQkFBSyxDQUFDLFlBQVk7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUkscUJBQXFCLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNuQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdkUsU0FBUyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUNoRSxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdkUsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FDekUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUM5QyxNQUE4QixFQUM5QixrQkFBNkM7UUFFN0MsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztRQUUxQyxNQUFNLG1CQUFtQixHQUFHO1lBQzFCLElBQUksRUFBRSxJQUFJO1lBQ1YsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztTQUNwQixDQUFDO1FBQ0YsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3BCO1lBQ0UsTUFBTSxFQUFFLGdCQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkQsRUFDRCxpQ0FBaUMsQ0FDbEMsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxJQUFLLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQztZQUM1QyxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLE1BQU0sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQzlCLENBQUMsQ0FBa0IsQ0FBQztRQUVyQixPQUFPLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUN0QyxNQUFjLEVBQ2QsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJO1FBRWhCLE9BQU8sTUFBTSxJQUFBLG9DQUFlLEVBQUM7WUFDM0IsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztZQUNsRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekMsQ0FBQztZQUNELGFBQWEsRUFBRSw2Q0FBOEI7WUFDN0MsUUFBUSxFQUFFLDZDQUE4QjtTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3hCLFdBQW1DLEVBQ25DLGtCQUF1QztRQUV2QyxNQUFNLElBQUksR0FBRyxrQkFBa0IsRUFBRSxJQUFJLElBQUksa0JBQUssQ0FBQyxhQUFhLENBQUM7UUFFN0QsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1YsQ0FBaUIsQ0FBQyxVQUFVLEdBQUksQ0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUkseUJBQXlCLENBQUM7WUFDMUYsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNPLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUksWUFBOEI7UUFDMUUsSUFBSSxNQUFTLENBQUM7UUFDZCxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxZQUFZLEVBQUUsQ0FBQztZQUM5QixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUssS0FBMkIsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3JELE1BQU8sS0FBMkIsQ0FBQyxLQUFLLENBQUM7WUFDM0MsQ0FBQztZQUVELElBQUssS0FBZ0MsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQy9ELE1BQU8sS0FBZ0MsQ0FBQyxVQUFVLENBQUM7WUFDckQsQ0FBQztZQUVELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUN0QyxNQUE4QixFQUM5QixrQkFBNkMsRUFDN0MsZUFBd0M7UUFFeEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLGtCQUFrQixDQUFDO1FBRW5GLE1BQU0sR0FBRztZQUNQLEdBQUcsTUFBTTtZQUNULElBQUk7WUFDSixHQUFHO1lBQ0gsb0JBQW9CO1lBQ3BCLFlBQVk7U0FDYixDQUFDO1FBRUYsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkI7Z0JBQ0UsWUFBWSxFQUFFLGtCQUFrQixDQUFDLEdBQUc7YUFDckMsRUFDRCxnQkFBZ0IsQ0FDakIsQ0FBQztZQUNGLE1BQU0sQ0FBQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxpQkFBaUIsR0FBRztnQkFDeEIsR0FBRyxNQUFNO2dCQUNULEdBQUcsRUFBRSxTQUFTO2FBQ2YsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUM5RCxlQUFlO2dCQUNiLENBQUMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLGlCQUF3QyxDQUFDO2dCQUN2RSxDQUFDLENBQUMsa0JBQUssQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUN4RCxDQUFDO1lBRUYsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFBLGtDQUFzQixFQUFDLFlBQVksRUFBRSxrQkFBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDO1FBQ2pCLDRGQUE0RjtRQUM1RixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVGLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sWUFBWSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDbEQsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLGtCQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQztZQUNILElBQUkscUJBQXlDLENBQUM7WUFDOUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDcEI7b0JBQ0UsTUFBTSxFQUFFLE1BQU0sQ0FBQyxlQUFlO29CQUM5QixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3RDLEVBQ0QsK0JBQStCLENBQ2hDLENBQUM7Z0JBQ0YscUJBQXFCLEdBQUcsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ3ZFLE1BQU0sTUFBTSxHQUFXLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3RELElBQUksQ0FBQyxHQUFHOzZCQUNMLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7NkJBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFOzRCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2hCLENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FBQyxDQUFDO29CQUNILE9BQU8sTUFBTSxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDO2dCQUVILFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNwQjtvQkFDRSxNQUFNLEVBQUUsTUFBTSxDQUFDLGVBQWU7b0JBQzlCLGFBQWEsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO29CQUNoRCxTQUFTLEVBQUUscUJBQXFCLENBQUMsT0FBTztpQkFDekMsRUFDRCxvQkFBb0IsQ0FDckIsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDcEI7b0JBQ0UsTUFBTSxFQUFFLGdCQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QyxFQUNELGlDQUFpQyxDQUNsQyxDQUFDO2dCQUVGLHFCQUFxQixHQUFHLE1BQU0sSUFBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsQ0FBQztZQUVELElBQUksWUFBWTtnQkFBRSxZQUFZLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQU0sQ0FBQyxDQUFDO1lBRXJFLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sQ0FBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLENBQUM7WUFDckQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLElBQUksWUFBWTtnQkFBRSxNQUFNLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFELElBQUssQ0FBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLDBDQUEwQyxDQUFDLEVBQUUsQ0FBQztnQkFDekYsTUFBTSxJQUFJLGlDQUFpQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLG9CQUFvQixDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7O0FBR0gsa0JBQWUsU0FBUyxDQUFDIn0=
@@ -1,2 +1,3 @@
1
1
  export * from './helper.js';
2
2
  export * from './types.js';
3
+ export * from './serializer.js';
@@ -1,3 +1,4 @@
1
1
  export * from './helper.js';
2
2
  export * from './types.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2VydGlmaWNhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDIn0=
3
+ export * from './serializer.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2VydGlmaWNhdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsaUJBQWlCLENBQUMifQ==
@@ -0,0 +1,5 @@
1
+ export declare class CertificateSerializer {
2
+ static serializeCertChain(certChainPem: string): string;
3
+ static deserializeCertChain(input: string): string;
4
+ static isSerializedCertChain(certChainBase64: string): boolean;
5
+ }
@@ -0,0 +1,23 @@
1
+ import { CertificatesHelper } from './helper.js';
2
+ const CERTS_CHAIN_DELIMITER = ';';
3
+ const CERTS_SERIALIZATION_PREFIX = 'certs:';
4
+ export class CertificateSerializer {
5
+ static serializeCertChain(certChainPem) {
6
+ const certsDer = CertificatesHelper.pemChainToDer(certChainPem);
7
+ return `${CERTS_SERIALIZATION_PREFIX}${certsDer.map((cert) => Buffer.from(cert).toString('base64')).join(CERTS_CHAIN_DELIMITER)}`;
8
+ }
9
+ static deserializeCertChain(input) {
10
+ if (!input.startsWith(CERTS_SERIALIZATION_PREFIX)) {
11
+ throw new Error(`Missing prefix "${CERTS_SERIALIZATION_PREFIX}" in input`);
12
+ }
13
+ const certsDer = input
14
+ .split(CERTS_SERIALIZATION_PREFIX)[1]
15
+ ?.split(CERTS_CHAIN_DELIMITER)
16
+ ?.map((cert) => Buffer.from(cert, 'base64'));
17
+ return CertificatesHelper.derChainToPem(certsDer);
18
+ }
19
+ static isSerializedCertChain(certChainBase64) {
20
+ return certChainBase64.startsWith(CERTS_SERIALIZATION_PREFIX);
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jZXJ0aWZpY2F0ZXMvc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFDbEMsTUFBTSwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFFNUMsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsWUFBb0I7UUFDNUMsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWhFLE9BQU8sR0FBRywwQkFBMEIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7SUFDcEksQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQztZQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQiwwQkFBMEIsWUFBWSxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLEtBQUs7YUFDbkIsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLEVBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBQzlCLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsZUFBdUI7UUFDbEQsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGIn0=
@@ -14,7 +14,7 @@ export declare const ONE_HOUR: number;
14
14
  export declare const FIVE_MINUTES: number;
15
15
  export declare const BLOCK_SIZE_TO_FETCH_TRANSACTION = 500;
16
16
  export declare const POLYGON_MATIC_EVENT_PATH = "0x0000000000000000000000000000000000001010";
17
- export declare const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 10;
17
+ export declare const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 20;
18
18
  export declare const BLOCKCHAIN_CALL_RETRY_INTERVAL = 3000;
19
19
  export declare const BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
20
20
  export declare const POLYGON_MAIN_CHAIN_ID = 137;
@@ -13,7 +13,7 @@ export const ONE_HOUR = 60 * 60;
13
13
  export const FIVE_MINUTES = 5 * 60;
14
14
  export const BLOCK_SIZE_TO_FETCH_TRANSACTION = 500;
15
15
  export const POLYGON_MATIC_EVENT_PATH = '0x0000000000000000000000000000000000001010';
16
- export const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 10;
16
+ export const BLOCKCHAIN_CALL_RETRY_ATTEMPTS = 20;
17
17
  export const BLOCKCHAIN_CALL_RETRY_INTERVAL = 3000;
18
18
  export const BLOCKCHAIN_BATCH_REQUEST_TIMEOUT = 10000;
19
19
  export const POLYGON_MAIN_CHAIN_ID = 137;
@@ -3,4 +3,6 @@ import { TcbUtilityData } from '../types/index.js';
3
3
  export declare class TeeBlockVerifier {
4
4
  private static readonly verifiedTcbs;
5
5
  static verifyTcb(tcb: TCB, utilityData: TcbUtilityData, sgxApiUrl: string): Promise<void>;
6
+ private static verifyWithQuote;
7
+ private static verifyWithCertificates;
6
8
  }
@@ -1,8 +1,13 @@
1
+ import { Encoding } from '@super-protocol/dto-js';
1
2
  import logger from '../logger.js';
2
3
  import { config } from '../config.js';
3
4
  import { QuoteValidator } from './QuoteValidator.js';
4
5
  import { TcbDataSerializer } from './TcbSerializer.js';
5
6
  import Consensus from '../staticModels/Consensus.js';
7
+ import { CertificateSerializer, CertificatesHelper } from '../certificates/index.js';
8
+ import { TeeCertificateService } from './TeeCertificateService.js';
9
+ import { calculateObjectHash } from '../utils/helpers/index.js';
10
+ import { OID_CUSTOM_EXTENSION_USER_DATA } from '../constants.js';
6
11
  export class TeeBlockVerifier {
7
12
  static verifiedTcbs = new Set();
8
13
  static async verifyTcb(tcb, utilityData, sgxApiUrl) {
@@ -11,16 +16,17 @@ export class TeeBlockVerifier {
11
16
  logger.trace(`Tcb id = ${tcb.tcbId}, already validated`);
12
17
  return;
13
18
  }
14
- const quote = Buffer.from(utilityData.quote, 'base64');
15
19
  const signedTcbData = {
16
20
  checkingTcbId: tcb.tcbId.toString(),
17
21
  pubKey: utilityData.pubKey,
18
22
  ...(await tcb.getPublicData()),
19
23
  benchmark: (await Consensus.getBenchmarksByTcbIds([tcb.tcbId], [utilityData.teeOfferId]))[tcb.tcbId],
20
24
  };
21
- const validator = new QuoteValidator(sgxApiUrl);
22
- await validator.checkQuote(quote, TcbDataSerializer.serialize(signedTcbData));
23
- await validator.checkSignature(quote);
25
+ const isCert = CertificateSerializer.isSerializedCertChain(utilityData.quote);
26
+ logger.trace({ tcbId: tcb.tcbId.toString() }, `Verifying TCB (isCert=${isCert})`);
27
+ isCert
28
+ ? await TeeBlockVerifier.verifyWithCertificates(utilityData.quote, signedTcbData)
29
+ : await TeeBlockVerifier.verifyWithQuote(utilityData.quote, signedTcbData, sgxApiUrl);
24
30
  // update cache
25
31
  this.verifiedTcbs.add(tcb.tcbId);
26
32
  if (this.verifiedTcbs.size > config.TLB_CACHE_SIZE) {
@@ -30,5 +36,24 @@ export class TeeBlockVerifier {
30
36
  }
31
37
  logger.trace(tcb.tcbId, `TCB id = ${tcb.tcbId} added to the cache. Cache size: ${this.verifiedTcbs.size}, cache limit: ${config.TLB_CACHE_SIZE}`);
32
38
  }
39
+ static async verifyWithQuote(quoteBase64, signedTcbData, sgxApiUrl) {
40
+ const quote = Buffer.from(quoteBase64, Encoding.base64);
41
+ const validator = new QuoteValidator(sgxApiUrl);
42
+ await validator.checkQuote(quote, TcbDataSerializer.serialize(signedTcbData));
43
+ await validator.checkSignature(quote);
44
+ }
45
+ static async verifyWithCertificates(certs, signedTcbData) {
46
+ const certChain = CertificateSerializer.deserializeCertChain(certs);
47
+ await TeeCertificateService.validateTeeCertChainOrFail(certChain);
48
+ const userDataHashFromCert = CertificatesHelper.getExtensionValue(certChain, OID_CUSTOM_EXTENSION_USER_DATA);
49
+ if (!userDataHashFromCert) {
50
+ throw new Error(`TCB is invalid: userData not found in TCB certificate`);
51
+ }
52
+ const signableDataHash = calculateObjectHash(signedTcbData);
53
+ const signableDataHashBuffer = Buffer.from(signableDataHash.hash, signableDataHash.encoding);
54
+ if (Buffer.compare(userDataHashFromCert, signableDataHashBuffer) !== 0) {
55
+ throw new Error(`TCB is invalid: userData is not match`);
56
+ }
57
+ }
33
58
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQmxvY2tWZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZWUvVGVlQmxvY2tWZXJpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxTQUFTLE1BQU0sOEJBQThCLENBQUM7QUFFckQsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixNQUFNLENBQVUsWUFBWSxHQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXBFLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQVEsRUFBRSxXQUEyQixFQUFFLFNBQWlCO1FBQzdFLGNBQWM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sYUFBYSxHQUFHO1lBQ3BCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNuQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDMUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDdkYsR0FBRyxDQUFDLEtBQUssQ0FDVjtTQUNGLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxNQUFNLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxlQUFlO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQXlCLENBQUM7WUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FDVixLQUFLLEVBQ0wsWUFBWSxLQUFLLHdDQUF3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksa0JBQWtCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUNWLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsWUFBWSxHQUFHLENBQUMsS0FBSyxvQ0FBb0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQ3pILENBQUM7SUFDSixDQUFDIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlQmxvY2tWZXJpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZWUvVGVlQmxvY2tWZXJpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBVyxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sU0FBUyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsTUFBTSxDQUFVLFlBQVksR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVwRSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFRLEVBQUUsV0FBMkIsRUFBRSxTQUFpQjtRQUM3RSxjQUFjO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQUsscUJBQXFCLENBQUMsQ0FBQztZQUN6RCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHO1lBQ3BCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNuQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDMUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE1BQU0sU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDdkYsR0FBRyxDQUFDLEtBQUssQ0FDVjtTQUNGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUseUJBQXlCLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEYsTUFBTTtZQUNKLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV4RixlQUFlO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQXlCLENBQUM7WUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FDVixLQUFLLEVBQ0wsWUFBWSxLQUFLLHdDQUF3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksa0JBQWtCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FDekgsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUNWLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsWUFBWSxHQUFHLENBQUMsS0FBSyxvQ0FBb0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLGtCQUFrQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQ3pILENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQ2xDLFdBQW1CLEVBQ25CLGFBQXNCLEVBQ3RCLFNBQWlCO1FBRWpCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxNQUFNLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FDekMsS0FBYSxFQUNiLGFBQXNCO1FBRXRCLE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLE1BQU0scUJBQXFCLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEUsTUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FDL0QsU0FBUyxFQUNULDhCQUE4QixDQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0YsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDIn0=
@@ -21,6 +21,7 @@ declare class TxManager {
21
21
  static execute(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions, to?: string): Promise<TransactionReceipt>;
22
22
  static publishTransaction(txData: TransactionDataOptions, transactionOptions?: TransactionOptions, transactionCall?: NonPayableMethodObject): Promise<TransactionReceipt>;
23
23
  private static _requestUnsignedTransaction;
24
+ private static _getReceiptByTxHash;
24
25
  static dryRun<SpecialOutput = unknown>(transaction: NonPayableMethodObject, transactionOptions?: TransactionOptions): Promise<SpecialOutput>;
25
26
  private static _contractCallHandling;
26
27
  private static _publishTransaction;
@@ -93,7 +93,10 @@ class TxManager {
93
93
  method: 'eth_sendTransaction',
94
94
  params: [txDataForUnsignedTx],
95
95
  }));
96
- const transactionResultData = await tryWithInterval({
96
+ return await TxManager._getReceiptByTxHash(txHash);
97
+ }
98
+ static async _getReceiptByTxHash(txHash, web3 = this.web3) {
99
+ return await tryWithInterval({
97
100
  handler: async () => await web3.eth.getTransactionReceipt(txHash),
98
101
  checkResult: (txHash) => {
99
102
  return { isResultOk: txHash !== null };
@@ -101,7 +104,6 @@ class TxManager {
101
104
  retryInterval: BLOCKCHAIN_CALL_RETRY_INTERVAL,
102
105
  retryMax: BLOCKCHAIN_CALL_RETRY_ATTEMPTS,
103
106
  });
104
- return transactionResultData;
105
107
  }
106
108
  static async dryRun(transaction, transactionOptions) {
107
109
  const from = transactionOptions?.from ?? store.actionAccount;
@@ -173,7 +175,16 @@ class TxManager {
173
175
  txHash: signed.transactionHash,
174
176
  txData: lodash.omit(txData, ['data']),
175
177
  }, 'Publishing signed transaction');
176
- transactionResultData = await TxManager._contractCallHandling(async () => await web3.eth.sendSignedTransaction(signed.rawTransaction));
178
+ transactionResultData = await TxManager._contractCallHandling(async () => {
179
+ const txHash = await new Promise((resolve, _) => {
180
+ web3.eth
181
+ .sendSignedTransaction(signed.rawTransaction)
182
+ .once('transactionHash', (hash) => {
183
+ resolve(hash);
184
+ });
185
+ });
186
+ return await TxManager._getReceiptByTxHash(txHash);
187
+ });
177
188
  TxManager.logger.debug({
178
189
  txHash: signed.transactionHash,
179
190
  txBlockNumber: transactionResultData.blockNumber,
@@ -205,4 +216,4 @@ class TxManager {
205
216
  }
206
217
  }
207
218
  export default TxManager;
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBUWhDLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxRQUFRLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRL0QsTUFBTSxvQkFBcUIsU0FBUSxLQUFLO0lBQ3RCLGFBQWEsQ0FBVTtJQUN2QyxZQUFZLGFBQXNCLEVBQUUsT0FBZTtRQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUlELE1BQU0sU0FBUztJQUNMLE1BQU0sQ0FBQyxJQUFJLENBQU87SUFDbEIsTUFBTSxDQUFDLHlCQUF5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
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R4TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBUWhDLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4QixzQkFBc0IsR0FDdkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxRQUFRLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBRTVCLE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQUVwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRL0QsTUFBTSxvQkFBcUIsU0FBUSxLQUFLO0lBQ3RCLGFBQWEsQ0FBVTtJQUN2QyxZQUFZLGFBQXNCLEVBQUUsT0FBZTtRQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxvQkFBb0I7SUFDekUsWUFBWSxhQUFzQixFQUFFLE9BQWU7UUFDakQsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLG1DQUFtQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUlELE1BQU0sU0FBUztJQUNMLE1BQU0sQ0FBQyxJQUFJLENBQU87SUFDbEIsTUFBTSxDQUFDLHlCQUF5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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/sdk-js",
3
- "version": "3.7.2",
3
+ "version": "3.7.3",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/mjs/index.js",
6
6
  "exports": {