@super-protocol/sdk-js 3.0.5 → 3.0.7

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.
Files changed (47) hide show
  1. package/dist/cjs/constants.d.ts +1 -1
  2. package/dist/cjs/constants.js +116 -17
  3. package/dist/cjs/contracts/abi.d.ts +18 -18
  4. package/dist/cjs/contracts/abi.js +24 -24
  5. package/dist/cjs/crypto/types.d.ts +4 -0
  6. package/dist/cjs/crypto/utils.d.ts +3 -0
  7. package/dist/cjs/crypto/utils.js +50 -2
  8. package/dist/cjs/models/Order.d.ts +3 -2
  9. package/dist/cjs/models/Order.js +18 -7
  10. package/dist/cjs/proto/Hash.d.ts +37 -0
  11. package/dist/cjs/proto/Hash.js +104 -0
  12. package/dist/cjs/proto/OrderReport.d.ts +539 -0
  13. package/dist/cjs/proto/OrderReport.js +300 -0
  14. package/dist/cjs/proto/TRI.d.ts +1 -24
  15. package/dist/cjs/proto/TRI.js +13 -78
  16. package/dist/cjs/proto/TeeDeviceInfo.d.ts +292 -0
  17. package/dist/cjs/proto/TeeDeviceInfo.js +491 -0
  18. package/dist/cjs/tee/OrderReportService.d.ts +11 -0
  19. package/dist/cjs/tee/OrderReportService.js +97 -0
  20. package/dist/cjs/tee/TeeCertificateService.d.ts +1 -0
  21. package/dist/cjs/tee/TeeCertificateService.js +5 -1
  22. package/dist/mjs/constants.d.ts +1 -1
  23. package/dist/mjs/constants.js +116 -17
  24. package/dist/mjs/contracts/abi.d.ts +18 -18
  25. package/dist/mjs/contracts/abi.js +24 -24
  26. package/dist/mjs/crypto/types.d.ts +4 -0
  27. package/dist/mjs/crypto/utils.d.ts +3 -0
  28. package/dist/mjs/crypto/utils.js +45 -1
  29. package/dist/mjs/models/Order.d.ts +3 -2
  30. package/dist/mjs/models/Order.js +18 -7
  31. package/dist/mjs/proto/Hash.d.ts +37 -0
  32. package/dist/mjs/proto/Hash.js +98 -0
  33. package/dist/mjs/proto/OrderReport.d.ts +539 -0
  34. package/dist/mjs/proto/OrderReport.js +294 -0
  35. package/dist/mjs/proto/TRI.d.ts +1 -24
  36. package/dist/mjs/proto/TRI.js +2 -67
  37. package/dist/mjs/proto/TeeDeviceInfo.d.ts +292 -0
  38. package/dist/mjs/proto/TeeDeviceInfo.js +485 -0
  39. package/dist/mjs/tee/OrderReportService.d.ts +11 -0
  40. package/dist/mjs/tee/OrderReportService.js +90 -0
  41. package/dist/mjs/tee/TeeCertificateService.d.ts +1 -0
  42. package/dist/mjs/tee/TeeCertificateService.js +5 -1
  43. package/package.json +1 -1
  44. package/dist/cjs/proto/TeeProperties.d.ts +0 -453
  45. package/dist/cjs/proto/TeeProperties.js +0 -503
  46. package/dist/mjs/proto/TeeProperties.d.ts +0 -453
  47. package/dist/mjs/proto/TeeProperties.js +0 -497
@@ -8,3 +8,7 @@ export type AsymmetricKeys = {
8
8
  };
9
9
  export type SymmetricKey = Buffer;
10
10
  export type CryptoKeyType<T extends CryptoAlgorithm> = T extends CryptoAlgorithm.ECIES ? AsymmetricKeys : T extends CryptoAlgorithm.AES ? SymmetricKey : never;
