@super-protocol/sdk-js 2.2.0-beta.10 → 2.2.0-beta.101

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 (228) hide show
  1. package/dist/cjs/RIGenerator.d.ts +2 -0
  2. package/dist/cjs/RIGenerator.js +6 -4
  3. package/dist/cjs/TIIGenerator.d.ts +2 -1
  4. package/dist/cjs/TIIGenerator.js +13 -3
  5. package/dist/cjs/TeeInputGeneratorBase.d.ts +1 -1
  6. package/dist/cjs/TeeInputGeneratorBase.js +20 -32
  7. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  8. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  9. package/dist/cjs/analytics/transports/AxiosTransport.js +1 -1
  10. package/dist/cjs/config.d.ts +0 -1
  11. package/dist/cjs/config.js +1 -2
  12. package/dist/cjs/constants.d.ts +5 -4
  13. package/dist/cjs/constants.js +31 -7
  14. package/dist/cjs/contracts/abi.d.ts +766 -104
  15. package/dist/cjs/contracts/abi.js +968 -119
  16. package/dist/cjs/crypto/index.d.ts +1 -0
  17. package/dist/cjs/crypto/index.js +16 -1
  18. package/dist/cjs/errors/base.error.d.ts +3 -0
  19. package/dist/cjs/errors/base.error.js +19 -0
  20. package/dist/cjs/errors/index.d.ts +2 -0
  21. package/dist/cjs/errors/index.js +8 -0
  22. package/dist/cjs/errors/not-found.error.d.ts +3 -0
  23. package/dist/cjs/errors/not-found.error.js +8 -0
  24. package/dist/cjs/errors/utils.d.ts +1 -0
  25. package/dist/cjs/errors/utils.js +25 -0
  26. package/dist/cjs/index.d.ts +9 -1
  27. package/dist/cjs/index.js +16 -2
  28. package/dist/cjs/models/Offer.d.ts +38 -6
  29. package/dist/cjs/models/Offer.js +119 -15
  30. package/dist/cjs/models/Order.d.ts +2 -90
  31. package/dist/cjs/models/Order.js +20 -91
  32. package/dist/cjs/models/Provider.js +1 -1
  33. package/dist/cjs/models/TCB.js +13 -5
  34. package/dist/cjs/models/TeeOffer.d.ts +35 -13
  35. package/dist/cjs/models/TeeOffer.js +117 -45
  36. package/dist/cjs/proto/Compression.d.ts +1 -1
  37. package/dist/cjs/proto/TRI.d.ts +41 -6
  38. package/dist/cjs/proto/TRI.js +18 -1
  39. package/dist/cjs/proto/TeeProperties.d.ts +5 -5
  40. package/dist/cjs/providers/storage/IStorageProvider.d.ts +1 -1
  41. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +8 -7
  42. package/dist/cjs/providers/storage/S3StorageProvider.js +80 -38
  43. package/dist/cjs/providers/storage/StorageAdapter.d.ts +9 -7
  44. package/dist/cjs/providers/storage/StorageAdapter.js +27 -29
  45. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +2 -2
  46. package/dist/cjs/providers/storage/StorageContentWriter.js +5 -5
  47. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  48. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  49. package/dist/cjs/providers/storage/StorjAdapter.d.ts +5 -4
  50. package/dist/cjs/providers/storage/StorjAdapter.js +15 -9
  51. package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  52. package/dist/cjs/providers/storage/StorjCredentialsManager.js +86 -0
  53. package/dist/cjs/providers/storage/StorjStorageProvider.js +2 -2
  54. package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
  55. package/dist/cjs/providers/storage/fs-storage-provider.js +143 -0
  56. package/dist/cjs/providers/storage/getStorageProvider.js +4 -1
  57. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  58. package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
  59. package/dist/cjs/providers/storage/types.d.ts +22 -0
  60. package/dist/cjs/staticModels/LoaderSecretsPublicKeys.js +3 -3
  61. package/dist/cjs/staticModels/LoaderSessions.d.ts +2 -2
  62. package/dist/cjs/staticModels/LoaderSessions.js +5 -5
  63. package/dist/cjs/staticModels/OfferResources.d.ts +2 -1
  64. package/dist/cjs/staticModels/OfferResources.js +24 -8
  65. package/dist/cjs/staticModels/Offers.js +7 -2
  66. package/dist/cjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  67. package/dist/cjs/staticModels/OffersStorageAllocated.js +10 -10
  68. package/dist/cjs/staticModels/OffersStorageRequests.js +4 -3
  69. package/dist/cjs/staticModels/Orders.d.ts +5 -4
  70. package/dist/cjs/staticModels/Orders.js +7 -6
  71. package/dist/cjs/staticModels/SecretRequests.d.ts +1 -1
  72. package/dist/cjs/staticModels/SecretRequests.js +14 -7
  73. package/dist/cjs/staticModels/TeeOffers.d.ts +0 -2
  74. package/dist/cjs/staticModels/TeeOffers.js +5 -38
  75. package/dist/cjs/tee/QuoteParser.d.ts +61 -6
  76. package/dist/cjs/tee/QuoteParser.js +248 -29
  77. package/dist/cjs/tee/QuoteValidator.d.ts +11 -0
  78. package/dist/cjs/tee/QuoteValidator.js +131 -34
  79. package/dist/cjs/tee/TeeBlockVerifier.d.ts +3 -4
  80. package/dist/cjs/tee/TeeBlockVerifier.js +2 -8
  81. package/dist/cjs/tee/errors.d.ts +6 -3
  82. package/dist/cjs/tee/errors.js +9 -5
  83. package/dist/cjs/tee/types.d.ts +50 -9
  84. package/dist/cjs/tee/types.js +32 -1
  85. package/dist/cjs/types/DistributedSecretStorage.d.ts +7 -0
  86. package/dist/cjs/types/Offer.d.ts +20 -5
  87. package/dist/cjs/types/Offer.js +10 -2
  88. package/dist/cjs/types/OfferVersion.d.ts +13 -0
  89. package/dist/cjs/types/OfferVersion.js +9 -0
  90. package/dist/cjs/types/Order.d.ts +8 -2
  91. package/dist/cjs/types/Order.js +3 -1
  92. package/dist/cjs/types/SlotInfo.d.ts +1 -0
  93. package/dist/cjs/types/Superpro.d.ts +2 -1
  94. package/dist/cjs/types/Superpro.js +2 -1
  95. package/dist/cjs/types/TeeOfferInfo.d.ts +2 -1
  96. package/dist/cjs/types/index.d.ts +1 -0
  97. package/dist/cjs/types/index.js +2 -1
  98. package/dist/cjs/types/storage/StorageAccess.d.ts +3 -3
  99. package/dist/cjs/utils/CryptoKeysTransformer.d.ts +7 -1
  100. package/dist/cjs/utils/CryptoKeysTransformer.js +66 -7
  101. package/dist/cjs/utils/NonceTracker.js +1 -1
  102. package/dist/cjs/utils/helper.d.ts +7 -1
  103. package/dist/cjs/utils/helper.js +87 -2
  104. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +17 -0
  105. package/dist/cjs/utils/helpers/OrderArgsHelper.js +87 -0
  106. package/dist/cjs/utils/helpers/index.d.ts +2 -0
  107. package/dist/cjs/utils/helpers/index.js +3 -1
  108. package/dist/cjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  109. package/dist/cjs/utils/helpers/uploadObjectToStorage.js +55 -0
  110. package/dist/cjs/utils/schema-validators/index.d.ts +1 -0
  111. package/dist/cjs/utils/schema-validators/index.js +6 -0
  112. package/dist/cjs/utils/schema-validators/validator.d.ts +7 -0
  113. package/dist/cjs/utils/schema-validators/validator.js +49 -0
  114. package/dist/mjs/RIGenerator.d.ts +2 -0
  115. package/dist/mjs/RIGenerator.js +6 -4
  116. package/dist/mjs/TIIGenerator.d.ts +2 -1
  117. package/dist/mjs/TIIGenerator.js +13 -3
  118. package/dist/mjs/TeeInputGeneratorBase.d.ts +1 -1
  119. package/dist/mjs/TeeInputGeneratorBase.js +20 -32
  120. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  121. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  122. package/dist/mjs/analytics/transports/AxiosTransport.js +1 -1
  123. package/dist/mjs/config.d.ts +0 -1
  124. package/dist/mjs/config.js +1 -2
  125. package/dist/mjs/constants.d.ts +5 -4
  126. package/dist/mjs/constants.js +30 -6
  127. package/dist/mjs/contracts/abi.d.ts +766 -104
  128. package/dist/mjs/contracts/abi.js +968 -119
  129. package/dist/mjs/crypto/index.d.ts +1 -0
  130. package/dist/mjs/crypto/index.js +2 -1
  131. package/dist/mjs/errors/base.error.d.ts +3 -0
  132. package/dist/mjs/errors/base.error.js +15 -0
  133. package/dist/mjs/errors/index.d.ts +2 -0
  134. package/dist/mjs/errors/index.js +3 -0
  135. package/dist/mjs/errors/not-found.error.d.ts +3 -0
  136. package/dist/mjs/errors/not-found.error.js +4 -0
  137. package/dist/mjs/errors/utils.d.ts +1 -0
  138. package/dist/mjs/errors/utils.js +18 -0
  139. package/dist/mjs/index.d.ts +9 -1
  140. package/dist/mjs/index.js +9 -2
  141. package/dist/mjs/models/Offer.d.ts +38 -6
  142. package/dist/mjs/models/Offer.js +120 -16
  143. package/dist/mjs/models/Order.d.ts +2 -90
  144. package/dist/mjs/models/Order.js +20 -91
  145. package/dist/mjs/models/Provider.js +1 -1
  146. package/dist/mjs/models/TCB.js +13 -5
  147. package/dist/mjs/models/TeeOffer.d.ts +35 -13
  148. package/dist/mjs/models/TeeOffer.js +113 -41
  149. package/dist/mjs/proto/Compression.d.ts +1 -1
  150. package/dist/mjs/proto/TRI.d.ts +41 -6
  151. package/dist/mjs/proto/TRI.js +18 -1
  152. package/dist/mjs/proto/TeeProperties.d.ts +5 -5
  153. package/dist/mjs/providers/storage/IStorageProvider.d.ts +1 -1
  154. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +8 -7
  155. package/dist/mjs/providers/storage/S3StorageProvider.js +77 -38
  156. package/dist/mjs/providers/storage/StorageAdapter.d.ts +9 -7
  157. package/dist/mjs/providers/storage/StorageAdapter.js +27 -29
  158. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +2 -2
  159. package/dist/mjs/providers/storage/StorageContentWriter.js +5 -5
  160. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  161. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  162. package/dist/mjs/providers/storage/StorjAdapter.d.ts +5 -4
  163. package/dist/mjs/providers/storage/StorjAdapter.js +15 -9
  164. package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  165. package/dist/mjs/providers/storage/StorjCredentialsManager.js +82 -0
  166. package/dist/mjs/providers/storage/StorjStorageProvider.js +2 -2
  167. package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
  168. package/dist/mjs/providers/storage/fs-storage-provider.js +113 -0
  169. package/dist/mjs/providers/storage/getStorageProvider.js +4 -1
  170. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  171. package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
  172. package/dist/mjs/providers/storage/types.d.ts +22 -0
  173. package/dist/mjs/staticModels/LoaderSecretsPublicKeys.js +4 -4
  174. package/dist/mjs/staticModels/LoaderSessions.d.ts +2 -2
  175. package/dist/mjs/staticModels/LoaderSessions.js +6 -6
  176. package/dist/mjs/staticModels/OfferResources.d.ts +2 -1
  177. package/dist/mjs/staticModels/OfferResources.js +25 -9
  178. package/dist/mjs/staticModels/Offers.js +7 -2
  179. package/dist/mjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  180. package/dist/mjs/staticModels/OffersStorageAllocated.js +11 -11
  181. package/dist/mjs/staticModels/OffersStorageRequests.js +5 -4
  182. package/dist/mjs/staticModels/Orders.d.ts +5 -4
  183. package/dist/mjs/staticModels/Orders.js +7 -6
  184. package/dist/mjs/staticModels/SecretRequests.d.ts +1 -1
  185. package/dist/mjs/staticModels/SecretRequests.js +15 -8
  186. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -2
  187. package/dist/mjs/staticModels/TeeOffers.js +5 -38
  188. package/dist/mjs/store.js +2 -2
  189. package/dist/mjs/tee/QuoteParser.d.ts +61 -6
  190. package/dist/mjs/tee/QuoteParser.js +245 -28
  191. package/dist/mjs/tee/QuoteValidator.d.ts +11 -0
  192. package/dist/mjs/tee/QuoteValidator.js +131 -34
  193. package/dist/mjs/tee/TeeBlockVerifier.d.ts +3 -4
  194. package/dist/mjs/tee/TeeBlockVerifier.js +2 -8
  195. package/dist/mjs/tee/errors.d.ts +6 -3
  196. package/dist/mjs/tee/errors.js +7 -4
  197. package/dist/mjs/tee/types.d.ts +50 -9
  198. package/dist/mjs/tee/types.js +28 -2
  199. package/dist/mjs/types/DistributedSecretStorage.d.ts +7 -0
  200. package/dist/mjs/types/Offer.d.ts +20 -5
  201. package/dist/mjs/types/Offer.js +9 -1
  202. package/dist/mjs/types/OfferVersion.d.ts +13 -0
  203. package/dist/mjs/types/OfferVersion.js +6 -0
  204. package/dist/mjs/types/Order.d.ts +8 -2
  205. package/dist/mjs/types/Order.js +3 -1
  206. package/dist/mjs/types/SlotInfo.d.ts +1 -0
  207. package/dist/mjs/types/Superpro.d.ts +2 -1
  208. package/dist/mjs/types/Superpro.js +2 -1
  209. package/dist/mjs/types/TeeOfferInfo.d.ts +2 -1
  210. package/dist/mjs/types/index.d.ts +1 -0
  211. package/dist/mjs/types/index.js +2 -1
  212. package/dist/mjs/types/storage/StorageAccess.d.ts +3 -3
  213. package/dist/mjs/utils/CryptoKeysTransformer.d.ts +7 -1
  214. package/dist/mjs/utils/CryptoKeysTransformer.js +66 -7
  215. package/dist/mjs/utils/NonceTracker.js +1 -1
  216. package/dist/mjs/utils/helper.d.ts +7 -1
  217. package/dist/mjs/utils/helper.js +80 -1
  218. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +17 -0
  219. package/dist/mjs/utils/helpers/OrderArgsHelper.js +80 -0
  220. package/dist/mjs/utils/helpers/index.d.ts +2 -0
  221. package/dist/mjs/utils/helpers/index.js +3 -1
  222. package/dist/mjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  223. package/dist/mjs/utils/helpers/uploadObjectToStorage.js +48 -0
  224. package/dist/mjs/utils/schema-validators/index.d.ts +1 -0
  225. package/dist/mjs/utils/schema-validators/index.js +2 -0
  226. package/dist/mjs/utils/schema-validators/validator.d.ts +7 -0
  227. package/dist/mjs/utils/schema-validators/validator.js +45 -0
  228. package/package.json +6 -5
