@super-protocol/sdk-js 3.16.6 → 3.17.1

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 (227) hide show
  1. package/dist/cjs/RIGenerator.d.ts +3 -3
  2. package/dist/cjs/RIGenerator.js +7 -6
  3. package/dist/cjs/TIIGenerator.d.ts +3 -4
  4. package/dist/cjs/TIIGenerator.js +34 -7
  5. package/dist/cjs/TeeInputGeneratorBase.d.ts +3 -3
  6. package/dist/cjs/TeeInputGeneratorBase.js +5 -5
  7. package/dist/cjs/certificates/serializer.d.ts +5 -3
  8. package/dist/cjs/certificates/serializer.js +26 -11
  9. package/dist/cjs/certificates/types.d.ts +1 -1
  10. package/dist/cjs/connectors/BaseConnector.d.ts +3 -3
  11. package/dist/cjs/connectors/BaseConnector.js +1 -1
  12. package/dist/cjs/connectors/BlockchainConnector.js +3 -3
  13. package/dist/cjs/connectors/BlockchainEventsListener.d.ts +2 -2
  14. package/dist/cjs/connectors/BlockchainEventsListener.js +3 -2
  15. package/dist/cjs/constants.d.ts +1 -3
  16. package/dist/cjs/constants.js +3 -7
  17. package/dist/cjs/contracts/abi.d.ts +1067 -1137
  18. package/dist/cjs/contracts/abi.js +1408 -1500
  19. package/dist/cjs/crypto/Crypto.d.ts +10 -13
  20. package/dist/cjs/crypto/Crypto.js +14 -17
  21. package/dist/cjs/crypto/nodejs/AES.d.ts +1 -1
  22. package/dist/cjs/crypto/nodejs/AES.js +2 -2
  23. package/dist/cjs/crypto/nodejs/ARIA.d.ts +1 -1
  24. package/dist/cjs/crypto/nodejs/ARIA.js +2 -2
  25. package/dist/cjs/errors/index.d.ts +1 -0
  26. package/dist/cjs/errors/index.js +4 -2
  27. package/dist/cjs/errors/insufficient-funds.error.d.ts +19 -0
  28. package/dist/cjs/errors/insufficient-funds.error.js +57 -0
  29. package/dist/cjs/index.d.ts +3 -6
  30. package/dist/cjs/index.js +6 -9
  31. package/dist/cjs/models/Offer.d.ts +16 -1
  32. package/dist/cjs/models/Offer.js +59 -9
  33. package/dist/cjs/models/Order.d.ts +1 -1
  34. package/dist/cjs/models/Order.js +11 -15
  35. package/dist/cjs/models/Provider.d.ts +0 -1
  36. package/dist/cjs/models/Provider.js +1 -7
  37. package/dist/cjs/models/TCB.d.ts +1 -28
  38. package/dist/cjs/models/TCB.js +1 -61
  39. package/dist/cjs/models/TeeOffer.d.ts +3 -18
  40. package/dist/cjs/models/TeeOffer.js +20 -106
  41. package/dist/cjs/providers/storage/S3StorageProvider.js +5 -5
  42. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
  43. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +7 -7
  44. package/dist/cjs/providers/storage/fs-storage-provider.js +35 -15
  45. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +1 -2
  46. package/dist/cjs/staticModels/Consensus.d.ts +5 -16
  47. package/dist/cjs/staticModels/Consensus.js +17 -86
  48. package/dist/cjs/staticModels/Offers.d.ts +4 -1
  49. package/dist/cjs/staticModels/Offers.js +9 -8
  50. package/dist/cjs/staticModels/OffersCommon.d.ts +3 -1
  51. package/dist/cjs/staticModels/OffersCommon.js +6 -2
  52. package/dist/cjs/staticModels/Orders.js +12 -11
  53. package/dist/cjs/staticModels/ProviderRewards.js +2 -2
  54. package/dist/cjs/staticModels/StaticModel.js +5 -5
  55. package/dist/cjs/staticModels/SuperproToken.d.ts +7 -7
  56. package/dist/cjs/staticModels/SuperproToken.js +3 -3
  57. package/dist/cjs/staticModels/TeeOffers.d.ts +1 -7
  58. package/dist/cjs/staticModels/TeeOffers.js +11 -20
  59. package/dist/cjs/store.d.ts +0 -1
  60. package/dist/cjs/store.js +1 -2
  61. package/dist/cjs/tee/TeeBlockVerifier.d.ts +1 -2
  62. package/dist/cjs/tee/TeeBlockVerifier.js +17 -24
  63. package/dist/cjs/tee/TeeCertificateService.d.ts +1 -1
  64. package/dist/cjs/tee/TeeCertificateService.js +6 -10
  65. package/dist/cjs/tee/statuses.d.ts +0 -7
  66. package/dist/cjs/tee/statuses.js +2 -10
  67. package/dist/cjs/types/Consensus.d.ts +10 -31
  68. package/dist/cjs/types/Consensus.js +2 -10
  69. package/dist/cjs/types/Offer.d.ts +5 -0
  70. package/dist/cjs/types/Order.d.ts +26 -21
  71. package/dist/cjs/types/Order.js +24 -17
  72. package/dist/cjs/types/index.d.ts +0 -1
  73. package/dist/cjs/types/index.js +1 -2
  74. package/dist/cjs/utils/CryptoKeysTransformer.js +5 -5
  75. package/dist/cjs/utils/TxManager.js +21 -5
  76. package/dist/cjs/utils/helper.d.ts +2 -8
  77. package/dist/cjs/utils/helper.js +6 -75
  78. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
  79. package/dist/cjs/utils/helpers/OrderArgsHelper.js +5 -5
  80. package/dist/cjs/utils/helpers/index.d.ts +1 -0
  81. package/dist/cjs/utils/helpers/index.js +2 -1
  82. package/dist/cjs/utils/helpers/streamToBuffer.d.ts +4 -0
  83. package/dist/cjs/utils/helpers/streamToBuffer.js +13 -0
  84. package/dist/cjs/utils/order/process-order.js +3 -4
  85. package/dist/cjs/utils/order/types.d.ts +0 -1
  86. package/dist/cjs/utils/order/versify.js +1 -7
  87. package/dist/cjs/utils/rent-calculator/rent-calculator.js +2 -3
  88. package/dist/cjs/utils/rent-calculator/types.d.ts +0 -1
  89. package/dist/cjs/utils/tcb.d.ts +2 -0
  90. package/dist/cjs/utils/tcb.js +13 -0
  91. package/dist/cjs/utils/types.d.ts +0 -5
  92. package/dist/mjs/RIGenerator.d.ts +3 -3
  93. package/dist/mjs/RIGenerator.js +8 -7
  94. package/dist/mjs/TIIGenerator.d.ts +3 -4
  95. package/dist/mjs/TIIGenerator.js +34 -7
  96. package/dist/mjs/TeeInputGeneratorBase.d.ts +3 -3
  97. package/dist/mjs/TeeInputGeneratorBase.js +5 -5
  98. package/dist/mjs/certificates/serializer.d.ts +5 -3
  99. package/dist/mjs/certificates/serializer.js +26 -11
  100. package/dist/mjs/certificates/types.d.ts +1 -1
  101. package/dist/mjs/connectors/BaseConnector.d.ts +3 -3
  102. package/dist/mjs/connectors/BaseConnector.js +1 -1
  103. package/dist/mjs/connectors/BlockchainConnector.js +3 -3
  104. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +2 -2
  105. package/dist/mjs/connectors/BlockchainEventsListener.js +3 -2
  106. package/dist/mjs/constants.d.ts +1 -3
  107. package/dist/mjs/constants.js +2 -6
  108. package/dist/mjs/contracts/abi.d.ts +1067 -1137
  109. package/dist/mjs/contracts/abi.js +1406 -1498
  110. package/dist/mjs/crypto/Crypto.d.ts +10 -13
  111. package/dist/mjs/crypto/Crypto.js +14 -17
  112. package/dist/mjs/crypto/nodejs/AES.d.ts +1 -1
  113. package/dist/mjs/crypto/nodejs/AES.js +2 -2
  114. package/dist/mjs/crypto/nodejs/ARIA.d.ts +1 -1
  115. package/dist/mjs/crypto/nodejs/ARIA.js +2 -2
  116. package/dist/mjs/errors/index.d.ts +1 -0
  117. package/dist/mjs/errors/index.js +2 -1
  118. package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
  119. package/dist/mjs/errors/insufficient-funds.error.js +53 -0
  120. package/dist/mjs/index.d.ts +3 -6
  121. package/dist/mjs/index.js +4 -7
  122. package/dist/mjs/models/Offer.d.ts +16 -1
  123. package/dist/mjs/models/Offer.js +53 -3
  124. package/dist/mjs/models/Order.d.ts +1 -1
  125. package/dist/mjs/models/Order.js +11 -15
  126. package/dist/mjs/models/Provider.d.ts +0 -1
  127. package/dist/mjs/models/Provider.js +1 -7
  128. package/dist/mjs/models/TCB.d.ts +1 -28
  129. package/dist/mjs/models/TCB.js +2 -62
  130. package/dist/mjs/models/TeeOffer.d.ts +3 -18
  131. package/dist/mjs/models/TeeOffer.js +13 -99
  132. package/dist/mjs/providers/storage/S3StorageProvider.js +5 -5
  133. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
  134. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +7 -7
  135. package/dist/mjs/providers/storage/fs-storage-provider.js +35 -15
  136. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +1 -2
  137. package/dist/mjs/staticModels/Consensus.d.ts +5 -16
  138. package/dist/mjs/staticModels/Consensus.js +18 -87
  139. package/dist/mjs/staticModels/Offers.d.ts +4 -1
  140. package/dist/mjs/staticModels/Offers.js +9 -8
  141. package/dist/mjs/staticModels/OffersCommon.d.ts +3 -1
  142. package/dist/mjs/staticModels/OffersCommon.js +6 -2
  143. package/dist/mjs/staticModels/Orders.js +12 -11
  144. package/dist/mjs/staticModels/ProviderRewards.js +3 -3
  145. package/dist/mjs/staticModels/StaticModel.js +5 -5
  146. package/dist/mjs/staticModels/SuperproToken.d.ts +7 -7
  147. package/dist/mjs/staticModels/SuperproToken.js +3 -3
  148. package/dist/mjs/staticModels/TeeOffers.d.ts +1 -7
  149. package/dist/mjs/staticModels/TeeOffers.js +12 -21
  150. package/dist/mjs/store.d.ts +0 -1
  151. package/dist/mjs/store.js +2 -3
  152. package/dist/mjs/tee/TeeBlockVerifier.d.ts +1 -2
  153. package/dist/mjs/tee/TeeBlockVerifier.js +17 -24
  154. package/dist/mjs/tee/TeeCertificateService.d.ts +1 -1
  155. package/dist/mjs/tee/TeeCertificateService.js +7 -11
  156. package/dist/mjs/tee/statuses.d.ts +0 -7
  157. package/dist/mjs/tee/statuses.js +1 -9
  158. package/dist/mjs/types/Consensus.d.ts +10 -31
  159. package/dist/mjs/types/Consensus.js +1 -9
  160. package/dist/mjs/types/Offer.d.ts +5 -0
  161. package/dist/mjs/types/Order.d.ts +26 -21
  162. package/dist/mjs/types/Order.js +21 -17
  163. package/dist/mjs/types/index.d.ts +0 -1
  164. package/dist/mjs/types/index.js +1 -2
  165. package/dist/mjs/utils/CryptoKeysTransformer.js +5 -5
  166. package/dist/mjs/utils/TxManager.js +21 -5
  167. package/dist/mjs/utils/helper.d.ts +2 -8
  168. package/dist/mjs/utils/helper.js +5 -68
  169. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
  170. package/dist/mjs/utils/helpers/OrderArgsHelper.js +5 -5
  171. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  172. package/dist/mjs/utils/helpers/index.js +2 -1
  173. package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
  174. package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
  175. package/dist/mjs/utils/order/process-order.js +3 -4
  176. package/dist/mjs/utils/order/types.d.ts +0 -1
  177. package/dist/mjs/utils/order/versify.js +1 -7
  178. package/dist/mjs/utils/rent-calculator/rent-calculator.js +2 -3
  179. package/dist/mjs/utils/rent-calculator/types.d.ts +0 -1
  180. package/dist/mjs/utils/tcb.d.ts +2 -0
  181. package/dist/mjs/utils/tcb.js +9 -0
  182. package/dist/mjs/utils/types.d.ts +0 -5
  183. package/package.json +8 -9
  184. package/dist/cjs/contracts/Campaign.d.ts +0 -1198
  185. package/dist/cjs/contracts/Campaign.js +0 -1554
  186. package/dist/cjs/contracts/CampaignTxPart.d.ts +0 -454
  187. package/dist/cjs/contracts/CampaignTxPart.js +0 -592
  188. package/dist/cjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  189. package/dist/cjs/contracts/adminCertificateHelperAbi.js +0 -410
  190. package/dist/cjs/proto/TeeDeviceInfo.d.ts +0 -292
  191. package/dist/cjs/proto/TeeDeviceInfo.js +0 -491
  192. package/dist/cjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  193. package/dist/cjs/staticModels/AdminCertificateHelper.js +0 -99
  194. package/dist/cjs/staticModels/Campaign.d.ts +0 -63
  195. package/dist/cjs/staticModels/Campaign.js +0 -318
  196. package/dist/cjs/staticModels/CampaignTxPart.d.ts +0 -19
  197. package/dist/cjs/staticModels/CampaignTxPart.js +0 -58
  198. package/dist/cjs/tee/QuoteValidator.d.ts +0 -46
  199. package/dist/cjs/tee/QuoteValidator.js +0 -456
  200. package/dist/cjs/tee/TcbSerializer.d.ts +0 -20
  201. package/dist/cjs/tee/TcbSerializer.js +0 -27
  202. package/dist/cjs/types/Campaign.d.ts +0 -55
  203. package/dist/cjs/types/Campaign.js +0 -17
  204. package/dist/cjs/utils/admin-service.d.ts +0 -13
  205. package/dist/cjs/utils/admin-service.js +0 -73
  206. package/dist/mjs/contracts/Campaign.d.ts +0 -1198
  207. package/dist/mjs/contracts/Campaign.js +0 -1551
  208. package/dist/mjs/contracts/CampaignTxPart.d.ts +0 -454
  209. package/dist/mjs/contracts/CampaignTxPart.js +0 -589
  210. package/dist/mjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  211. package/dist/mjs/contracts/adminCertificateHelperAbi.js +0 -407
  212. package/dist/mjs/proto/TeeDeviceInfo.d.ts +0 -292
  213. package/dist/mjs/proto/TeeDeviceInfo.js +0 -485
  214. package/dist/mjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  215. package/dist/mjs/staticModels/AdminCertificateHelper.js +0 -92
  216. package/dist/mjs/staticModels/Campaign.d.ts +0 -63
  217. package/dist/mjs/staticModels/Campaign.js +0 -313
  218. package/dist/mjs/staticModels/CampaignTxPart.d.ts +0 -19
  219. package/dist/mjs/staticModels/CampaignTxPart.js +0 -51
  220. package/dist/mjs/tee/QuoteValidator.d.ts +0 -46
  221. package/dist/mjs/tee/QuoteValidator.js +0 -449
  222. package/dist/mjs/tee/TcbSerializer.d.ts +0 -20
  223. package/dist/mjs/tee/TcbSerializer.js +0 -23
  224. package/dist/mjs/types/Campaign.d.ts +0 -55
  225. package/dist/mjs/types/Campaign.js +0 -14
  226. package/dist/mjs/utils/admin-service.d.ts +0 -13
  227. package/dist/mjs/utils/admin-service.js +0 -66