11
+ export interface DirHashContents {
12
+ entries: Record<string, string>;
13
+ hash: string;
14
+ }
@@ -1,3 +1,5 @@
1
+ import { Hash } from '@super-protocol/dto-js';
2
+ import { DirHashContents } from './types.js';
1
3
  /**
2
4
  * Here would be better to check cipher type using
3
5
  * ```
@@ -11,3 +13,4 @@ export declare const isOCB: (cipher: string) => boolean;
11
13
  export declare const isECB: (cipher: string) => boolean;
12
14
  export declare const isRC4: (cipher: string) => boolean;
13
15
  export declare const isAuthTagRequired: (cipherName: string) => boolean;
16
+ export declare const getDirHashFileContents: (entries: Record<string, string | Hash>) => Promise<DirHashContents>;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAuthTagRequired = exports.isRC4 = exports.isECB = exports.isOCB = exports.isGCM = exports.isCCM = void 0;
6
+ exports.getDirHashFileContents = exports.isAuthTagRequired = exports.isRC4 = exports.isECB = exports.isOCB = exports.isGCM = exports.isCCM = void 0;
7
+ const dto_js_1 = require("@super-protocol/dto-js");
8
+ const Crypto_js_1 = __importDefault(require("./Crypto.js"));
4
9
  /**
5
10
  * Here would be better to check cipher type using
6
11
  * ```
@@ -22,4 +27,47 @@ const isAuthTagRequired = (cipherName) => {
22
27
  return (0, exports.isCCM)(cipherName) || (0, exports.isGCM)(cipherName) || (0, exports.isOCB)(cipherName);
23
28
  };
24
29
  exports.isAuthTagRequired = isAuthTagRequired;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNJLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssbUJBQW1CLENBQUM7QUFEM0MsUUFBQSxLQUFLLFNBQ3NDO0FBQ2pELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQXpELFFBQUEsS0FBSyxTQUFvRDtBQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUF6RCxRQUFBLEtBQUssU0FBb0Q7QUFDL0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLFVBQVUsQ0FBQztBQUQxRCxRQUFBLEtBQUssU0FDcUQ7QUFDaEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBMUQsUUFBQSxLQUFLLFNBQXFEO0FBRWhFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxVQUFrQixFQUFXLEVBQUU7SUFDL0QsT0FBTyxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsSUFBSSxJQUFBLGFBQUssRUFBQyxVQUFVLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFGVyxRQUFBLGlCQUFpQixxQkFFNUIifQ==
30
+ const getDirHashFileContents = async (entries) => {
31
+ const sortedEntries = Object.entries(entries).map(([key, hash]) => {
32
+ if (typeof hash === 'string') {
33
+ const match = hash.match(/^([^:]+):(.+)$/);
34
+ if (match) {
35
+ return { key, algo: match[1], hash: match[2], encoding: dto_js_1.Encoding.hex, encodedHash: hash };
36
+ }
37
+ }
38
+ else {
39
+ const hashHex = Buffer.from(hash.hash, hash.encoding).toString('hex');
40
+ return {
41
+ key,
42
+ algo: hash.algo,
43
+ hash: hash.hash,
44
+ encoding: hash.encoding,
45
+ encodedHash: `${hash.algo}:${hashHex}`,
46
+ };
47
+ }
48
+ throw new Error(`Invalid hash format for file ${key}: ${hash}`);
49
+ });
50
+ let buffer = Buffer.alloc(0);
51
+ sortedEntries.sort((a, b) => {
52
+ return a.encodedHash.localeCompare(b.encodedHash);
53
+ });
54
+ sortedEntries.forEach((hash) => {
55
+ buffer = Buffer.concat([
56
+ buffer,
57
+ Buffer.from(hash.key, 'utf-8'),
58
+ Buffer.from(hash.hash, hash.encoding),
59
+ ]);
60
+ });
61
+ const dirHash = await Crypto_js_1.default.createHash(buffer, {
62
+ algo: dto_js_1.HashAlgorithm.SHA256,
63
+ encoding: dto_js_1.Encoding.hex,
64
+ });
65
+ return {
66
+ entries: Object.fromEntries(sortedEntries.map((hash) => {
67
+ return [hash.key, hash.encodedHash];
68
+ })),
69
+ hash: `${dirHash.algo}:${dirHash.hash}`,
70
+ };
71
+ };
72
+ exports.getDirHashFileContents = getDirHashFileContents;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUF1RTtBQUN2RSw0REFBaUM7QUFHakM7Ozs7OztHQU1HO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQztBQUQzQyxRQUFBLEtBQUssU0FDc0M7QUFDakQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFBekQsUUFBQSxLQUFLLFNBQW9EO0FBQy9ELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQXpELFFBQUEsS0FBSyxTQUFvRDtBQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssVUFBVSxDQUFDO0FBRDFELFFBQUEsS0FBSyxTQUNxRDtBQUNoRSxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUExRCxRQUFBLEtBQUssU0FBcUQ7QUFFaEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFVBQWtCLEVBQVcsRUFBRTtJQUMvRCxPQUFPLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUEsYUFBSyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3JFLENBQUMsQ0FBQztB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
@@ -1,4 +1,5 @@
1
1
  import { OrderInfo, OrderResult, ExtendedOrderInfo, OrderStatus, OrderUsage, Origins, TransactionOptions, BlockchainId, TokenAmount, OrderSlots } from '../types/index.js';
2
+ import { OrderReport } from '@super-protocol/dto-js';
2
3
  declare class Order {
3
4
  private static contract;
4
5
  private logger;
@@ -24,8 +25,8 @@ declare class Order {
24
25
  getParentOrder(): Promise<BlockchainId>;
25
26
  getOptionsDepositSpent(): Promise<TokenAmount>;
26
27
  getSelectedUsage(): Promise<OrderUsage>;
27
- getCertificate(): Promise<string>;
28
- setCertificate(certificate?: string, transactionOptions?: TransactionOptions): Promise<void>;
28
+ getOrderReport(): Promise<OrderReport | undefined>;
29
+ setOrderReport(orderReport: OrderReport, transactionOptions?: TransactionOptions): Promise<void>;
29
30
  /**
30
31
  * Function for fetching hold deposits sum of the order and its suborders
31
32
  */
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const index_js_1 = require("../types/index.js");
16
+ const web3_1 = require("web3");
16
17
  const logger_js_1 = __importDefault(require("../logger.js"));
