@super-protocol/sdk-js 3.16.4 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/cjs/RIGenerator.d.ts +3 -2
  2. package/dist/cjs/RIGenerator.js +7 -6
  3. package/dist/cjs/TIIGenerator.d.ts +2 -2
  4. package/dist/cjs/TIIGenerator.js +32 -4
  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/versify.js +1 -7
  85. package/dist/cjs/utils/rent-calculator/rent-calculator.js +2 -3
  86. package/dist/cjs/utils/rent-calculator/types.d.ts +0 -1
  87. package/dist/cjs/utils/tcb.d.ts +2 -0
  88. package/dist/cjs/utils/tcb.js +13 -0
  89. package/dist/cjs/utils/types.d.ts +0 -5
  90. package/dist/mjs/RIGenerator.d.ts +3 -2
  91. package/dist/mjs/RIGenerator.js +8 -7
  92. package/dist/mjs/TIIGenerator.d.ts +2 -2
  93. package/dist/mjs/TIIGenerator.js +32 -4
  94. package/dist/mjs/TeeInputGeneratorBase.d.ts +3 -3
  95. package/dist/mjs/TeeInputGeneratorBase.js +5 -5
  96. package/dist/mjs/certificates/serializer.d.ts +5 -3
  97. package/dist/mjs/certificates/serializer.js +26 -11
  98. package/dist/mjs/certificates/types.d.ts +1 -1
  99. package/dist/mjs/connectors/BaseConnector.d.ts +3 -3
  100. package/dist/mjs/connectors/BaseConnector.js +1 -1
  101. package/dist/mjs/connectors/BlockchainConnector.js +3 -3
  102. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +2 -2
  103. package/dist/mjs/connectors/BlockchainEventsListener.js +3 -2
  104. package/dist/mjs/constants.d.ts +1 -3
  105. package/dist/mjs/constants.js +2 -6
  106. package/dist/mjs/contracts/abi.d.ts +1067 -1137
  107. package/dist/mjs/contracts/abi.js +1406 -1498
  108. package/dist/mjs/crypto/Crypto.d.ts +10 -13
  109. package/dist/mjs/crypto/Crypto.js +14 -17
  110. package/dist/mjs/crypto/nodejs/AES.d.ts +1 -1
  111. package/dist/mjs/crypto/nodejs/AES.js +2 -2
  112. package/dist/mjs/crypto/nodejs/ARIA.d.ts +1 -1
  113. package/dist/mjs/crypto/nodejs/ARIA.js +2 -2
  114. package/dist/mjs/errors/index.d.ts +1 -0
  115. package/dist/mjs/errors/index.js +2 -1
  116. package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
  117. package/dist/mjs/errors/insufficient-funds.error.js +53 -0
  118. package/dist/mjs/index.d.ts +3 -6
  119. package/dist/mjs/index.js +4 -7
  120. package/dist/mjs/models/Offer.d.ts +16 -1
  121. package/dist/mjs/models/Offer.js +53 -3
  122. package/dist/mjs/models/Order.d.ts +1 -1
  123. package/dist/mjs/models/Order.js +11 -15
  124. package/dist/mjs/models/Provider.d.ts +0 -1
  125. package/dist/mjs/models/Provider.js +1 -7
  126. package/dist/mjs/models/TCB.d.ts +1 -28
  127. package/dist/mjs/models/TCB.js +2 -62
  128. package/dist/mjs/models/TeeOffer.d.ts +3 -18
  129. package/dist/mjs/models/TeeOffer.js +13 -99
  130. package/dist/mjs/providers/storage/S3StorageProvider.js +5 -5
  131. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
  132. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +7 -7
  133. package/dist/mjs/providers/storage/fs-storage-provider.js +35 -15
  134. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +1 -2
  135. package/dist/mjs/staticModels/Consensus.d.ts +5 -16
  136. package/dist/mjs/staticModels/Consensus.js +18 -87
  137. package/dist/mjs/staticModels/Offers.d.ts +4 -1
  138. package/dist/mjs/staticModels/Offers.js +9 -8
  139. package/dist/mjs/staticModels/OffersCommon.d.ts +3 -1
  140. package/dist/mjs/staticModels/OffersCommon.js +6 -2
  141. package/dist/mjs/staticModels/Orders.js +12 -11
  142. package/dist/mjs/staticModels/ProviderRewards.js +3 -3
  143. package/dist/mjs/staticModels/StaticModel.js +5 -5
  144. package/dist/mjs/staticModels/SuperproToken.d.ts +7 -7
  145. package/dist/mjs/staticModels/SuperproToken.js +3 -3
  146. package/dist/mjs/staticModels/TeeOffers.d.ts +1 -7
  147. package/dist/mjs/staticModels/TeeOffers.js +12 -21
  148. package/dist/mjs/store.d.ts +0 -1
  149. package/dist/mjs/store.js +2 -3
  150. package/dist/mjs/tee/TeeBlockVerifier.d.ts +1 -2
  151. package/dist/mjs/tee/TeeBlockVerifier.js +17 -24
  152. package/dist/mjs/tee/TeeCertificateService.d.ts +1 -1
  153. package/dist/mjs/tee/TeeCertificateService.js +7 -11
  154. package/dist/mjs/tee/statuses.d.ts +0 -7
  155. package/dist/mjs/tee/statuses.js +1 -9
  156. package/dist/mjs/types/Consensus.d.ts +10 -31
  157. package/dist/mjs/types/Consensus.js +1 -9
  158. package/dist/mjs/types/Offer.d.ts +5 -0
  159. package/dist/mjs/types/Order.d.ts +26 -21
  160. package/dist/mjs/types/Order.js +21 -17
  161. package/dist/mjs/types/index.d.ts +0 -1
  162. package/dist/mjs/types/index.js +1 -2
  163. package/dist/mjs/utils/CryptoKeysTransformer.js +5 -5
  164. package/dist/mjs/utils/TxManager.js +21 -5
  165. package/dist/mjs/utils/helper.d.ts +2 -8
  166. package/dist/mjs/utils/helper.js +5 -68
  167. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
  168. package/dist/mjs/utils/helpers/OrderArgsHelper.js +5 -5
  169. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  170. package/dist/mjs/utils/helpers/index.js +2 -1
  171. package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
  172. package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
  173. package/dist/mjs/utils/order/versify.js +1 -7
  174. package/dist/mjs/utils/rent-calculator/rent-calculator.js +2 -3
  175. package/dist/mjs/utils/rent-calculator/types.d.ts +0 -1
  176. package/dist/mjs/utils/tcb.d.ts +2 -0
  177. package/dist/mjs/utils/tcb.js +9 -0
  178. package/dist/mjs/utils/types.d.ts +0 -5
  179. package/package.json +8 -9
  180. package/dist/cjs/contracts/Campaign.d.ts +0 -1198
  181. package/dist/cjs/contracts/Campaign.js +0 -1554
  182. package/dist/cjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  183. package/dist/cjs/contracts/adminCertificateHelperAbi.js +0 -410
  184. package/dist/cjs/proto/TeeDeviceInfo.d.ts +0 -292
  185. package/dist/cjs/proto/TeeDeviceInfo.js +0 -491
  186. package/dist/cjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  187. package/dist/cjs/staticModels/AdminCertificateHelper.js +0 -99
  188. package/dist/cjs/staticModels/Campaign.d.ts +0 -62
  189. package/dist/cjs/staticModels/Campaign.js +0 -318
  190. package/dist/cjs/tee/QuoteValidator.d.ts +0 -46
  191. package/dist/cjs/tee/QuoteValidator.js +0 -456
  192. package/dist/cjs/tee/TcbSerializer.d.ts +0 -20
  193. package/dist/cjs/tee/TcbSerializer.js +0 -27
  194. package/dist/cjs/types/Campaign.d.ts +0 -55
  195. package/dist/cjs/types/Campaign.js +0 -17
  196. package/dist/cjs/utils/admin-service.d.ts +0 -13
  197. package/dist/cjs/utils/admin-service.js +0 -73
  198. package/dist/mjs/contracts/Campaign.d.ts +0 -1198
  199. package/dist/mjs/contracts/Campaign.js +0 -1551
  200. package/dist/mjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
  201. package/dist/mjs/contracts/adminCertificateHelperAbi.js +0 -407
  202. package/dist/mjs/proto/TeeDeviceInfo.d.ts +0 -292
  203. package/dist/mjs/proto/TeeDeviceInfo.js +0 -485
  204. package/dist/mjs/staticModels/AdminCertificateHelper.d.ts +0 -24
  205. package/dist/mjs/staticModels/AdminCertificateHelper.js +0 -92
  206. package/dist/mjs/staticModels/Campaign.d.ts +0 -62
  207. package/dist/mjs/staticModels/Campaign.js +0 -313
  208. package/dist/mjs/tee/QuoteValidator.d.ts +0 -46
  209. package/dist/mjs/tee/QuoteValidator.js +0 -449
  210. package/dist/mjs/tee/TcbSerializer.d.ts +0 -20
  211. package/dist/mjs/tee/TcbSerializer.js +0 -23
  212. package/dist/mjs/types/Campaign.d.ts +0 -55
  213. package/dist/mjs/types/Campaign.js +0 -14
  214. package/dist/mjs/utils/admin-service.d.ts +0 -13
  215. package/dist/mjs/utils/admin-service.js +0 -66