@@ -1,63 +0,0 @@
1
- import { Contract, TransactionReceipt } from 'web3';
2
- import { abi } from '../contracts/Campaign.js';
3
- import { TransactionOptions, BlockInfo, Status, TotalParticipantInfo, ParticipantScore, MigrationNetwork, TokenAmount, MigrationWithIndex, UpdateTxsArgs } from '../types/index.js';
4
- declare class Campaign {
5
- private static _addressHttps;
6
- private static _addressWss;
7
- private static contractHttps?;
8
- private static contractWss?;
9
- private static readonly logger;
10
- static get addressHttps(): string;
11
- static set addressHttps(newAddress: string);
12
- static createContract(newAddress: string): [Contract<typeof abi>, Contract<typeof abi>];
13
- static get addressWss(): string;
14
- static set addressWss(newAddress: string);
15
- /**
16
- * Checks if contract has been initialized, if not - initialize contract
17
- */
18
- private static checkInit;
19
- private static getContract;
20
- static registeredSrcAddressesByParticipant(participant: string, srcAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
21
- static registeredDstAddresses(dstAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
22
- static registeredSrcAddresses(srcAddress: string, contract?: Contract<typeof abi>): Promise<boolean>;
23
- static getStat(contract?: Contract<typeof abi>): Promise<{
24
- totalMigrations: number;
25
- totalTransactions: number;
26
- totalDeployedMigrations: number;
27
- totalNotDeployedMigrations: number;
28
- totalRevokedMigrations: number;
29
- }>;
30
- static getCompetitionSetup(contract?: Contract<typeof abi>): Promise<{
31
- claimDateAfter: number;
32
- notValidBeforeTs: number;
33
- notValidAfterTs: number;
34
- }>;
35
- static getParticipantByRank(rank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore>;
36
- static getParticipantInfo(participant: string, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo>;
37
- static getTopParticipantsInfo(count: number, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo[]>;
38
- static getMigrationRange(from: number, to: number, status: Status, contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
39
- static getMigrationsByIndexes(indexes: number[], contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
40
- static getTotalParticipants(contract?: Contract<typeof abi>): Promise<number>;
41
- static getTopParticipants(count: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
42
- static getParticipantsAroundRank(centerRank: number, range: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
43
- static getParticipantsByRange(startRank: number, endRank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
44
- static getTotalMigrations(contract?: Contract<typeof abi>): Promise<number>;
45
- static commitMigration(migrationHash: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
46
- static revealMigration(srcNetwork: MigrationNetwork, srcAddress: string, dstAddress: string, srcUrl?: string, dstUrl?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
47
- static submitMigration(srcNetwork: MigrationNetwork, srcAddress: string, dstAddress: string, srcUrl?: string, dstUrl?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
48
- static updateMigrationStatusByApp(migrationIndex: number, isDeployed: boolean, calculatedTransactionsBlockNumber: number | undefined, statusChecks: number, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
49
- static batchUpdateMigrationTransactionsByApp(args: UpdateTxsArgs[], transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
50
- static claimReward(transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
51
- static grantRole(role: string, account: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
52
- static onMigrationCommitted(callback: onMigrationCommittedCallback): () => void;
53
- static onMigrationSubmitted(callback: onMigrationSubmittedCallback): () => void;
54
- static onMigrationStatusUpdated(callback: onMigrationStatusUpdated): () => void;
55
- static onMigrationTransactionsUpdated(callback: onMigrationTransactionsUpdated): () => void;
56
- static onRewardClaimed(callback: onRewardClaimed): () => void;
57
- }
58
- export type onMigrationCommittedCallback = (participant: string, migrationHash: string, block?: BlockInfo) => void;
59
- export type onMigrationSubmittedCallback = (participant: string, migrationIndex: number, block?: BlockInfo) => void;
60
- export type onMigrationStatusUpdated = (migrationIndex: number, status: Status, block?: BlockInfo) => void;
61
- export type onMigrationTransactionsUpdated = (migrationIndex: number, transactions: number, block?: BlockInfo) => void;
62
- export type onRewardClaimed = (participant: number, amount: TokenAmount, block?: BlockInfo) => void;
63
- export default Campaign;
@@ -1,313 +0,0 @@
1
- import { utils } from 'web3';
2
- import rootLogger from '../logger.js';
3
- import { abi } from '../contracts/Campaign.js';
4
- import store from '../store.js';
5
- import { checkIfActionAccountInitialized, cleanWeb3Data } from '../utils/helper.js';
6
- import TxManager from '../utils/TxManager.js';
7
- import { BlockchainEventsListener } from '../connectors/index.js';
8
- import { ethers } from 'ethers';
9
- class Campaign {
10
- static _addressHttps;
11
- static _addressWss;
12
- static contractHttps;
13
- static contractWss;
14
- static logger = rootLogger.child({ className: 'Campaign' });
15
- static get addressHttps() {
16
- return Campaign._addressHttps;
17
- }
18
- static set addressHttps(newAddress) {
19
- Campaign._addressHttps = newAddress;
20
- const [contractHttps, contractWss] = Campaign.createContract(newAddress);
21
- Campaign.contractHttps = contractHttps;
22
- Campaign.contractWss = contractWss;
23
- }
24
- static createContract(newAddress) {
25
- const httpsContract = new store.web3Https.eth.Contract(abi, newAddress, {
26
- provider: store.web3Https.currentProvider,
27
- config: { contractDataInputFill: 'data' },
28
- });
29
- const wssContract = new store.web3Wss.eth.Contract(abi, newAddress, {
30
- provider: store.web3Wss.currentProvider,
31
- config: { contractDataInputFill: 'data' },
32
- });
33
- return [httpsContract, wssContract];
34
- }
35
- static get addressWss() {
36
- return Campaign._addressWss;
37
- }
38
- static set addressWss(newAddress) {
39
- Campaign._addressWss = newAddress;
40
- }
41
- /**
42
- * Checks if contract has been initialized, if not - initialize contract
43
- */
44
- static checkInit(wssConnection = false) {
45
- if (!Campaign.contractHttps) {
46
- throw Error(`Campaign must be initialized before it can be used`);
47
- }
48
- return wssConnection ? Campaign.contractWss : Campaign.contractHttps;
49
- }
50
- static getContract(contract) {
51
- return contract ? contract : Campaign.checkInit();
52
- }
53
- static async registeredSrcAddressesByParticipant(participant, srcAddress, contract) {
54
- const ret = cleanWeb3Data(await this.getContract(contract)
55
- .methods.registeredSrcAddressesByParticipant(participant, srcAddress)
56
- .call());
57
- return ret.initialized;
58
- }
59
- static async registeredDstAddresses(dstAddress, contract) {
60
- return cleanWeb3Data(await this.getContract(contract).methods.registeredDstAddresses(dstAddress).call());
61
- }
62
- static async registeredSrcAddresses(srcAddress, contract) {
63
- const ret = cleanWeb3Data(await this.getContract(contract).methods.registeredSrcAddresses(srcAddress).call());
64
- return ret.initialized;
65
- }
66
- static async getStat(contract) {
67
- const contractResult = await this.getContract(contract).methods.getStat().call();
68
- const result = {
69
- totalMigrations: Number(contractResult.totalMigrations),
70
- totalTransactions: Number(contractResult._totalTransactions),
71
- totalDeployedMigrations: Number(contractResult._totalDeployedMigrations),
72
- totalNotDeployedMigrations: Number(contractResult._totalNotDeployedMigrations),
73
- totalRevokedMigrations: Number(contractResult._totalRevokedMigrations),
74
- };
75
- return result;
76
- }
77
- static async getCompetitionSetup(contract) {
78
- const contractResult = await this.getContract(contract).methods.getCompetitionSetup().call();
79
- const result = {
80
- claimDateAfter: Number(contractResult.claimDateAfter),
81
- notValidBeforeTs: Number(contractResult.notValidBeforeTs),
82
- notValidAfterTs: Number(contractResult.notValidAfterTs),
83
- };
84
- return result;
85
- }
86
- static async getParticipantByRank(rank, contract) {
87
- return cleanWeb3Data(await this.getContract(contract).methods.getParticipantByRank(rank).call());
88
- }
89
- static async getParticipantInfo(participant, contract) {
90
- return cleanWeb3Data(await this.getContract(contract).methods.getParticipantInfo(participant).call());
91
- }
92
- static async getTopParticipantsInfo(count, contract) {
93
- return cleanWeb3Data(await this.getContract(contract).methods.getTopParticipantsInfo(count).call());
94
- }
95
- static async getMigrationRange(from, to, status, contract) {
96
- const contents = (await this.getContract(contract).methods.getMigrationRange(from, to, status).call()).map((migrationWithIndex) => {
97
- const migration = cleanWeb3Data(migrationWithIndex.migration);
98
- const cleanedContentWithIndex = {
99
- migration: {
100
- ...migration,
101
- score: Number(migration.score),
102
- sourceNetwork: Number(migration.sourceNetwork),
103
- status: Number(migration.status),
104
- submittedTimestamp: Number(migration.submittedTimestamp),
105
- calculatedTransactionsBlockNumber: Number(migration.calculatedTransactionsBlockNumber),
106
- transactions: Number(migration.transactions),
107
- },
108
- index: Number(migrationWithIndex.index),
109
- };
110
- return cleanedContentWithIndex;
111
- });
112
- return contents;
113
- }
114
- static async getMigrationsByIndexes(indexes, contract) {
115
- const contents = (await this.getContract(contract).methods.getMigrationsByIndexes(indexes).call()).map((migrationWithIndex) => {
116
- const migration = cleanWeb3Data(migrationWithIndex.migration);
117
- const cleanedContentWithIndex = {
118
- migration: {
119
- ...migration,
120
- score: Number(migration.score),
121
- sourceNetwork: Number(migration.sourceNetwork),
122
- status: Number(migration.status),
123
- submittedTimestamp: Number(migration.submittedTimestamp),
124
- calculatedTransactionsBlockNumber: Number(migration.calculatedTransactionsBlockNumber),
125
- transactions: Number(migration.transactions),
126
- },
127
- index: Number(migrationWithIndex.index),
128
- };
129
- return cleanedContentWithIndex;
130
- });
131
- return contents;
132
- }
133
- static async getTotalParticipants(contract) {
134
- return cleanWeb3Data(await this.getContract(contract).methods.getTotalParticipants().call());
135
- }
136
- static async getTopParticipants(count, contract) {
137
- return cleanWeb3Data(await this.getContract(contract).methods.getTopParticipants(count).call());
138
- }
139
- static async getParticipantsAroundRank(centerRank, range, contract) {
140
- return cleanWeb3Data(await this.getContract(contract).methods.getParticipantsAroundRank(centerRank, range).call());
141
- }
142
- static async getParticipantsByRange(startRank, endRank, contract) {
143
- return cleanWeb3Data(await this.getContract(contract).methods.getParticipantsByRange(startRank, endRank).call());
144
- }
145
- static async getTotalMigrations(contract) {
146
- return Number(await this.getContract(contract).methods.getTotalMigrations().call());
147
- }
148
- static async commitMigration(migrationHash, transactionOptions, checkTxBeforeSend = false) {
149
- const contract = this.checkInit();
150
- checkIfActionAccountInitialized(transactionOptions);
151
- if (checkTxBeforeSend) {
152
- await TxManager.dryRun(contract.methods.commitMigration(migrationHash), transactionOptions);
153
- }
154
- return await TxManager.execute(contract.methods.commitMigration(migrationHash), transactionOptions, Campaign.addressHttps);
155
- }
156
- static async revealMigration(srcNetwork, srcAddress, dstAddress, srcUrl = '', dstUrl = '', transactionOptions, checkTxBeforeSend = false) {
157
- const contract = this.checkInit();
158
- checkIfActionAccountInitialized(transactionOptions);
159
- if (checkTxBeforeSend) {
160
- await TxManager.dryRun(contract.methods.revealMigration(srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl), transactionOptions);
161
- }
162
- return await TxManager.execute(contract.methods.revealMigration(srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl), transactionOptions, Campaign.addressHttps);
163
- }
164
- static async submitMigration(srcNetwork, srcAddress, dstAddress, srcUrl = '', dstUrl = '', transactionOptions, checkTxBeforeSend = false) {
165
- const actionAccount = transactionOptions?.from || store.actionAccount;
166
- if (!actionAccount) {
167
- throw new Error('Action account must be provided');
168
- }
169
- const migrationHash = ethers.utils.keccak256(ethers.utils.defaultAbiCoder.encode(['uint256', 'address', 'address', 'string', 'string', 'address'], [srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl, actionAccount]));
170
- await this.commitMigration(migrationHash, transactionOptions, checkTxBeforeSend);
171
- return this.revealMigration(srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl, transactionOptions, checkTxBeforeSend);
172
- }
173
- static async updateMigrationStatusByApp(migrationIndex, isDeployed, calculatedTransactionsBlockNumber = 0, statusChecks, transactionOptions, checkTxBeforeSend = false) {
174
- const contract = this.checkInit();
175
- checkIfActionAccountInitialized(transactionOptions);
176
- if (checkTxBeforeSend) {
177
- await TxManager.dryRun(contract.methods.updateMigrationStatusByApp(migrationIndex, isDeployed, calculatedTransactionsBlockNumber, statusChecks), transactionOptions);
178
- }
179
- return await TxManager.execute(contract.methods.updateMigrationStatusByApp(migrationIndex, isDeployed, calculatedTransactionsBlockNumber, statusChecks), transactionOptions, Campaign.addressHttps);
180
- }
181
- static async batchUpdateMigrationTransactionsByApp(args, transactionOptions, checkTxBeforeSend = false) {
182
- const contract = this.checkInit();
183
- checkIfActionAccountInitialized(transactionOptions);
184
- if (checkTxBeforeSend) {
185
- await TxManager.dryRun(contract.methods.batchUpdateMigrationTransactionsByApp(args), transactionOptions);
186
- }
187
- return await TxManager.execute(contract.methods.batchUpdateMigrationTransactionsByApp(args), transactionOptions, Campaign.addressHttps);
188
- }
189
- static async claimReward(transactionOptions, checkTxBeforeSend = false) {
190
- const contract = this.checkInit();
191
- checkIfActionAccountInitialized(transactionOptions);
192
- if (checkTxBeforeSend) {
193
- await TxManager.dryRun(contract.methods.claimReward(), transactionOptions);
194
- }
195
- return await TxManager.execute(contract.methods.claimReward(), transactionOptions, Campaign.addressHttps);
196
- }
197
- static async grantRole(role, account, transactionOptions, checkTxBeforeSend = false) {
198
- const contract = this.checkInit();
199
- checkIfActionAccountInitialized(transactionOptions);
200
- role = utils.keccak256(role);
201
- if (checkTxBeforeSend) {
202
- await TxManager.dryRun(contract.methods.grantRole(role, account), transactionOptions);
203
- }
204
- return await TxManager.execute(contract.methods.grantRole(role, account), transactionOptions, Campaign.addressHttps);
205
- }
206
- static onMigrationCommitted(callback) {
207
- const listener = BlockchainEventsListener.getInstance();
208
- const logger = this.logger.child({ method: 'onMigrationCommitted' });
209
- const onData = (event) => {
210
- const parsedEvent = cleanWeb3Data(event.returnValues);
211
- callback(parsedEvent.participant, parsedEvent.migrationHash, {
212
- index: Number(event.blockNumber),
213
- hash: event.blockHash,
214
- });
215
- };
216
- const onError = (error) => {
217
- logger.warn(error);
218
- };
219
- const contract = this.checkInit(true);
220
- return listener.subscribeEvent({
221
- onError,
222
- onData,
223
- event: 'MigrationCommitted',
224
- contract: contract,
225
- });
226
- }
227
- static onMigrationSubmitted(callback) {
228
- const listener = BlockchainEventsListener.getInstance();
229
- const logger = this.logger.child({ method: 'onMigrationSubmitted' });
230
- const onData = (event) => {
231
- const parsedEvent = cleanWeb3Data(event.returnValues);
232
- callback(parsedEvent.participant, parsedEvent.migrationIndex, {
233
- index: Number(event.blockNumber),
234
- hash: event.blockHash,
235
- });
236
- };
237
- const onError = (error) => {
238
- logger.warn(error);
239
- };
240
- const contract = this.checkInit(true);
241
- return listener.subscribeEvent({
242
- onError,
243
- onData,
244
- event: 'MigrationSubmitted',
245
- contract: contract,
246
- });
247
- }
248
- static onMigrationStatusUpdated(callback) {
249
- const listener = BlockchainEventsListener.getInstance();
250
- const logger = this.logger.child({ method: 'onMigrationStatusUpdated' });
251
- const onData = (event) => {
252
- const parsedEvent = cleanWeb3Data(event.returnValues);
253
- callback(parsedEvent.migrationIndex, parsedEvent.status, {
254
- index: Number(event.blockNumber),
255
- hash: event.blockHash,
256
- });
257
- };
258
- const onError = (error) => {
259
- logger.warn(error);
260
- };
261
- const contract = this.checkInit(true);
262
- return listener.subscribeEvent({
263
- onError,
264
- onData,
265
- event: 'MigrationStatusUpdated',
266
- contract: contract,
267
- });
268
- }
269
- static onMigrationTransactionsUpdated(callback) {
270
- const listener = BlockchainEventsListener.getInstance();
271
- const logger = this.logger.child({ method: 'onMigrationTransactionsUpdated' });
272
- const onData = (event) => {
273
- const parsedEvent = cleanWeb3Data(event.returnValues);
274
- callback(parsedEvent.migrationIndex, parsedEvent.transactions, {
275
- index: Number(event.blockNumber),
276
- hash: event.blockHash,
277
- });
278
- };
279
- const onError = (error) => {
280
- logger.warn(error);
281
- };
282
- const contract = this.checkInit(true);
283
- return listener.subscribeEvent({
284
- onError,
285
- onData,
286
- event: 'MigrationTransactionsUpdated',
287
- contract: contract,
288
- });
289
- }
290
- static onRewardClaimed(callback) {
291
- const listener = BlockchainEventsListener.getInstance();
292
- const logger = this.logger.child({ method: 'onRewardClaimed' });
293
- const onData = (event) => {
294
- const parsedEvent = cleanWeb3Data(event.returnValues);
295
- callback(parsedEvent.participant, parsedEvent.amount, {
296
- index: Number(event.blockNumber),
297
- hash: event.blockHash,
298
- });
299
- };
300
- const onError = (error) => {
301
- logger.warn(error);
302
- };
303
- const contract = this.checkInit(true);
304
- return listener.subscribeEvent({
305
- onError,
306
- onData,
307
- event: 'RewardClaimed',
308
- contract: contract,
309
- });
310
- }
311
- }
312
- export default Campaign;
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGljTW9kZWxzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sVUFBVSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWFwRixPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUtsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE1BQU0sUUFBUTtJQUNKLE1BQU0sQ0FBQyxhQUFhLENBQVM7SUFDN0IsTUFBTSxDQUFDLFdBQVcsQ0FBUztJQUMzQixNQUFNLENBQUMsYUFBYSxDQUF3QjtJQUM1QyxNQUFNLENBQUMsV0FBVyxDQUF3QjtJQUMxQyxNQUFNLENBQVUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUV0RSxNQUFNLEtBQUssWUFBWTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU0sS0FBSyxZQUFZLENBQUMsVUFBa0I7UUFDL0MsUUFBUSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7UUFDcEMsTUFBTSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLFFBQVEsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLFFBQVEs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
@@ -1,19 +0,0 @@
1
- import { Contract, TransactionReceipt } from 'web3';
2
- import { abi } from '../contracts/CampaignTxPart.js';
3
- import { TransactionOptions, ParticipantScore } from '../types/index.js';
4
- type UpdateTxsArgs = {
5
- participant: string;
6
- transactions: string | number;
7
- };
8
- export declare class CampaignTxPart {
9
- private static contractHttps?;
10
- private static _addressHttps?;
11
- static set address(newAddress: string);
12
- static createContract(newAddress: string): Contract<typeof abi>;
13
- static get address(): string;
14
- static totalTransactions(): Promise<number>;
15
- static getTopParticipants(count: number): Promise<ParticipantScore[]>;
16
- static batchUpdateMigrationTransactionsByApp(args: UpdateTxsArgs[], transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
17
- private static getContract;
18
- }
19
- export {};
@@ -1,51 +0,0 @@
1
- import { abi } from '../contracts/CampaignTxPart.js';
2
- import store from '../store.js';
3
- import { checkIfActionAccountInitialized, cleanWeb3Data } from '../utils/helper.js';
4
- import TxManager from '../utils/TxManager.js';
5
- export class CampaignTxPart {
6
- static contractHttps;
7
- static _addressHttps;
8
- static set address(newAddress) {
9
- CampaignTxPart._addressHttps = newAddress;
10
- const contractHttps = CampaignTxPart.createContract(newAddress);
11
- CampaignTxPart.contractHttps = contractHttps;
12
- }
13
- static createContract(newAddress) {
14
- if (!store.web3Https) {
15
- throw new Error('web3Https is not initialized');
16
- }
17
- const httpsContract = new store.web3Https.eth.Contract(abi, newAddress, {
18
- config: { contractDataInputFill: 'data' },
19
- });
20
- return httpsContract;
21
- }
22
- static get address() {
23
- if (!CampaignTxPart._addressHttps) {
24
- throw new Error('CampaignTxPart.address is not set');
25
- }
26
- return CampaignTxPart._addressHttps;
27
- }
28
- static async totalTransactions() {
29
- const contract = this.getContract();
30
- return Number(await contract.methods.totalTransactions().call());
31
- }
32
- static async getTopParticipants(count) {
33
- const contract = this.getContract();
34
- return cleanWeb3Data(await contract.methods.getTopParticipants(count).call());
35
- }
36
- static async batchUpdateMigrationTransactionsByApp(args, transactionOptions, checkTxBeforeSend = false) {
37
- const contract = this.getContract();
38
- checkIfActionAccountInitialized(transactionOptions);
39
- if (checkTxBeforeSend) {
40
- await TxManager.dryRun(contract.methods.batchUpdateMigrationTransactionsByApp(args), transactionOptions);
41
- }
42
- return await TxManager.execute(contract.methods.batchUpdateMigrationTransactionsByApp(args), transactionOptions, CampaignTxPart.address);
43
- }
44
- static getContract() {
45
- if (!this.contractHttps) {
46
- throw new Error('CampaignTxPart is no initialized');
47
- }
48
- return this.contractHttps;
49
- }
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ25UeFBhcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGljTW9kZWxzL0NhbXBhaWduVHhQYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRCxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFFaEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBTzlDLE1BQU0sT0FBTyxjQUFjO0lBQ2pCLE1BQU0sQ0FBQyxhQUFhLENBQXdCO0lBQzVDLE1BQU0sQ0FBQyxhQUFhLENBQVU7SUFFL0IsTUFBTSxLQUFLLE9BQU8sQ0FBQyxVQUFrQjtRQUMxQyxjQUFjLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hFLGNBQWMsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQy9DLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQWtCO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQ3RFLE1BQU0sRUFBRSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRTtTQUMxQyxDQUFDLENBQUM7UUFFSCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTSxLQUFLLE9BQU87UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxhQUFhLENBQUMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQ3ZELElBQXFCLEVBQ3JCLGtCQUF1QyxFQUN2QyxpQkFBaUIsR0FBRyxLQUFLO1FBRXpCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQywrQkFBK0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXBELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixNQUFNLFNBQVMsQ0FBQyxNQUFNLENBQ3BCLFFBQVEsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsSUFBSSxDQUFDLEVBQzVELGtCQUFrQixDQUNuQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sTUFBTSxTQUFTLENBQUMsT0FBTyxDQUM1QixRQUFRLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxFQUM1RCxrQkFBa0IsRUFDbEIsY0FBYyxDQUFDLE9BQU8sQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7Q0FDRiJ9
@@ -1,46 +0,0 @@
1
- /// <reference types="node" />
2
- import { GetSignatureOptions } from './types.js';
3
- import { QuoteValidationStatuses } from './statuses.js';
4
- import { CheckSignatureOptions } from './TeeSignatureVerifier.js';
5
- import { ChallengeType } from '@super-protocol/pki-common';
6
- export interface ValidationResult {
7
- quoteValidationStatus: QuoteValidationStatuses;
8
- description: string;
9
- error?: unknown;
10
- }
11
- export declare class QuoteValidator {
12
- private readonly isDefault;
13
- private readonly baseUrl;
14
- private readonly teeSgxParser;
15
- private readonly teeTdxParser;
16
- private logger;
17
- constructor(baseUrl: string);
18
- static getSignature(mrEnclave: Buffer, challengeType: ChallengeType, options?: GetSignatureOptions): Promise<Buffer>;
19
- static checkSignature(quote: Buffer, options?: CheckSignatureOptions): Promise<void>;
20
- private splitChain;
21
- private findSequenceByOID;
22
- private searchForSequence;
23
- private verifyDataBySignature;
24
- private checkValidDate;
25
- private checkChainForIssuers;
26
- private getCrl;
27
- private checkCertificatesInCrl;
28
- private getCertificates;
29
- private verifyQeReportSignature;
30
- private verifyQeReportData;
31
- private verifyEnclaveReportSignature;
32
- private validateQuoteStructure;
33
- private getSgxExtensionData;
34
- private getDataFromExtension;
35
- private getTcbInfo;
36
- private getQEIdentity;
37
- private getQEIdentityStatus;
38
- private getTcbStatus;
39
- private getQuoteValidationStatus;
40
- private getQuoteValidationStatusDescription;
41
- checkQuote(quote: Uint8Array, dataBlob: Uint8Array): Promise<void>;
42
- checkSignature(quoteBuffer: Buffer): Promise<void>;
43
- validate(quoteBuffer: Buffer): Promise<ValidationResult>;
44
- isQuoteHasUserData(quoteBuffer: Buffer, userDataBuffer: Buffer): Promise<boolean>;
45
- private getSha256Hash;
46
- }