17
18
  const helper_js_1 = require("../utils/helper.js");
18
19
  const index_js_2 = require("../connectors/index.js");
@@ -20,6 +21,7 @@ const TeeOffers_js_1 = __importDefault(require("../staticModels/TeeOffers.js"));
20
21
  const TxManager_js_1 = __importDefault(require("../utils/TxManager.js"));
21
22
  const index_js_3 = require("../utils/helpers/index.js");
22
23
  const constants_js_1 = require("../constants.js");
24
+ const OrderReportService_js_1 = require("../tee/OrderReportService.js");
23
25
  class Order {
24
26
  static contract;
25
27
  logger;
@@ -128,12 +130,21 @@ class Order {
128
130
  this.selectedUsage.optionUsage = this.selectedUsage.optionUsage.map((usage) => (0, helper_js_1.formatUsage)(usage));
129
131
  return this.selectedUsage;
130
132
  }
131
- getCertificate() {
132
- return Order.contract.methods.getOrderCertificate(this.id).call();
133
+ async getOrderReport() {
134
+ const encodedOrderReportHex = await Order.contract.methods
135
+ .getOrderReport(this.id)
136
+ .call();
137
+ const encodedOrderReportBytes = web3_1.utils.hexToBytes(encodedOrderReportHex);
138
+ if (!encodedOrderReportBytes.length) {
139
+ return;
140
+ }
141
+ return new OrderReportService_js_1.OrderReportService().decode(Buffer.from(encodedOrderReportBytes));
133
142
  }
134
- async setCertificate(certificate = '', transactionOptions) {
143
+ async setOrderReport(orderReport, transactionOptions) {
135
144
  (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
136
- await TxManager_js_1.default.execute(Order.contract.methods.setOrderCertificate(this.id, certificate), transactionOptions);
145
+ const encodedOrderReport = await new OrderReportService_js_1.OrderReportService().encode(orderReport);
146
+ const hex = web3_1.utils.bytesToHex(encodedOrderReport);
147
+ await TxManager_js_1.default.execute(Order.contract.methods.setOrderReport(this.id, hex), transactionOptions);
137
148
  }
138
149
  /**
139
150
  * Function for fetching hold deposits sum of the order and its suborders
@@ -334,13 +345,13 @@ __decorate([
334
345
  __metadata("design:type", Function),
335
346
  __metadata("design:paramtypes", []),
336
347
  __metadata("design:returntype", Promise)
337
- ], Order.prototype, "getCertificate", null);
348
+ ], Order.prototype, "getOrderReport", null);
338
349
  __decorate([
339
350
  (0, helper_js_1.incrementMethodCall)(),
340
351
  __metadata("design:type", Function),
341
352
  __metadata("design:paramtypes", [Object, Object]),
342
353
  __metadata("design:returntype", Promise)
343
- ], Order.prototype, "setCertificate", null);
354
+ ], Order.prototype, "setOrderReport", null);
344
355
  __decorate([
345
356
  (0, helper_js_1.incrementMethodCall)(),
346
357
  __metadata("design:type", Function),
@@ -456,4 +467,4 @@ __decorate([
456
467
  __metadata("design:returntype", Promise)
457
468
  ], Order.prototype, "createSubOrders", null);
458
469
  exports.default = Order;
459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBbUIyQjtBQUczQiw2REFBc0M7QUFFdEMsa0RBTzRCO0FBQzVCLHFEQUF1RjtBQUN2RixnRkFBcUQ7QUFDckQseUVBQThDO0FBQzlDLHdEQUE0RDtBQUM1RCxrREFBaUc7QUFNakcsTUFBTSxLQUFLO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFDdEMsTUFBTSxDQUFvQjtJQUUzQixhQUFhLENBQWM7SUFDM0IsU0FBUyxDQUFhO0lBQ3RCLFdBQVcsQ0FBZTtJQUMxQixTQUFTLENBQWtCO0lBQzNCLFdBQVcsQ0FBZ0I7SUFDM0IsUUFBUSxDQUFVO0lBQ2xCLE9BQU8sQ0FBVztJQUNsQixTQUFTLENBQVU7SUFDbkIsRUFBRSxDQUFlO0lBRXhCLFlBQVksT0FBcUI7UUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixLQUFLLENBQUMsUUFBUSxHQUFHLDhCQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFp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
470
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBbUIyQjtBQUMzQiwrQkFBMkQ7QUFFM0QsNkRBQXNDO0FBRXRDLGtEQU80QjtBQUM1QixxREFBdUY7QUFDdkYsZ0ZBQXFEO0FBQ3JELHlFQUE4QztBQUM5Qyx3REFBNEQ7QUFDNUQsa0RBQWlHO0FBTWpHLHdFQUFrRTtBQUVsRSxNQUFNLEtBQUs7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUF1QjtJQUN0QyxNQUFNLENBQW9CO0lBRTNCLGFBQWEsQ0FBYztJQUMzQixTQUFTLENBQWE7SUFDdEIsV0FBVyxDQUFlO0lBQzFCLFNBQVMsQ0FBa0I7SUFDM0IsV0FBVyxDQUFnQjtJQUMzQixRQUFRLENBQVU7SUFDbEIsT0FBTyxDQUFXO0lBQ2xCLFNBQVMsQ0FBVTtJQUNuQixFQUFFLENBQWU7SUFFeEIsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdBQUcsOEJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sS0FBSyxDQUFD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
@@ -0,0 +1,37 @@
1
+ import _m0 from "protobufjs/minimal.js";
2
+ export declare const protobufPackage = "";
3
+ export interface Hash {
4
+ algo: string;
5
+ hash: Uint8Array;
6
+ }
7
+ export declare const Hash: {
8
+ encode(message: Hash, writer?: _m0.Writer): _m0.Writer;
9
+ decode(input: _m0.Reader | Uint8Array, length?: number): Hash;
10
+ fromJSON(object: any): Hash;
11
+ toJSON(message: Hash): unknown;
12
+ create<I extends {
13
+ algo?: string | undefined;
14
+ hash?: Uint8Array | undefined;
15
+ } & {
16
+ algo?: string | undefined;
17
+ hash?: Uint8Array | undefined;
18
+ } & { [K in Exclude<keyof I, keyof Hash>]: never; }>(base?: I | undefined): Hash;
19
+ fromPartial<I_1 extends {
20
+ algo?: string | undefined;
21
+ hash?: Uint8Array | undefined;
22
+ } & {
23
+ algo?: string | undefined;
24
+ hash?: Uint8Array | undefined;
25
+ } & { [K_1 in Exclude<keyof I_1, keyof Hash>]: never; }>(object: I_1): Hash;
26
+ };
27
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
28
+ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
29
+ [K in keyof T]?: DeepPartial<T[K]>;
30
+ } : Partial<T>;
31
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
32
+ export type Exact<P, I extends P> = P extends Builtin ? P : P & {
33
+ [K in keyof P]: Exact<P[K], I[K]>;
34
+ } & {
35
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
36
+ };
37
+ export {};
@@ -0,0 +1,104 @@
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
+ exports.Hash = exports.protobufPackage = void 0;
7
+ /* eslint-disable */
8
+ const minimal_js_1 = __importDefault(require("protobufjs/minimal.js"));
9
+ exports.protobufPackage = "";
10
+ function createBaseHash() {
11
+ return { algo: "", hash: new Uint8Array(0) };
12
+ }
13
+ exports.Hash = {
14
+ encode(message, writer = minimal_js_1.default.Writer.create()) {
15
+ if (message.algo !== "") {
16
+ writer.uint32(10).string(message.algo);
17
+ }
18
+ if (message.hash.length !== 0) {
19
+ writer.uint32(18).bytes(message.hash);
20
+ }
21
+ return writer;
22
+ },
23
+ decode(input, length) {
24
+ const reader = input instanceof minimal_js_1.default.Reader ? input : minimal_js_1.default.Reader.create(input);
25
+ let end = length === undefined ? reader.len : reader.pos + length;
26
+ const message = createBaseHash();
27
+ while (reader.pos < end) {
28
+ const tag = reader.uint32();
29
+ switch (tag >>> 3) {
30
+ case 1:
31
+ if (tag !== 10) {
32
+ break;
33
+ }
34
+ message.algo = reader.string();
35
+ continue;
36
+ case 2:
37
+ if (tag !== 18) {
38
+ break;
39
+ }
40
+ message.hash = reader.bytes();
41
+ continue;
42
+ }
43
+ if ((tag & 7) === 4 || tag === 0) {
44
+ break;
45
+ }
46
+ reader.skipType(tag & 7);
47
+ }
48
+ return message;
49
+ },
50
+ fromJSON(object) {
51
+ return {
52
+ algo: isSet(object.algo) ? globalThis.String(object.algo) : "",
53
+ hash: isSet(object.hash) ? bytesFromBase64(object.hash) : new Uint8Array(0),
54
+ };
55
+ },
56
+ toJSON(message) {
57
+ const obj = {};
58
+ if (message.algo !== "") {
59
+ obj.algo = message.algo;
60
+ }
61
+ if (message.hash.length !== 0) {
62
+ obj.hash = base64FromBytes(message.hash);
63
+ }
64
+ return obj;
65
+ },
66
+ create(base) {
67
+ return exports.Hash.fromPartial(base ?? {});
68
+ },
69
+ fromPartial(object) {
70
+ const message = createBaseHash();
71
+ message.algo = object.algo ?? "";
72
+ message.hash = object.hash ?? new Uint8Array(0);
73
+ return message;
74
+ },
75
+ };
76
+ function bytesFromBase64(b64) {
77
+ if (globalThis.Buffer) {
78
+ return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
79
+ }
80
+ else {
81
+ const bin = globalThis.atob(b64);
82
+ const arr = new Uint8Array(bin.length);
83
+ for (let i = 0; i < bin.length; ++i) {
84
+ arr[i] = bin.charCodeAt(i);
85
+ }
86
+ return arr;
87
+ }
88
+ }
89
+ function base64FromBytes(arr) {
90
+ if (globalThis.Buffer) {
91
+ return globalThis.Buffer.from(arr).toString("base64");
92
+ }
93
+ else {
94
+ const bin = [];
95
+ arr.forEach((byte) => {
96
+ bin.push(globalThis.String.fromCharCode(byte));
97
+ });
98
+ return globalThis.btoa(bin.join(""));
99
+ }
100
+ }
101
+ function isSet(value) {
102
+ return value !== null && value !== undefined;
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm90by9IYXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQix1RUFBd0M7QUFFM0IsUUFBQSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBT2xDLFNBQVMsY0FBYztJQUNyQixPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMvQyxDQUFDO0FBRVksUUFBQSxJQUFJLEdBQUc7SUFDbEIsTUFBTSxDQUFDLE9BQWEsRUFBRSxTQUFxQixvQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDNUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBOEIsRUFBRSxNQUFlO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEtBQUssWUFBWSxvQkFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxHQUFHLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxD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