@dashevo/wasm-dpp 0.24.0-dev.12 → 0.24.0-dev.14

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 (245) hide show
  1. package/.mocharc.yml +1 -1
  2. package/Cargo.toml +5 -2
  3. package/README.md +5 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.LICENSE.txt +9 -0
  6. package/dist/wasm/wasm_dpp.d.ts +3397 -1237
  7. package/karma.conf.js +5 -0
  8. package/lib/identifier/patchIdentifier.ts +5 -4
  9. package/lib/index.ts +1 -1
  10. package/lib/test/bootstrap.js +5 -0
  11. package/lib/test/fixtures/getDataContractFixture.js +267 -0
  12. package/lib/test/fixtures/getDocumentsFixture.js +43 -0
  13. package/lib/test/mocks/createStateRepositoryMock.js +64 -0
  14. package/lib/test/mocks/getBlsAdapterMock.js +51 -0
  15. package/package.json +11 -8
  16. package/src/bls_adapter.rs +17 -1
  17. package/src/buffer.rs +3 -0
  18. package/src/dash_platform_protocol.rs +107 -10
  19. package/src/data_contract/data_contract.rs +59 -10
  20. package/src/data_contract/data_contract_facade.rs +128 -0
  21. package/src/data_contract/errors/invalid_data_contract.rs +16 -16
  22. package/src/data_contract/errors/invalid_document_type.rs +8 -8
  23. package/src/data_contract/errors/mod.rs +10 -16
  24. package/src/data_contract/index.rs +56 -1
  25. package/src/data_contract/mod.rs +4 -0
  26. package/src/data_contract/state_transition/data_contract_create_transition/apply.rs +1 -1
  27. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +41 -10
  28. package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +35 -4
  29. package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +1 -1
  30. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +20 -7
  31. package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +47 -11
  32. package/src/data_contract_factory/data_contract_factory.rs +19 -17
  33. package/src/data_trigger/data_trigger_execution_context.rs +95 -0
  34. package/src/data_trigger/data_trigger_execution_result.rs +48 -0
  35. package/src/data_trigger/execute_data_triggers_factory.rs +60 -0
  36. package/src/data_trigger/get_data_triggers_factory.rs +65 -0
  37. package/src/data_trigger/mod.rs +121 -0
  38. package/src/document/document_facade.rs +125 -0
  39. package/src/document/errors/invalid_document_error.rs +10 -9
  40. package/src/document/errors/invalid_initial_revision_error.rs +1 -1
  41. package/src/document/errors/mismatch_owners_ids_error.rs +14 -4
  42. package/src/document/errors/mod.rs +17 -13
  43. package/src/document/errors/no_documents_supplied_error.rs +4 -4
  44. package/src/document/factory.rs +257 -0
  45. package/src/document/fetch_and_validate_data_contract.rs +77 -0
  46. package/src/document/generate_document_id.rs +17 -0
  47. package/src/document/mod.rs +311 -37
  48. package/src/document/state_transition/document_batch_transition/apply_document_batch_transition.rs +22 -0
  49. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +253 -1
  50. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +60 -1
  51. package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +263 -0
  52. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +302 -3
  53. package/src/document/state_transition/document_batch_transition/mod.rs +378 -0
  54. package/src/document/state_transition/document_batch_transition/validation/basic/find_duplicates_by_id.rs +40 -0
  55. package/src/document/state_transition/document_batch_transition/validation/basic/find_duplicates_by_indices.rs +50 -0
  56. package/src/document/state_transition/document_batch_transition/validation/basic/mod.rs +8 -0
  57. package/src/document/state_transition/document_batch_transition/validation/basic/validate_documents_batch_transition_basic.rs +34 -0
  58. package/src/document/state_transition/document_batch_transition/validation/basic/validate_partial_compound_indices.rs +39 -0
  59. package/src/document/state_transition/document_batch_transition/validation/mod.rs +2 -0
  60. package/src/document/state_transition/document_batch_transition/validation/state/fetch_documents.rs +43 -0
  61. package/src/document/state_transition/document_batch_transition/validation/state/mod.rs +3 -0
  62. package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_batch_transitions_state.rs +27 -0
  63. package/src/document/state_transition/document_batch_transition/validation/state/validate_documents_uniqueness_by_indices.rs +47 -0
  64. package/src/document/validator.rs +52 -0
  65. package/src/errors/compatible_protocol_version_is_not_defined_error.rs +24 -0
  66. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +1 -1
  67. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +1 -1
  68. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +2 -2
  69. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +15 -1
  70. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +16 -2
  71. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +1 -1
  72. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +1 -1
  73. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +6 -2
  74. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +5 -2
  75. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +3 -3
  76. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +2 -2
  77. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_pooling_error.rs +29 -0
  78. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +4 -3
  79. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +1 -1
  80. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +1 -1
  81. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +4 -3
  82. package/src/errors/consensus/basic/identity/mod.rs +2 -0
  83. package/src/errors/consensus/basic/invalid_identifier_error.rs +1 -1
  84. package/src/errors/consensus/basic/json_schema_error.rs +8 -2
  85. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +1 -1
  86. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +9 -9
  87. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +4 -4
  88. package/src/errors/consensus/state/identity/duplicated_identity_public_key_id_state_error.rs +35 -0
  89. package/src/errors/consensus/state/identity/duplicated_identity_public_key_state_error.rs +34 -0
  90. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +10 -7
  91. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +2 -3
  92. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +7 -3
  93. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +2 -3
  94. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +7 -4
  95. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +2 -1
  96. package/src/errors/consensus/state/identity/mod.rs +4 -0
  97. package/src/errors/consensus_error.rs +218 -268
  98. package/src/errors/data_contract_not_present_error.rs +23 -0
  99. package/src/errors/dpp_error.rs +17 -0
  100. package/src/errors/from.rs +22 -0
  101. package/src/errors/js_conversion.rs +52 -5
  102. package/src/errors/mod.rs +6 -0
  103. package/src/errors/protocol_error.rs +14 -3
  104. package/src/identifier/errors.rs +30 -0
  105. package/src/identifier/mod.rs +95 -11
  106. package/src/identity/errors/asset_lock_output_not_found_error.rs +11 -0
  107. package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +20 -0
  108. package/src/identity/errors/invalid_identity_error.rs +32 -0
  109. package/src/identity/errors/mod.rs +9 -0
  110. package/src/identity/errors/unknown_asset_lock_proof_type_error.rs +26 -0
  111. package/src/identity/factory_utils.rs +87 -0
  112. package/src/identity/identity_facade.rs +194 -20
  113. package/src/identity/identity_factory.rs +209 -0
  114. package/src/identity/identity_public_key/mod.rs +51 -40
  115. package/src/identity/mod.rs +31 -17
  116. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +132 -0
  117. package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +72 -0
  118. package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +4 -0
  119. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +177 -0
  120. package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +72 -0
  121. package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +4 -0
  122. package/src/identity/state_transition/asset_lock_proof/mod.rs +269 -0
  123. package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +26 -0
  124. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +337 -0
  125. package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +153 -0
  126. package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +37 -0
  127. package/src/identity/state_transition/identity_create_transition/mod.rs +8 -0
  128. package/src/identity/state_transition/identity_create_transition/to_object.rs +45 -0
  129. package/src/identity/state_transition/identity_public_key_transitions.rs +207 -0
  130. package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +31 -0
  131. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +278 -0
  132. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +113 -0
  133. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +37 -0
  134. package/src/identity/state_transition/identity_topup_transition/mod.rs +8 -0
  135. package/src/identity/state_transition/identity_topup_transition/to_object.rs +42 -0
  136. package/src/identity/state_transition/identity_update_transition/apply_identity_update_transition.rs +24 -0
  137. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +55 -0
  138. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +448 -0
  139. package/src/identity/state_transition/identity_update_transition/identity_update_transition_basic_validator.rs +94 -0
  140. package/src/identity/state_transition/identity_update_transition/identity_update_transition_state_validator.rs +53 -0
  141. package/src/identity/state_transition/identity_update_transition/mod.rs +9 -0
  142. package/src/identity/state_transition/identity_update_transition/to_object.rs +66 -0
  143. package/src/identity/state_transition/mod.rs +12 -0
  144. package/src/identity/state_transition/validate_public_key_signatures.rs +61 -0
  145. package/src/identity/validation/identity_validator.rs +50 -0
  146. package/src/identity/validation/mod.rs +2 -0
  147. package/src/identity/validation/public_keys_validator.rs +14 -13
  148. package/src/identity_public_key/public_keys_validator.rs +44 -0
  149. package/src/lib.rs +6 -0
  150. package/src/lodash.rs +7 -0
  151. package/src/metadata.rs +54 -10
  152. package/src/state_repository.rs +598 -101
  153. package/src/state_transition/conversion.rs +104 -0
  154. package/src/state_transition/errors/invalid_state_transition_error.rs +32 -0
  155. package/src/state_transition/errors/mod.rs +1 -0
  156. package/src/state_transition/mod.rs +46 -0
  157. package/src/state_transition/state_transition_facade.rs +263 -0
  158. package/src/state_transition/state_transition_factory.rs +216 -0
  159. package/src/state_transition/validation/mod.rs +1 -0
  160. package/src/state_transition/validation/validate_state_transition_key_signature.rs +62 -0
  161. package/src/utils.rs +210 -8
  162. package/src/validation/json_schema_validator.rs +41 -0
  163. package/src/validation/mod.rs +2 -0
  164. package/src/validation/validation_result.rs +29 -5
  165. package/src/version/mod.rs +2 -0
  166. package/src/version/protocol_version.rs +103 -0
  167. package/test/integration/dataContract/DataContractFacade.spec.js +46 -30
  168. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +45 -127
  169. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +91 -139
  170. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +577 -503
  171. package/test/integration/document/Document.spec.js +55 -29
  172. package/test/integration/document/DocumentFacade.spec.js +51 -64
  173. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +38 -16
  174. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +341 -396
  175. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +116 -218
  176. package/test/integration/document/validation/validateDocumentFactory.spec.js +123 -171
  177. package/test/integration/identity/IdentityFacade.spec.js +52 -27
  178. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +185 -164
  179. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +84 -114
  180. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +120 -137
  181. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +106 -91
  182. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +50 -16
  183. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +78 -86
  184. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +74 -30
  185. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +93 -147
  186. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +65 -77
  187. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +60 -23
  188. package/test/integration/identity/validation/validateIdentityFactory.spec.js +46 -114
  189. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +9 -3
  190. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +12 -8
  191. package/test/integration/stateTransition/StateTransitionFacade.spec.js +95 -233
  192. package/test/integration/stateTransition/calculateStateTransitionFeeFromOperationsFactory.spec.js +53 -0
  193. package/test/unit/Identifier.spec.js +36 -36
  194. package/test/unit/Metadata.spec.js +17 -3
  195. package/test/unit/dataContract/DataContract.spec.js +9 -4
  196. package/test/unit/dataContract/createDataContract.spec.js +0 -1
  197. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +3 -3
  198. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +1 -1
  199. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +2 -2
  200. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -3
  201. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +1 -1
  202. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +25 -31
  203. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +3 -3
  204. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +2 -0
  205. package/test/unit/decodeProtocolEntityFactory.spec.js +2 -2
  206. package/test/unit/document/Document.spec.js +147 -155
  207. package/test/unit/document/DocumentFactory.spec.js +153 -153
  208. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +59 -14
  209. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +131 -62
  210. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +144 -56
  211. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +38 -8
  212. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +11 -7
  213. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +29 -18
  214. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +38 -29
  215. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +53 -91
  216. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +357 -493
  217. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +133 -72
  218. package/test/unit/identity/Identity.spec.js +26 -9
  219. package/test/unit/identity/IdentityFactory.spec.js +81 -89
  220. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +73 -30
  221. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +38 -38
  222. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +34 -25
  223. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +36 -16
  224. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +85 -50
  225. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +24 -6
  226. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +44 -22
  227. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +58 -103
  228. package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +63 -0
  229. package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +90 -0
  230. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +18 -3
  231. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +38 -11
  232. package/test/unit/stateTransition/StateTransitionFactory.spec.js +49 -101
  233. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +23 -25
  234. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +73 -46
  235. package/test/unit/version/validateProtocolVersionFactory.spec.js +45 -27
  236. package/wasm/package.json +5 -0
  237. package/wasm/wasm_dpp.d.ts +3397 -1237
  238. package/wasm/wasm_dpp.js +7158 -1384
  239. package/wasm/wasm_dpp_bg.js +1 -1
  240. package/wasm/wasm_dpp_bg.wasm +0 -0
  241. package/wasm/wasm_dpp_bg.wasm.d.ts +777 -389
  242. package/webpack.config.js +9 -0
  243. package/src/document/state_transition/document_batch_transition/document_transition/document_update_transition.rs +0 -22
  244. package/test/integration/stateTransition/calculateStateTransitionFeeFactory.spec.js +0 -135
  245. package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +0 -54