@@ -1,2 +1,3 @@
1
1
  import Crypto from './Crypto.js';
2
2
  export default Crypto;
3
+ export * from './types.js';
@@ -1,3 +1,4 @@
1
1
  import Crypto from './Crypto.js';
2
2
  export default Crypto;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxlQUFlLE1BQU0sQ0FBQyJ9
3
+ export * from './types.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxlQUFlLE1BQU0sQ0FBQztBQUN0QixjQUFjLFlBQVksQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export declare class BaseError extends Error {
2
+ constructor(error: unknown);
3
+ }
@@ -0,0 +1,15 @@
1
+ import { getErrorMessage } from './utils.js';
2
+ export class BaseError extends Error {
3
+ constructor(error) {
4
+ const message = getErrorMessage(error);
5
+ super(message);
6
+ Object.setPrototypeOf(this, new.target.prototype);
7
+ if (Error.captureStackTrace) {
8
+ Error.captureStackTrace(this, this.constructor);
9
+ }
10
+ else {
11
+ throw new Error('captureStackTrace does not exist');
12
+ }
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lcnJvcnMvYmFzZS5lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLE1BQU0sT0FBTyxTQUFVLFNBQVEsS0FBSztJQUNsQyxZQUFZLEtBQWM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -0,0 +1,2 @@
1
+ export { BaseError } from './base.error.js';
2
+ export { NotFoundError } from './not-found.error.js';
@@ -0,0 +1,3 @@
1
+ export { BaseError } from './base.error.js';
2
+ export { NotFoundError } from './not-found.error.js';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ import { BaseError } from './base.error.js';
2
+ export declare class NotFoundError extends BaseError {
3
+ }
@@ -0,0 +1,4 @@
1
+ import { BaseError } from './base.error.js';
2
+ export class NotFoundError extends BaseError {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWZvdW5kLmVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9ub3QtZm91bmQuZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztDQUFHIn0=
@@ -0,0 +1 @@
1
+ export declare const getErrorMessage: (error: unknown) => string;
@@ -0,0 +1,18 @@
1
+ import _ from 'lodash';
2
+ export const getErrorMessage = (error) => {
3
+ if (typeof error === 'string') {
4
+ return error;
5
+ }
6
+ const allowedErrorProperties = ['message', 'stack'];
7
+ if (_.isObject(error)) {
8
+ for (const field of allowedErrorProperties) {
9
+ const value = _.get(error, field);
10
+ if (typeof value === 'string') {
11
+ return value;
12
+ }
13
+ }
14
+ return _.toString(error);
15
+ }
16
+ return `Unknown error`;
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFjLEVBQVUsRUFBRTtJQUN4RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLEtBQUssSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyJ9
@@ -3,6 +3,7 @@ export * from './connectors/BlockchainConnector.js';
3
3
  export { Config } from './connectors/BaseConnector.js';
4
4
  export { default as BlockchainEventsListener } from './connectors/BlockchainEventsListener.js';
5
5
  export { default as Crypto } from './crypto/index.js';
6
+ export * from './crypto/index.js';
6
7
  export { default as TIIGenerator } from './TIIGenerator.js';
7
8
  export * from './TIIGenerator.js';
8
9
  export { default as RIGenerator } from './RIGenerator.js';
@@ -56,6 +57,7 @@ export * as ChunkedStorageProvider from './providers/storage/ChunksDownloadDecor
56
57
  export { default as StorjAdapter, StorjConfig } from './providers/storage/StorjAdapter.js';
57
58
  export { default as StorageMetadataReader, StorageMetadataReaderConfig, } from './providers/storage/StorageMetadataReader.js';
58
59
  export { default as StorageKeyValueAdapter } from './providers/storage/StorageKeyValueAdapter.js';
60
+ export { IStorageKeyValueAdapter, IStorageAdapter } from './providers/storage/types.js';
59
61
  export { default as StorageAdapter, CacheEvents, StorageAdapterConfig, } from './providers/storage/StorageAdapter.js';
60
62
  export { default as StorageContentWriter, StorageContentWriterConfig, ContentWriterType, } from './providers/storage/StorageContentWriter.js';
61
63
  export { default as StorageFileAccess } from './types/storage/StorageFileAccess.js';
@@ -63,12 +65,16 @@ export { default as StorageObject } from './types/storage/StorageObject.js';
63
65
  export { default as StorageAccess } from './types/storage/StorageAccess.js';
64
66
  export { default as getStorageProvider } from './providers/storage/getStorageProvider.js';
65
67
  export { default as IStorageProvider } from './providers/storage/IStorageProvider.js';
68
+ export { parseStorageCredentials } from './providers/storage/parseStorageCredentials.js';
69
+ export { CredentialsPermissions, StorjCredentialsManager, } from './providers/storage/StorjCredentialsManager.js';
66
70
  export * from './utils/CryptoKeysTransformer.js';
67
71
  export * as helpers from './utils/helpers/index.js';
68
72
  export * as constants from './constants.js';
69
73
  export { Web3TransactionRevertedByEvmError } from './utils/TxManager.js';
70
74
  import './polyfills.js';
71
- export { TeeSgxParser } from './tee/QuoteParser.js';
75
+ export * from './tee/errors.js';
76
+ export { QuoteType } from './tee/types.js';
77
+ export { TeeSgxParser, TeeTdxParser, TeeParser } from './tee/QuoteParser.js';
72
78
  export { QuoteValidator } from './tee/QuoteValidator.js';
73
79
  export * from './tee/statuses.js';
74
80
  export { TeeBlockVerifier } from './tee/TeeBlockVerifier.js';
@@ -79,3 +85,5 @@ export { default as BrowserEventProvider } from './analytics/eventProviders/Brow
79
85
  export { default as AxiosTransport } from './analytics/transports/AxiosTransport.js';
80
86
  export { default as FetchTransport } from './analytics/transports/FetchTransport.js';
81
87
  export * from './utils/cache/index.js';
88
+ export * from './errors/index.js';
89
+ export * from './utils/schema-validators/index.js';
package/dist/mjs/index.js CHANGED
@@ -2,6 +2,7 @@ export { default as BlockchainConnector } from './connectors/BlockchainConnector
2
2
  export * from './connectors/BlockchainConnector.js';
3
3
  export { default as BlockchainEventsListener } from './connectors/BlockchainEventsListener.js';
4
4
  export { default as Crypto } from './crypto/index.js';
5
+ export * from './crypto/index.js';
5
6
  export { default as TIIGenerator } from './TIIGenerator.js';
6
7
  export * from './TIIGenerator.js';
7
8
  export { default as RIGenerator } from './RIGenerator.js';
@@ -58,12 +59,16 @@ export { default as StorageKeyValueAdapter } from './providers/storage/StorageKe
58
59
  export { default as StorageAdapter, CacheEvents, } from './providers/storage/StorageAdapter.js';
59
60
  export { default as StorageContentWriter, ContentWriterType, } from './providers/storage/StorageContentWriter.js';
60
61
  export { default as getStorageProvider } from './providers/storage/getStorageProvider.js';
62
+ export { parseStorageCredentials } from './providers/storage/parseStorageCredentials.js';
63
+ export { CredentialsPermissions, StorjCredentialsManager, } from './providers/storage/StorjCredentialsManager.js';
61
64
  export * from './utils/CryptoKeysTransformer.js';
62
65
  export * as helpers from './utils/helpers/index.js';
63
66
  export * as constants from './constants.js';
64
67
  export { Web3TransactionRevertedByEvmError } from './utils/TxManager.js';
65
68
  import './polyfills.js';
66
- export { TeeSgxParser } from './tee/QuoteParser.js';
69
+ export * from './tee/errors.js';
70
+ export { QuoteType } from './tee/types.js';
71
+ export { TeeSgxParser, TeeTdxParser, TeeParser } from './tee/QuoteParser.js';
67
72
  export { QuoteValidator } from './tee/QuoteValidator.js';
68
73
  export * from './tee/statuses.js';
69
74
  export { TeeBlockVerifier } from './tee/TeeBlockVerifier.js';
@@ -74,4 +79,6 @@ export { default as BrowserEventProvider } from './analytics/eventProviders/Brow
74
79
  export { default as AxiosTransport } from './analytics/transports/AxiosTransport.js';
75
80
  export { default as FetchTransport } from './analytics/transports/FetchTransport.js';
76
81
  export * from './utils/cache/index.js';
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sSUFBSSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJGLGNBQWMscUNBQXFDLENBQUM7QUFJcEQsT0FBTyxFQUFFLE9BQU8sSUFBSSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxPQUFPLElBQUksTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLE9BQU8sSUFBSSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxJQUFJLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsY0FBYyw2QkFBNkIsQ0FBQztBQUU1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
82
+ export * from './errors/index.js';
83
+ export * from './utils/schema-validators/index.js';
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sSUFBSSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJGLGNBQWMscUNBQXFDLENBQUM7QUFJcEQsT0FBTyxFQUFFLE9BQU8sSUFBSSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxPQUFPLElBQUksTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsT0FBTyxJQUFJLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVELGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELGNBQWMsMEJBQTBCLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sSUFBSSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxPQUFPLEVBQUUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELGNBQWMsMEJBQTBCLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNu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
@@ -1,4 +1,4 @@
1
- import { SlotInfo, OptionInfo, SlotUsage, Origins, OfferInfo, OfferType, ValueOfferSlot, TransactionOptions, BlockchainId, TokenAmount } from '../types/index.js';
1
+ import { SlotInfo, OptionInfo, SlotUsage, Origins, OfferInfo, OfferType, ValueOfferSlot, TransactionOptions, BlockchainId, ValueOfferRestrictionsSpecification, TokenAmount, OfferVersionInfo, OfferVersion } from '../types/index.js';
2
2
  declare class Offer {
3
3
  private static contract;
4
4
  private logger;
@@ -12,13 +12,17 @@ declare class Offer {
12
12
  minDeposit?: TokenAmount;
13
13
  constructor(offerId: BlockchainId);
14
14
  /**
15
- * Function for fetching offer status from blockchain
15
+ * Checks if the offer is enabled
16
16
  */
17
17
  isEnabled(): Promise<boolean>;
18
18
  /**
19
- * Function for fetching offer status from blockchain
19
+ * Checks if the offer is base image
20
20
  */
21
21
  isBaseImage(): Promise<boolean>;
22
+ /**
23
+ * Checks if the offer has public data
24
+ */
25
+ isOfferPublic(): Promise<boolean>;
22
26
  /**
23
27
  * Updates name in offer info
24
28
  * @param name - new name
@@ -38,8 +42,11 @@ declare class Offer {
38
42
  */
39
43
  setInfo(newInfo: OfferInfo, transactionOptions?: TransactionOptions): Promise<void>;
40
44
  /**
41
- * Function for fetching offer info from blockchain
45
+ * Updates offer restrictions
46
+ * @param restrictions - new offer restrictions
47
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
42
48
  */
49
+ setRestrictions(restrictions: ValueOfferRestrictionsSpecification, transactionOptions?: TransactionOptions): Promise<void>;
43
50
  getInfo(): Promise<OfferInfo>;
44
51
  /**
45
52
  * Function for fetching offer provider from blockchain (works for TEE and Value offers)
@@ -53,6 +60,10 @@ declare class Offer {
53
60
  * Function for fetching TEE offer provider authority account from blockchain
54
61
  */
55
62
  getProviderAuthority(): Promise<string>;
63
+ /**
64
+ * Function for fetching TEE offer provider action account from blockchain
65
+ */
66
+ getProviderActionAccount(): Promise<string>;
56
67
  /**
57
68
  * Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
58
69
  */
@@ -65,6 +76,14 @@ declare class Offer {
65
76
  * Function for fetching cheapest value offer from blockchain
66
77
  */
67
78
  getCheapestPrice(): Promise<TokenAmount>;
79
+ /**
80
+ * Returns the offer version info.
81
+ */
82
+ getVersion(version: number): Promise<OfferVersion>;
83
+ /**
84
+ * Returns the offer version info.
85
+ */
86
+ getVersionCount(): Promise<number>;
68
87
  isOfferExists(): Promise<boolean>;
69
88
  private checkIfOfferExistsWithInterval;
70
89
  /**
@@ -85,7 +104,6 @@ declare class Offer {
85
104
  * Function for fetching offer slots info from blockchain
86
105
  * @param begin - The first element of range.
87
106
  * @param end - One past the final element in the range.
88
- * @returns {Promise<ValueOfferSlot[]>}
89
107
  */
90
108
  getSlots(begin?: number, end?: number): Promise<ValueOfferSlot[]>;
91
109
  /**
@@ -110,6 +128,20 @@ declare class Offer {
110
128
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
111
129
  */
112
130
  deleteSlot(slotId: BlockchainId, transactionOptions?: TransactionOptions): Promise<void>;
131
+ /**
132
+ * Function for add a new version to the value offer.
133
+ * @param newVersion - Version number
134
+ * @param versionInfo - Version info
135
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
136
+ */
137
+ setNewVersion(newVersion: number, versionInfo: OfferVersionInfo, transactionOptions?: TransactionOptions): Promise<void>;
138
+ /**
139
+ * Functcion for deletion the version from the value offer.
140
+ * @param newVersion - Version number
141
+ * @param versionInfo - Version info
142
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
143
+ */
144
+ deleteVersion(version: number, transactionOptions?: TransactionOptions): Promise<void>;
113
145
  /**
114
146
  * Function for disabling offer
115
147
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
@@ -124,7 +156,7 @@ declare class Offer {
124
156
  * Checks if passed offer match restrictions in this offer
125
157
  * @param offerId - id of offer what needs to be checked
126
158
  */
127
- isRestrictionsPermitThatOffer(offerId: BlockchainId): Promise<boolean>;
159
+ isRestrictionsPermitThatOffer(offerId: BlockchainId, offerVersion?: number): Promise<boolean>;
128
160
  /**
129
161
  * Checks if this offer contains restrictions of a certain type
130
162
  * @param type - type of offer which needs to be checked
@@ -15,7 +15,7 @@ import { formatBytes32String } from 'ethers/lib/utils.js';
15
15
  import TeeOffers from '../staticModels/TeeOffers.js';
16
16
  import TxManager from '../utils/TxManager.js';
17
17
  import { tryWithInterval } from '../utils/helpers/index.js';
18
- import { BLOCKCHAIN_CALL_RETRY_INTERVAL, BLOCKCHAIN_CALL_RETRY_ATTEMPTS } from '../constants.js';
18
+ import { BLOCKCHAIN_CALL_RETRY_INTERVAL, BLOCKCHAIN_CALL_RETRY_ATTEMPTS, DEFAULT_OFFER_VERSION, } from '../constants.js';
19
19
  class Offer {
20
20
  static contract;
21
21
  logger;
@@ -38,22 +38,29 @@ class Offer {
38
38
  });
39
39
  }
40
40
  /**
41
- * Function for fetching offer status from blockchain
41
+ * Checks if the offer is enabled
42
42
  */
43
43
  isEnabled() {
44
44
  return Offer.contract.methods.isOfferEnabled(this.id).call();
45
45
  }
46
46
  /**
47
- * Function for fetching offer status from blockchain
47
+ * Checks if the offer is base image
48
48
  */
49
49
  async isBaseImage() {
50
50
  const info = this.offerInfo ?? (await this.getInfo());
51
- if (info.offerType !== OfferType.Solution || !Boolean(info.resultResource)) {
51
+ if (info.offerType !== OfferType.Solution) {
52
52
  return false;
53
53
  }
54
- const isRestrictedBySolution = await this.isRestrictedByOfferType(OfferType.Solution);
54
+ const isRestrictedBySolution = this.offerInfo?.restrictions.types.includes(OfferType.Solution);
55
55
  return !isRestrictedBySolution;
56
56
  }
57
+ /**
58
+ * Checks if the offer has public data
59
+ */
60
+ async isOfferPublic() {
61
+ const info = this.offerInfo ?? (await this.getInfo());
62
+ return Boolean(info.resultResource);
63
+ }
57
64
  /**
58
65
  * Updates name in offer info
59
66
  * @param name - new name
@@ -83,21 +90,36 @@ class Offer {
83
90
  */
84
91
  async setInfo(newInfo, transactionOptions) {
85
92
  checkIfActionAccountInitialized(transactionOptions);
86
- const { restrictions, ...restInfo } = newInfo;
87
- await TxManager.execute(Offer.contract.methods.setValueOfferInfo(this.id, restInfo, restrictions), transactionOptions);
93
+ const { restrictions, linkage, ...restInfo } = newInfo;
94
+ await TxManager.execute(Offer.contract.methods.setValueOfferInfo(this.id, {
95
+ ...restInfo,
96
+ linkage_DEPRECATED: linkage,
97
+ }), transactionOptions);
98
+ await TxManager.execute(Offer.contract.methods.setValueOfferRestrictionsSpecification(this.id, restrictions), transactionOptions);
88
99
  if (this.offerInfo)
89
100
  this.offerInfo = newInfo;
90
101
  }
91
102
  /**
92
- * Function for fetching offer info from blockchain
103
+ * Updates offer restrictions
104
+ * @param restrictions - new offer restrictions
105
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
93
106
  */
107
+ async setRestrictions(restrictions, transactionOptions) {
108
+ checkIfActionAccountInitialized(transactionOptions);
109
+ await TxManager.execute(Offer.contract.methods.setValueOfferRestrictionsSpecification(this.id, restrictions), transactionOptions);
110
+ if (this.offerInfo)
111
+ this.offerInfo.restrictions = restrictions;
112
+ }
94
113
  async getInfo() {
95
114
  if (!(await this.checkIfOfferExistsWithInterval())) {
96
115
  throw Error(`Offer ${this.id} does not exist`);
97
116
  }
98
117
  const { info } = await Offer.contract.methods.getValueOffer(this.id).call();
99
- this.offerInfo = cleanWeb3Data(info);
100
- const offerRestrictions = await Offer.contract.methods.getOfferInitialRestrictions(this.id).call();
118
+ const { linkage_DEPRECATED, ...restInfo } = info;
119
+ this.offerInfo = cleanWeb3Data({ ...restInfo, linkage: linkage_DEPRECATED });
120
+ const offerRestrictions = await Offer.contract.methods
121
+ .getOfferRestrictionsSpecification(this.id)
122
+ .call();
101
123
  this.offerInfo.restrictions = cleanWeb3Data(offerRestrictions);
102
124
  return this.offerInfo;
103
125
  }
@@ -122,6 +144,12 @@ class Offer {
122
144
  this.providerAuthority = await Offer.contract.methods.getOfferProviderAuthority(this.id).call();
123
145
  return this.providerAuthority;
124
146
  }
147
+ /**
148
+ * Function for fetching TEE offer provider action account from blockchain
149
+ */
150
+ getProviderActionAccount() {
151
+ return Offer.contract.methods.getOfferProviderActionAccount(this.id).call();
152
+ }
125
153
  /**
126
154
  * Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
127
155
  */
@@ -154,6 +182,21 @@ class Offer {
154
182
  .call()
155
183
  .then((price) => convertBigIntToString(price));
156
184
  }
185
+ /**
186
+ * Returns the offer version info.
187
+ */
188
+ async getVersion(version) {
189
+ return await Offer.contract.methods
190
+ .getOfferVersion(this.id, version)
191
+ .call()
192
+ .then((offerVersion) => cleanWeb3Data(offerVersion));
193
+ }
194
+ /**
195
+ * Returns the offer version info.
196
+ */
197
+ async getVersionCount() {
198
+ return await Offer.contract.methods.getOfferVersionsCount(this.id).call();
199
+ }
157
200
  isOfferExists() {
158
201
  return Offer.contract.methods.isOfferExists(this.id).call();
159
202
  }
@@ -198,7 +241,6 @@ class Offer {
198
241
  * Function for fetching offer slots info from blockchain
199
242
  * @param begin - The first element of range.
200
243
  * @param end - One past the final element in the range.
201
- * @returns {Promise<ValueOfferSlot[]>}
202
244
  */
203
245
  async getSlots(begin = 0, end = 999999) {
204
246
  const slotsCount = Number(await Offer.contract.methods.getValueOfferSlotsCount(this.id).call());
@@ -237,7 +279,9 @@ class Offer {
237
279
  async updateSlot(slotId, newSlotInfo, newOptionInfo, newUsage, transactionOptions) {
238
280
  checkIfActionAccountInitialized(transactionOptions);
239
281
  newSlotInfo = packSlotInfo(newSlotInfo, await TeeOffers.getDenominator());
240
- await TxManager.execute(Offer.contract.methods.updateValueOfferSlot(this.id, slotId, newSlotInfo, convertOptionInfoToRaw(newOptionInfo), newUsage), transactionOptions);
282
+ await TxManager.execute(Offer.contract.methods.updateValueOfferSlotInfo(this.id, slotId, newSlotInfo), transactionOptions);
283
+ await TxManager.execute(Offer.contract.methods.updateValueOfferSlotOption(this.id, slotId, convertOptionInfoToRaw(newOptionInfo)), transactionOptions);
284
+ await TxManager.execute(Offer.contract.methods.updateValueOfferSlotUsage(this.id, slotId, newUsage), transactionOptions);
241
285
  }
242
286
  /**
243
287
  * Function for delete slot usage from offer
@@ -248,6 +292,28 @@ class Offer {
248
292
  checkIfActionAccountInitialized(transactionOptions);
249
293
  await TxManager.execute(Offer.contract.methods.deleteValueOfferSlot(this.id, slotId), transactionOptions);
250
294
  }
295
+ /**
296
+ * Function for add a new version to the value offer.
297
+ * @param newVersion - Version number
298
+ * @param versionInfo - Version info
299
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
300
+ */
301
+ async setNewVersion(newVersion, versionInfo, transactionOptions) {
302
+ checkIfActionAccountInitialized(transactionOptions);
303
+ const transactionCall = Offer.contract.methods.setOfferNewVersion(this.id, newVersion, versionInfo);
304
+ await TxManager.execute(transactionCall, transactionOptions);
305
+ }
306
+ /**
307
+ * Functcion for deletion the version from the value offer.
308
+ * @param newVersion - Version number
309
+ * @param versionInfo - Version info
310
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
311
+ */
312
+ async deleteVersion(version, transactionOptions) {
313
+ checkIfActionAccountInitialized(transactionOptions);
314
+ const transactionCall = Offer.contract.methods.deleteOfferVersion(this.id, version);
315
+ await TxManager.execute(transactionCall, transactionOptions);
316
+ }
251
317
  /**
252
318
  * Function for disabling offer
253
319
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
@@ -268,8 +334,10 @@ class Offer {
268
334
  * Checks if passed offer match restrictions in this offer
269
335
  * @param offerId - id of offer what needs to be checked
270
336
  */
271
- isRestrictionsPermitThatOffer(offerId) {
272
- return Offer.contract.methods.isOfferRestrictionsPermitOtherOffer(this.id, offerId).call();
337
+ isRestrictionsPermitThatOffer(offerId, offerVersion = DEFAULT_OFFER_VERSION) {
338
+ return Offer.contract.methods
339
+ .isOfferRestrictionsPermitOtherOffer(this.id, offerId, offerVersion)
340
+ .call();
273
341
  }
274
342
  /**
275
343
  * Checks if this offer contains restrictions of a certain type
@@ -291,6 +359,12 @@ __decorate([
291
359
  __metadata("design:paramtypes", []),
292
360
  __metadata("design:returntype", Promise)
293
361
  ], Offer.prototype, "isBaseImage", null);
362
+ __decorate([
363
+ incrementMethodCall(),
364
+ __metadata("design:type", Function),
365
+ __metadata("design:paramtypes", []),
366
+ __metadata("design:returntype", Promise)
367
+ ], Offer.prototype, "isOfferPublic", null);
294
368
  __decorate([
295
369
  incrementMethodCall(),
296
370
  __metadata("design:type", Function),
@@ -315,6 +389,12 @@ __decorate([
315
389
  __metadata("design:paramtypes", []),
316
390
  __metadata("design:returntype", Promise)
317
391
  ], Offer.prototype, "getProviderAuthority", null);
392
+ __decorate([
393
+ incrementMethodCall(),
394
+ __metadata("design:type", Function),
395
+ __metadata("design:paramtypes", []),
396
+ __metadata("design:returntype", Promise)
397
+ ], Offer.prototype, "getProviderActionAccount", null);
318
398
  __decorate([
319
399
  incrementMethodCall(),
320
400
  __metadata("design:type", Function),
@@ -333,6 +413,18 @@ __decorate([
333
413
  __metadata("design:paramtypes", []),
334
414
  __metadata("design:returntype", Promise)
335
415
  ], Offer.prototype, "getCheapestPrice", null);
416
+ __decorate([
417
+ incrementMethodCall(),
418
+ __metadata("design:type", Function),
419
+ __metadata("design:paramtypes", [Number]),
420
+ __metadata("design:returntype", Promise)
421
+ ], Offer.prototype, "getVersion", null);
422
+ __decorate([
423
+ incrementMethodCall(),
424
+ __metadata("design:type", Function),
425
+ __metadata("design:paramtypes", []),
426
+ __metadata("design:returntype", Promise)
427
+ ], Offer.prototype, "getVersionCount", null);
336
428
  __decorate([
337
429
  incrementMethodCall(),
338
430
  __metadata("design:type", Function),
@@ -360,7 +452,19 @@ __decorate([
360
452
  __decorate([
361
453
  incrementMethodCall(),
362
454
  __metadata("design:type", Function),
363
- __metadata("design:paramtypes", [String]),
455
+ __metadata("design:paramtypes", [Number, Object, Object]),
456
+ __metadata("design:returntype", Promise)
457
+ ], Offer.prototype, "setNewVersion", null);
458
+ __decorate([
459
+ incrementMethodCall(),
460
+ __metadata("design:type", Function),
461
+ __metadata("design:paramtypes", [Number, Object]),
462
+ __metadata("design:returntype", Promise)
463
+ ], Offer.prototype, "deleteVersion", null);
464
+ __decorate([
465
+ incrementMethodCall(),
466
+ __metadata("design:type", Function),
467
+ __metadata("design:paramtypes", [String, Number]),
364
468
  __metadata("design:returntype", Promise)
365
469
  ], Offer.prototype, "isRestrictionsPermitThatOffer", null);
366
470
  __decorate([
@@ -370,4 +474,4 @@ __decorate([
370
474
  __metadata("design:returntype", Promise)
371
475
  ], Offer.prototype, "isRestrictedByOfferType", null);
372
476
  export default Offer;
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE9BQU8sVUFBVSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHNCQUFzQixHQUN2QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFNTCxTQUFTLEdBT1YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLDhCQUE4QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakcsTUFBTSxLQUFLO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFDdEMsTUFBTSxDQUFvQjtJQUUzQixTQUFTLENBQWE7SUFDdEIsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBYTtJQUNqQixpQkFBaUIsQ0FBVTtJQUMzQixPQUFPLENBQVc7SUFDbEIsRUFBRSxDQUFlO0lBQ2pCLE9BQU8sQ0FBVztJQUNsQixVQUFVLENBQWU7SUFFaEMsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdBQUcsbUJBQW1CLENBQUMs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
477
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE9BQU8sVUFBVSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osZUFBZSxFQUNmLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHNCQUFzQixHQUN2QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFNTCxTQUFTLEdBU1YsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLFNBQVMsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDOUIscUJBQXFCLEdBQ3RCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsTUFBTSxLQUFLO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFDdEMsTUFBTSxDQUFvQjtJQUUzQixTQUFTLENBQWE7SUFDdEIsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBYTtJQUNqQixpQkFBaUIsQ0FBVTtJQUMzQixPQUFPLENBQVc7SUFDbEIsRUFBRSxDQUFlO0lBQ2pCLE9BQU8sQ0FBVztJQUNsQixVQUFVLENBQWU7SUFFaEMsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdB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