@@ -1,62 +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
- totalDeployedMigrations: number;
26
- totalNotDeployedMigrations: number;
27
- totalRevokedMigrations: number;
28
- }>;
29
- static getCompetitionSetup(contract?: Contract<typeof abi>): Promise<{
30
- claimDateAfter: number;
31
- notValidBeforeTs: number;
32
- notValidAfterTs: number;
33
- }>;
34
- static getParticipantByRank(rank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore>;
35
- static getParticipantInfo(participant: string, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo>;
36
- static getTopParticipantsInfo(count: number, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo[]>;
37
- static getMigrationRange(from: number, to: number, status: Status, contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
38
- static getMigrationsByIndexes(indexes: number[], contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
39
- static getTotalParticipants(contract?: Contract<typeof abi>): Promise<number>;
40
- static getTopParticipants(count: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
41
- static getParticipantsAroundRank(centerRank: number, range: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
42
- static getParticipantsByRange(startRank: number, endRank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
43
- static getTotalMigrations(contract?: Contract<typeof abi>): Promise<number>;
44
- static commitMigration(migrationHash: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
45
- static revealMigration(srcNetwork: MigrationNetwork, srcAddress: string, dstAddress: string, srcUrl?: string, dstUrl?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
46
- static submitMigration(srcNetwork: MigrationNetwork, srcAddress: string, dstAddress: string, srcUrl?: string, dstUrl?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
47
- static updateMigrationStatusByApp(migrationIndex: number, isDeployed: boolean, calculatedTransactionsBlockNumber: number | undefined, statusChecks: number, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
48
- static batchUpdateMigrationTransactionsByApp(args: UpdateTxsArgs[], transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
49
- static claimReward(transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
50
- static grantRole(role: string, account: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
51
- static onMigrationCommitted(callback: onMigrationCommittedCallback): () => void;
52
- static onMigrationSubmitted(callback: onMigrationSubmittedCallback): () => void;
53
- static onMigrationStatusUpdated(callback: onMigrationStatusUpdated): () => void;
54
- static onMigrationTransactionsUpdated(callback: onMigrationTransactionsUpdated): () => void;
55
- static onRewardClaimed(callback: onRewardClaimed): () => void;
56
- }
57
- export type onMigrationCommittedCallback = (participant: string, migrationHash: string, block?: BlockInfo) => void;
58
- export type onMigrationSubmittedCallback = (participant: string, migrationIndex: number, block?: BlockInfo) => void;
59
- export type onMigrationStatusUpdated = (migrationIndex: number, status: Status, block?: BlockInfo) => void;
60
- export type onMigrationTransactionsUpdated = (migrationIndex: number, transactions: number, block?: BlockInfo) => void;
61
- export type onRewardClaimed = (participant: number, amount: TokenAmount, block?: BlockInfo) => void;
62
- 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,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
- }