@@ -1,13 +1,14 @@
1
+ use dpp::identity::KeyID;
1
2
  use wasm_bindgen::prelude::*;
2
3
 
3
4
  #[wasm_bindgen(js_name=MissingPublicKeyError)]
4
5
  pub struct MissingPublicKeyErrorWasm {
5
- public_key_id: u64,
6
+ public_key_id: KeyID,
6
7
  code: u32,
7
8
  }
8
9
 
9
10
  impl MissingPublicKeyErrorWasm {
10
- pub fn new(public_key_id: u64, code: u32) -> Self {
11
+ pub fn new(public_key_id: KeyID, code: u32) -> Self {
11
12
  MissingPublicKeyErrorWasm {
12
13
  public_key_id,
13
14
  code,
@@ -18,7 +19,7 @@ impl MissingPublicKeyErrorWasm {
18
19
  #[wasm_bindgen(js_class=MissingPublicKeyError)]
19
20
  impl MissingPublicKeyErrorWasm {
20
21
  #[wasm_bindgen(js_name=getPublicKeyId)]
21
- pub fn get_public_key_id(&self) -> u64 {
22
+ pub fn get_public_key_id(&self) -> KeyID {
22
23
  self.public_key_id
23
24
  }
24
25
 
@@ -12,6 +12,7 @@ mod invalid_identity_asset_lock_transaction_error;
12
12
  mod invalid_identity_asset_lock_transaction_output_error;
13
13
  mod invalid_identity_credit_withdrawal_transition_core_fee_error;
14
14
  mod invalid_identity_credit_withdrawal_transition_output_script_error;
15
+ mod invalid_identity_credit_withdrawal_transition_pooling_error;
15
16
  pub mod invalid_identity_key_signature_error;
16
17
  mod invalid_identity_public_key_data_error;
17
18
  mod invalid_identity_public_key_security_level_error;
@@ -35,6 +36,7 @@ pub use invalid_identity_asset_lock_transaction_error::*;
35
36
  pub use invalid_identity_asset_lock_transaction_output_error::*;
36
37
  pub use invalid_identity_credit_withdrawal_transition_core_fee_error::*;
37
38
  pub use invalid_identity_credit_withdrawal_transition_output_script_error::*;
39
+ pub use invalid_identity_credit_withdrawal_transition_pooling_error::*;
38
40
  pub use invalid_identity_key_signature_error::*;
39
41
  pub use invalid_identity_public_key_data_error::*;
40
42
  pub use invalid_identity_public_key_security_level_error::*;
@@ -24,7 +24,7 @@ impl InvalidIdentifierErrorWasm {
24
24
  self.identifier_name.clone()
25
25
  }
26
26
 
27
- #[wasm_bindgen(js_name=getError)]
27
+ #[wasm_bindgen(js_name=getIdentifierError)]
28
28
  pub fn get_error(&self) -> String {
29
29
  self.error.clone()
30
30
  }
@@ -6,7 +6,8 @@ use std::ops::Deref;
6
6
  use dpp::jsonschema::error::{TypeKind, ValidationErrorKind};
7
7
  use wasm_bindgen::prelude::*;
8
8
 
9
- #[wasm_bindgen(js_name=JsonSchemaError)]
9
+ #[wasm_bindgen(js_name=JsonSchemaError, inspectable)]
10
+ #[derive(Debug)]
10
11
  pub struct JsonSchemaErrorWasm {
11
12
  keyword: String,
12
13
  instance_path: String,
@@ -16,7 +17,7 @@ pub struct JsonSchemaErrorWasm {
16
17
  code: u32,
17
18
  }
18
19
 
19
- #[derive(Default)]
20
+ #[derive(Default, Debug)]
20
21
  struct Params {
21
22
  pub keyword: String,
22
23
  pub params: serde_json::Map<String, Value>,
@@ -271,4 +272,9 @@ impl JsonSchemaErrorWasm {
271
272
  pub fn get_code(&self) -> u32 {
272
273
  self.code
273
274
  }
275
+
276
+ #[wasm_bindgen(js_name=toString)]
277
+ pub fn to_string_format(&self) -> String {
278
+ format!("{:#?}", self)
279
+ }
274
280
  }
@@ -19,7 +19,7 @@ impl PublicKeyIsDisabledErrorWasm {
19
19
  #[wasm_bindgen(js_class=PublicKeyIsDisabledError)]
20
20
  impl PublicKeyIsDisabledErrorWasm {
21
21
  #[wasm_bindgen(js_name=getPublicKeyId)]
22
- pub fn get_public_key_id(&self) -> u64 {
22
+ pub fn get_public_key_id(&self) -> KeyID {
23
23
  self.public_key_id
24
24
  }
25
25
 
@@ -26,23 +26,23 @@ impl DocumentTimestampWindowViolationErrorWasm {
26
26
 
27
27
  #[wasm_bindgen(js_name=getTimestamp)]
28
28
  pub fn timestamp(&self) -> js_sys::Date {
29
- // TODO: Figure out how to match rust timestamps with JS timestamps
30
- let timestamp = JsValue::from(self.timestamp as u32);
31
- js_sys::Date::new(&timestamp)
29
+ let date = js_sys::Date::new_0();
30
+ date.set_time(self.timestamp as f64);
31
+ date
32
32
  }
33
33
 
34
34
  #[wasm_bindgen(js_name=getTimeWindowStart)]
35
35
  pub fn time_window_start(&self) -> js_sys::Date {
36
- // TODO: Figure out how to match rust timestamps with JS timestamps
37
- let timestamp = JsValue::from(self.time_window_start as u32);
38
- js_sys::Date::new(&timestamp)
36
+ let date = js_sys::Date::new_0();
37
+ date.set_time(self.time_window_start as f64);
38
+ date
39
39
  }
40
40
 
41
41
  #[wasm_bindgen(js_name=getTimeWindowEnd)]
42
42
  pub fn time_window_end(&self) -> js_sys::Date {
43
- // TODO: Figure out how to match rust timestamps with JS timestamps
44
- let timestamp = JsValue::from(self.time_window_end as u32);
45
- js_sys::Date::new(&timestamp)
43
+ let date = js_sys::Date::new_0();
44
+ date.set_time(self.time_window_end as f64);
45
+ date
46
46
  }
47
47
 
48
48
  #[wasm_bindgen(js_name=getCode)]
@@ -1,11 +1,11 @@
1
1
  use crate::buffer::Buffer;
2
- use dpp::identifier::Identifier;
2
+ use dpp::{identifier::Identifier, prelude::Revision};
3
3
  use wasm_bindgen::prelude::*;
4
4
 
5
5
  #[wasm_bindgen(js_name=InvalidDocumentRevisionError)]
6
6
  pub struct InvalidDocumentRevisionErrorWasm {
7
7
  document_id: Identifier,
8
- current_revision: u32,
8
+ current_revision: Revision,
9
9
  code: u32,
10
10
  }
11
11
 
@@ -17,7 +17,7 @@ impl InvalidDocumentRevisionErrorWasm {
17
17
  }
18
18
 
19
19
  #[wasm_bindgen(js_name=getCurrentRevision)]
20
- pub fn current_revision(&self) -> u32 {
20
+ pub fn current_revision(&self) -> Revision {
21
21
  self.current_revision
22
22
  }
23
23
 
@@ -28,7 +28,7 @@ impl InvalidDocumentRevisionErrorWasm {
28
28
  }
29
29
 
30
30
  impl InvalidDocumentRevisionErrorWasm {
31
- pub fn new(document_id: Identifier, current_revision: u32, code: u32) -> Self {
31
+ pub fn new(document_id: Identifier, current_revision: Revision, code: u32) -> Self {
32
32
  Self {
33
33
  document_id,
34
34
  current_revision,
@@ -0,0 +1,35 @@
1
+ use dpp::identity::KeyID;
2
+
3
+ use wasm_bindgen::prelude::*;
4
+
5
+ #[wasm_bindgen(js_name=DuplicatedIdentityPublicKeyIdStateError)]
6
+ pub struct DuplicatedIdentityPublicKeyIdStateErrorWasm {
7
+ duplicated_ids: Vec<KeyID>,
8
+ code: u32,
9
+ }
10
+
11
+ #[wasm_bindgen(js_class=DuplicatedIdentityPublicKeyIdStateError)]
12
+ impl DuplicatedIdentityPublicKeyIdStateErrorWasm {
13
+ #[wasm_bindgen(js_name=getDuplicatedIds)]
14
+ pub fn duplicated_ids(&self) -> js_sys::Array {
15
+ // TODO: key ids probably should be u32
16
+ self.duplicated_ids
17
+ .iter()
18
+ .map(|id| JsValue::from(*id))
19
+ .collect()
20
+ }
21
+
22
+ #[wasm_bindgen(js_name=getCode)]
23
+ pub fn get_code(&self) -> u32 {
24
+ self.code
25
+ }
26
+ }
27
+
28
+ impl DuplicatedIdentityPublicKeyIdStateErrorWasm {
29
+ pub fn new(duplicated_ids: Vec<KeyID>, code: u32) -> Self {
30
+ Self {
31
+ duplicated_ids,
32
+ code,
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,34 @@
1
+ use dpp::identity::KeyID;
2
+ use wasm_bindgen::prelude::*;
3
+
4
+ #[wasm_bindgen(js_name=DuplicatedIdentityPublicKeyStateError)]
5
+ pub struct DuplicatedIdentityPublicKeyStateErrorWasm {
6
+ duplicated_public_keys_ids: Vec<KeyID>,
7
+ code: u32,
8
+ }
9
+
10
+ #[wasm_bindgen(js_class=DuplicatedIdentityPublicKeyStateError)]
11
+ impl DuplicatedIdentityPublicKeyStateErrorWasm {
12
+ #[wasm_bindgen(js_name=getDuplicatedPublicKeysIds)]
13
+ pub fn duplicated_public_keys_ids(&self) -> js_sys::Array {
14
+ // TODO: key ids probably should be u32
15
+ self.duplicated_public_keys_ids
16
+ .iter()
17
+ .map(|id| JsValue::from(*id))
18
+ .collect()
19
+ }
20
+
21
+ #[wasm_bindgen(js_name=getCode)]
22
+ pub fn get_code(&self) -> u32 {
23
+ self.code
24
+ }
25
+ }
26
+
27
+ impl DuplicatedIdentityPublicKeyStateErrorWasm {
28
+ pub fn new(duplicated_public_keys_ids: Vec<KeyID>, code: u32) -> Self {
29
+ Self {
30
+ duplicated_public_keys_ids,
31
+ code,
32
+ }
33
+ }
34
+ }
@@ -1,3 +1,4 @@
1
+ use dpp::identity::TimestampMillis;
1
2
  use wasm_bindgen::prelude::*;
2
3
 
3
4
  #[wasm_bindgen(js_name=IdentityPublicKeyDisabledAtWindowViolationError)]
@@ -13,22 +14,19 @@ impl IdentityPublicKeyDisabledAtWindowViolationErrorWasm {
13
14
  #[wasm_bindgen(js_name=getDisabledAt)]
14
15
  pub fn disabled_at(&self) -> js_sys::Date {
15
16
  // TODO: Figure out how to match rust timestamps with JS timestamps
16
- let timestamp = JsValue::from(self.disabled_at as u32);
17
- js_sys::Date::new(&timestamp)
17
+ js_sys::Date::new(&JsValue::from_f64(self.disabled_at as f64))
18
18
  }
19
19
 
20
20
  #[wasm_bindgen(js_name=getTimeWindowStart)]
21
21
  pub fn time_window_start(&self) -> js_sys::Date {
22
22
  // TODO: Figure out how to match rust timestamps with JS timestamps
23
- let timestamp = JsValue::from(self.time_window_start as u32);
24
- js_sys::Date::new(&timestamp)
23
+ js_sys::Date::new(&JsValue::from_f64(self.time_window_start as f64))
25
24
  }
26
25
 
27
26
  #[wasm_bindgen(js_name=getTimeWindowEnd)]
28
27
  pub fn time_window_end(&self) -> js_sys::Date {
29
28
  // TODO: Figure out how to match rust timestamps with JS timestamps
30
- let timestamp = JsValue::from(self.time_window_end as u32);
31
- js_sys::Date::new(&timestamp)
29
+ js_sys::Date::new(&JsValue::from_f64(self.time_window_end as f64))
32
30
  }
33
31
 
34
32
  #[wasm_bindgen(js_name=getCode)]
@@ -38,7 +36,12 @@ impl IdentityPublicKeyDisabledAtWindowViolationErrorWasm {
38
36
  }
39
37
 
40
38
  impl IdentityPublicKeyDisabledAtWindowViolationErrorWasm {
41
- pub fn new(disabled_at: u64, time_window_start: u64, time_window_end: u64, code: u32) -> Self {
39
+ pub fn new(
40
+ disabled_at: TimestampMillis,
41
+ time_window_start: TimestampMillis,
42
+ time_window_end: TimestampMillis,
43
+ code: u32,
44
+ ) -> Self {
42
45
  Self {
43
46
  disabled_at,
44
47
  time_window_start,
@@ -10,9 +10,8 @@ pub struct IdentityPublicKeyIsDisabledErrorWasm {
10
10
  #[wasm_bindgen(js_class=IdentityPublicKeyIsDisabledError)]
11
11
  impl IdentityPublicKeyIsDisabledErrorWasm {
12
12
  #[wasm_bindgen(js_name=getPublicKeyIndex)]
13
- pub fn public_key_index(&self) -> u32 {
14
- // TODO: make key ids u32?
15
- self.public_key_index as u32
13
+ pub fn public_key_index(&self) -> KeyID {
14
+ self.public_key_index
16
15
  }
17
16
 
18
17
  #[wasm_bindgen(js_name=getCode)]
@@ -10,15 +10,19 @@ pub struct IdentityPublicKeyIsReadOnlyErrorWasm {
10
10
  #[wasm_bindgen(js_class=IdentityPublicKeyIsReadOnlyError)]
11
11
  impl IdentityPublicKeyIsReadOnlyErrorWasm {
12
12
  #[wasm_bindgen(js_name=getKeyId)]
13
- pub fn key_id(&self) -> u32 {
14
- // TODO: make key ids u32?
15
- self.key_id as u32
13
+ pub fn key_id(&self) -> KeyID {
14
+ self.key_id
16
15
  }
17
16
 
18
17
  #[wasm_bindgen(js_name=getCode)]
19
18
  pub fn get_code(&self) -> u32 {
20
19
  self.code
21
20
  }
21
+
22
+ #[wasm_bindgen(js_name=getPublicKeyIndex)]
23
+ pub fn public_key_index(&self) -> KeyID {
24
+ self.key_id
25
+ }
22
26
  }
23
27
 
24
28
  impl IdentityPublicKeyIsReadOnlyErrorWasm {
@@ -10,9 +10,8 @@ pub struct InvalidIdentityPublicKeyIdErrorWasm {
10
10
  #[wasm_bindgen(js_class=InvalidIdentityPublicKeyIdError)]
11
11
  impl InvalidIdentityPublicKeyIdErrorWasm {
12
12
  #[wasm_bindgen(js_name=getId)]
13
- pub fn id(&self) -> u32 {
14
- // TODO: make key ids u32?
15
- self.id as u32
13
+ pub fn id(&self) -> KeyID {
14
+ self.id
16
15
  }
17
16
 
18
17
  #[wasm_bindgen(js_name=getCode)]
@@ -1,11 +1,13 @@
1
1
  use crate::buffer::Buffer;
2
2
  use dpp::identifier::Identifier;
3
+ use dpp::prelude::Revision;
4
+ use js_sys::Number;
3
5
  use wasm_bindgen::prelude::*;
4
6
 
5
7
  #[wasm_bindgen(js_name=InvalidIdentityRevisionError)]
6
8
  pub struct InvalidIdentityRevisionErrorWasm {
7
9
  identity_id: Identifier,
8
- current_revision: u32,
10
+ current_revision: Revision,
9
11
  code: u32,
10
12
  }
11
13
 
@@ -17,8 +19,9 @@ impl InvalidIdentityRevisionErrorWasm {
17
19
  }
18
20
 
19
21
  #[wasm_bindgen(js_name=getCurrentRevision)]
20
- pub fn current_revision(&self) -> u32 {
21
- self.current_revision
22
+ pub fn current_revision(&self) -> Number {
23
+ // It might be overflow
24
+ Number::from(self.current_revision as f64)
22
25
  }
23
26
 
24
27
  #[wasm_bindgen(js_name=getCode)]
@@ -28,7 +31,7 @@ impl InvalidIdentityRevisionErrorWasm {
28
31
  }
29
32
 
30
33
  impl InvalidIdentityRevisionErrorWasm {
31
- pub fn new(identity_id: Identifier, current_revision: u32, code: u32) -> Self {
34
+ pub fn new(identity_id: Identifier, current_revision: Revision, code: u32) -> Self {
32
35
  Self {
33
36
  identity_id,
34
37
  current_revision,
@@ -2,13 +2,14 @@ use wasm_bindgen::prelude::*;
2
2
 
3
3
  #[wasm_bindgen(js_name=MaxIdentityPublicKeyLimitReachedError)]
4
4
  pub struct MaxIdentityPublicKeyLimitReachedErrorWasm {
5
+ // TODO we can't use usize otherwise it might be a big int in JS if count is too high
5
6
  max_items: usize,
6
7
  code: u32,
7
8
  }
8
9
 
9
10
  #[wasm_bindgen(js_class=MaxIdentityPublicKeyLimitReachedError)]
10
11
  impl MaxIdentityPublicKeyLimitReachedErrorWasm {
11
- #[wasm_bindgen(js_name=getIdentityId)]
12
+ #[wasm_bindgen(js_name=getMaxItems)]
12
13
  pub fn max_items(&self) -> usize {
13
14
  self.max_items
14
15
  }
@@ -1,3 +1,5 @@
1
+ mod duplicated_identity_public_key_id_state_error;
2
+ mod duplicated_identity_public_key_state_error;
1
3
  mod identity_already_exists_error;
2
4
  mod identity_public_key_disabled_at_window_violation_error;
3
5
  mod identity_public_key_is_disabled_error;
@@ -6,6 +8,8 @@ mod invalid_identity_public_key_id_error;
6
8
  mod invalid_identity_revision_error;
7
9
  mod max_identity_public_key_limit_reached_error;
8
10
 
11
+ pub use duplicated_identity_public_key_id_state_error::*;
12
+ pub use duplicated_identity_public_key_state_error::*;
9
13
  pub use identity_already_exists_error::*;
10
14
  pub use identity_public_key_disabled_at_window_violation_error::*;
11
15
  pub use identity_public_key_is_disabled_error::*;