@dashevo/wasm-dpp 0.23.0-dev.15 → 0.24.0-dev.10

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 (272) hide show
  1. package/.eslintignore +1 -0
  2. package/Cargo.toml +23 -0
  3. package/README.md +21 -6
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.LICENSE.txt +8 -0
  7. package/dist/lib/patchIdentifier.d.ts +2 -0
  8. package/dist/wasm/wasm_dpp.d.ts +2756 -0
  9. package/index.ts +30 -0
  10. package/karma.conf.js +6 -3
  11. package/lib/patchIdentifier.ts +37 -0
  12. package/lib/test/.eslintrc +9 -0
  13. package/lib/test/bootstrap.js +27 -0
  14. package/lib/test/expect/expectError.js +34 -0
  15. package/lib/test/karma/loader.js +6 -0
  16. package/lib/test/utils/generateRandomIdentifierAsync.js +14 -0
  17. package/package.json +31 -55
  18. package/scripts/build.sh +69 -0
  19. package/scripts/clean.sh +4 -0
  20. package/src/bls_adapter.rs +71 -0
  21. package/src/buffer.rs +15 -0
  22. package/src/dash_platform_protocol.rs +26 -0
  23. package/src/data_contract/data_contract.rs +290 -0
  24. package/src/data_contract/errors/data_contract_already_exists.rs +1 -0
  25. package/src/data_contract/errors/invalid_data_contract.rs +29 -0
  26. package/src/data_contract/errors/invalid_document_type.rs +33 -0
  27. package/src/data_contract/errors/mod.rs +37 -0
  28. package/src/data_contract/index.rs +61 -0
  29. package/src/data_contract/mod.rs +10 -0
  30. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +37 -0
  31. package/src/data_contract/state_transition/mod.rs +3 -0
  32. package/src/data_contract_factory/data_contract_factory.rs +155 -0
  33. package/src/data_contract_factory/mod.rs +1 -0
  34. package/src/document/errors/document_already_exists_error.rs +28 -0
  35. package/src/document/errors/document_not_provided_error.rs +28 -0
  36. package/src/document/errors/invalid_action_name_error.rs +24 -0
  37. package/src/document/errors/invalid_document_action_error.rs +28 -0
  38. package/src/document/errors/invalid_document_error.rs +32 -0
  39. package/src/document/errors/invalid_initial_revision_error.rs +25 -0
  40. package/src/document/errors/mismatch_owners_ids_error.rs +27 -0
  41. package/src/document/errors/mod.rs +55 -0
  42. package/src/document/errors/no_documents_supplied_error.rs +22 -0
  43. package/src/document/mod.rs +158 -0
  44. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +22 -0
  45. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +22 -0
  46. package/src/document/state_transition/document_batch_transition/document_transition/document_update_transition.rs +22 -0
  47. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +24 -0
  48. package/src/document/state_transition/document_batch_transition/mod.rs +1 -0
  49. package/src/document/state_transition/mod.rs +1 -0
  50. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +36 -0
  51. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +36 -0
  52. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +36 -0
  53. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +26 -0
  54. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +36 -0
  55. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +36 -0
  56. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +66 -0
  57. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +43 -0
  58. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +39 -0
  59. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +39 -0
  60. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +59 -0
  61. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +67 -0
  62. package/src/errors/consensus/basic/data_contract/index_error/mod.rs +15 -0
  63. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +51 -0
  64. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +51 -0
  65. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +36 -0
  66. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +37 -0
  67. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +36 -0
  68. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +26 -0
  69. package/src/errors/consensus/basic/data_contract/mod.rs +25 -0
  70. package/src/errors/consensus/basic/decode/mod.rs +5 -0
  71. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +29 -0
  72. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +29 -0
  73. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +32 -0
  74. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +36 -0
  75. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +40 -0
  76. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +26 -0
  77. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +38 -0
  78. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +39 -0
  79. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +20 -0
  80. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +20 -0
  81. package/src/errors/consensus/basic/document/missing_document_type_error.rs +20 -0
  82. package/src/errors/consensus/basic/document/mod.rs +19 -0
  83. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +32 -0
  84. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +32 -0
  85. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +38 -0
  86. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +31 -0
  87. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +37 -0
  88. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +29 -0
  89. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +33 -0
  90. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +34 -0
  91. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +34 -0
  92. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +29 -0
  93. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +60 -0
  94. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +29 -0
  95. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +29 -0
  96. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +32 -0
  97. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +29 -0
  98. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +39 -0
  99. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +42 -0
  100. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +30 -0
  101. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +22 -0
  102. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +24 -0
  103. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +22 -0
  104. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +29 -0
  105. package/src/errors/consensus/basic/identity/mod.rs +45 -0
  106. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +32 -0
  107. package/src/errors/consensus/basic/invalid_identifier_error.rs +36 -0
  108. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +41 -0
  109. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +20 -0
  110. package/src/errors/consensus/basic/json_schema_compilation_error.rs +26 -0
  111. package/src/errors/consensus/basic/json_schema_error.rs +274 -0
  112. package/src/errors/consensus/basic/mod.rs +30 -0
  113. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +30 -0
  114. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +41 -0
  115. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +29 -0
  116. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +20 -0
  117. package/src/errors/consensus/basic/state_transition/mod.rs +7 -0
  118. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +36 -0
  119. package/src/errors/consensus/basic/test_consensus_error.rs +21 -0
  120. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +32 -0
  121. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +37 -0
  122. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +32 -0
  123. package/src/errors/consensus/fee/mod.rs +3 -0
  124. package/src/errors/consensus/mod.rs +4 -0
  125. package/src/errors/consensus/signature/identity_not_found_error.rs +29 -0
  126. package/src/errors/consensus/signature/mod.rs +3 -0
  127. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +31 -0
  128. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +74 -0
  129. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +82 -0
  130. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +66 -0
  131. package/src/errors/consensus/state/data_contract/data_trigger/mod.rs +7 -0
  132. package/src/errors/consensus/state/data_contract/mod.rs +4 -0
  133. package/src/errors/consensus/state/document/document_already_present_error.rs +28 -0
  134. package/src/errors/consensus/state/document/document_not_found_error.rs +28 -0
  135. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +50 -0
  136. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +72 -0
  137. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +28 -0
  138. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +42 -0
  139. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +38 -0
  140. package/src/errors/consensus/state/document/mod.rs +15 -0
  141. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +28 -0
  142. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +49 -0
  143. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +31 -0
  144. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +28 -0
  145. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +28 -0
  146. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +38 -0
  147. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +26 -0
  148. package/src/errors/consensus/state/identity/mod.rs +15 -0
  149. package/src/errors/consensus/state/mod.rs +3 -0
  150. package/src/errors/consensus_error.rs +612 -0
  151. package/src/errors/from.rs +24 -0
  152. package/src/errors/js_conversion.rs +63 -0
  153. package/src/errors/mod.rs +10 -0
  154. package/src/errors/public_key_validation_error.rs +23 -0
  155. package/src/identifier.rs +103 -0
  156. package/src/identity.rs +253 -0
  157. package/src/identity_facade.rs +55 -0
  158. package/src/identity_public_key/key_type.rs +22 -0
  159. package/src/identity_public_key/mod.rs +192 -0
  160. package/src/identity_public_key/public_keys_validator.rs +44 -0
  161. package/src/identity_public_key/purpose.rs +24 -0
  162. package/src/identity_public_key/security_level.rs +21 -0
  163. package/src/lib.rs +28 -0
  164. package/src/metadata.rs +54 -0
  165. package/src/utils.rs +59 -0
  166. package/src/validation_result.rs +41 -0
  167. package/test/integration/DashPlatformProtocol.spec.js +4 -4
  168. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +2 -2
  169. package/test/integration/dataContract/DataContractFacade.spec.js +6 -6
  170. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +10 -10
  171. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +14 -14
  172. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +22 -22
  173. package/test/integration/document/Document.spec.js +10 -5
  174. package/test/integration/document/DocumentFacade.spec.js +11 -11
  175. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +5 -5
  176. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +25 -25
  177. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +15 -15
  178. package/test/integration/document/validation/validateDocumentFactory.spec.js +12 -12
  179. package/test/integration/error/consensus/createConsensusError.spec.js +3 -3
  180. package/test/integration/identity/IdentityFacade.spec.js +13 -13
  181. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +12 -12
  182. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +11 -11
  183. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +8 -8
  184. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +24 -39
  185. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +7 -7
  186. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +29 -35
  187. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +8 -8
  188. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +11 -11
  189. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +10 -10
  190. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +7 -7
  191. package/test/integration/identity/validation/validateIdentityFactory.spec.js +8 -8
  192. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +50 -24
  193. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +14 -14
  194. package/test/integration/stateTransition/StateTransitionFacade.spec.js +15 -19
  195. package/test/integration/stateTransition/calculateStateTransitionFee.spec.js +8 -11
  196. package/test/integration/util/generateEntropy.spec.js +1 -1
  197. package/test/integration/util/serializer.spec.js +2 -2
  198. package/test/unit/DashPlatformProtocol.spec.js +4 -4
  199. package/test/unit/Identifier.spec.js +2 -2
  200. package/test/unit/Metadata.spec.js +1 -1
  201. package/test/unit/dataContract/DataContract.spec.js +100 -159
  202. package/test/unit/dataContract/DataContractFactory.spec.js +55 -111
  203. package/test/unit/dataContract/createDataContract.spec.js +20 -10
  204. package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +2 -2
  205. package/test/unit/dataContract/generateDataContractId.spec.js +23 -6
  206. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +1 -1
  207. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +1 -1
  208. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +8 -8
  209. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +6 -6
  210. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +8 -8
  211. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +8 -8
  212. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +6 -6
  213. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +6 -6
  214. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +9 -9
  215. package/test/unit/dataContract/validation/validateDataContractMaxDepthFactory.spec.js +6 -6
  216. package/test/unit/dataContract/validation/validateDataContractPatternsFactory.spec.js +3 -3
  217. package/test/unit/dataTrigger/DataTrigger.spec.js +8 -8
  218. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +4 -4
  219. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +13 -15
  220. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +12 -12
  221. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +11 -13
  222. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +7 -7
  223. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +8 -8
  224. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +9 -9
  225. package/test/unit/decodeProtocolEntityFactory.spec.js +4 -4
  226. package/test/unit/document/Document.spec.js +9 -9
  227. package/test/unit/document/DocumentFactory.spec.js +19 -19
  228. package/test/unit/document/errors/InvalidDocumentError.spec.js +2 -2
  229. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +8 -8
  230. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +8 -8
  231. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +16 -17
  232. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  233. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +2 -2
  234. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +6 -6
  235. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +7 -7
  236. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +6 -6
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +27 -34
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +9 -9
  239. package/test/unit/errors/consensus/codes.spec.js +7 -7
  240. package/test/unit/identity/Identity.spec.js +98 -69
  241. package/test/unit/identity/IdentityFactory.spec.js +15 -15
  242. package/test/unit/identity/IdentityPublicKey.spec.js +53 -66
  243. package/test/unit/identity/creditsConverter.spec.js +1 -1
  244. package/test/unit/identity/errors/InvalidIdentityError.spec.js +2 -2
  245. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +7 -7
  246. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +8 -8
  247. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +6 -6
  248. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +4 -4
  249. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +7 -7
  250. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  251. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +6 -6
  252. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +6 -6
  253. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +5 -5
  254. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +3 -3
  255. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +5 -5
  256. package/test/unit/stateTransition/StateTransitionFactory.spec.js +8 -8
  257. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +8 -8
  258. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +3 -3
  259. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +12 -12
  260. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +15 -15
  261. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +22 -22
  262. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +6 -6
  263. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +9 -9
  264. package/test/unit/version/validateProtocolVersionFactory.spec.js +7 -7
  265. package/tsconfig.json +18 -0
  266. package/wasm/wasm_dpp.d.ts +2756 -0
  267. package/wasm/wasm_dpp.js +7750 -0
  268. package/wasm/wasm_dpp_bg.js +1 -0
  269. package/wasm/wasm_dpp_bg.wasm +0 -0
  270. package/wasm/wasm_dpp_bg.wasm.d.ts +518 -0
  271. package/webpack.config.js +22 -19
  272. package/CHANGELOG.md +0 -397
@@ -1,34 +1,34 @@
1
- const validateDocumentsBatchTransitionStateFactory = require('../../../../../../../lib/document/stateTransition/DocumentsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory');
1
+ const validateDocumentsBatchTransitionStateFactory = require('@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory');
2
2
 
3
- const Document = require('../../../../../../../lib/document/Document');
4
- const DocumentsBatchTransition = require('../../../../../../../lib/document/stateTransition/DocumentsBatchTransition/DocumentsBatchTransition');
3
+ const Document = require('@dashevo/dpp/lib/document/Document');
4
+ const DocumentsBatchTransition = require('@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/DocumentsBatchTransition');
5
5
 
6
- const DataTriggerExecutionContext = require('../../../../../../../lib/dataTrigger/DataTriggerExecutionContext');
7
- const DataTriggerExecutionError = require('../../../../../../../lib/errors/consensus/state/dataContract/dataTrigger/DataTriggerExecutionError');
8
- const DataTriggerExecutionResult = require('../../../../../../../lib/dataTrigger/DataTriggerExecutionResult');
6
+ const DataTriggerExecutionContext = require('@dashevo/dpp/lib/dataTrigger/DataTriggerExecutionContext');
7
+ const DataTriggerExecutionError = require('@dashevo/dpp/lib/errors/consensus/state/dataContract/dataTrigger/DataTriggerExecutionError');
8
+ const DataTriggerExecutionResult = require('@dashevo/dpp/lib/dataTrigger/DataTriggerExecutionResult');
9
9
 
10
- const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
11
- const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
12
- const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
13
- const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
10
+ const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
11
+ const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
12
+ const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentTransitionsFixture');
13
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
14
14
 
15
- const ValidationResult = require('../../../../../../../lib/validation/ValidationResult');
15
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
16
16
 
17
- const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
17
+ const { expectValidationError } = require('@dashevo/dpp/lib/test/expect/expectError');
18
18
 
19
- const DataContractNotPresentError = require('../../../../../../../lib/errors/DataContractNotPresentError');
19
+ const DataContractNotPresentError = require('@dashevo/dpp/lib/errors/DataContractNotPresentError');
20
20
 
21
- const DocumentAlreadyPresentError = require('../../../../../../../lib/errors/consensus/state/document/DocumentAlreadyPresentError');
22
- const DocumentNotFoundError = require('../../../../../../../lib/errors/consensus/state/document/DocumentNotFoundError');
23
- const InvalidDocumentRevisionError = require('../../../../../../../lib/errors/consensus/state/document/InvalidDocumentRevisionError');
24
- const InvalidDocumentActionError = require('../../../../../../../lib/document/errors/InvalidDocumentActionError');
25
- const DocumentOwnerIdMismatchError = require('../../../../../../../lib/errors/consensus/state/document/DocumentOwnerIdMismatchError');
26
- const DocumentTimestampsMismatchError = require('../../../../../../../lib/errors/consensus/state/document/DocumentTimestampsMismatchError');
27
- const DocumentTimestampWindowViolationError = require('../../../../../../../lib/errors/consensus/state/document/DocumentTimestampWindowViolationError');
21
+ const DocumentAlreadyPresentError = require('@dashevo/dpp/lib/errors/consensus/state/document/DocumentAlreadyPresentError');
22
+ const DocumentNotFoundError = require('@dashevo/dpp/lib/errors/consensus/state/document/DocumentNotFoundError');
23
+ const InvalidDocumentRevisionError = require('@dashevo/dpp/lib/errors/consensus/state/document/InvalidDocumentRevisionError');
24
+ const InvalidDocumentActionError = require('@dashevo/dpp/lib/document/errors/InvalidDocumentActionError');
25
+ const DocumentOwnerIdMismatchError = require('@dashevo/dpp/lib/errors/consensus/state/document/DocumentOwnerIdMismatchError');
26
+ const DocumentTimestampsMismatchError = require('@dashevo/dpp/lib/errors/consensus/state/document/DocumentTimestampsMismatchError');
27
+ const DocumentTimestampWindowViolationError = require('@dashevo/dpp/lib/errors/consensus/state/document/DocumentTimestampWindowViolationError');
28
28
 
29
- const generateRandomIdentifier = require('../../../../../../../lib/test/utils/generateRandomIdentifier');
30
- const SomeConsensusError = require('../../../../../../../lib/test/mocks/SomeConsensusError');
31
- const StateTransitionExecutionContext = require('../../../../../../../lib/stateTransition/StateTransitionExecutionContext');
29
+ const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
30
+ const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
31
+ const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
32
32
 
33
33
  describe('validateDocumentsBatchTransitionStateFactory', () => {
34
34
  let validateDocumentsBatchTransitionState;
@@ -41,7 +41,6 @@ describe('validateDocumentsBatchTransitionStateFactory', () => {
41
41
  let stateRepositoryMock;
42
42
  let executeDataTriggersMock;
43
43
  let documentTransitions;
44
- let abciHeader;
45
44
  let fakeTime;
46
45
  let blockTime;
47
46
  let executionContext;
@@ -67,15 +66,9 @@ describe('validateDocumentsBatchTransitionStateFactory', () => {
67
66
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
68
67
  stateRepositoryMock.fetchDataContract.resolves(dataContract);
69
68
 
70
- blockTime = new Date().getTime() / 1000;
69
+ blockTime = Date.now();
71
70
 
72
- abciHeader = {
73
- time: {
74
- seconds: blockTime,
75
- },
76
- };
77
-
78
- stateRepositoryMock.fetchLatestPlatformBlockHeader.resolves(abciHeader);
71
+ stateRepositoryMock.fetchLatestPlatformBlockTime.returns(blockTime);
79
72
 
80
73
  fetchDocumentsMock = this.sinonSandbox.stub().resolves([]);
81
74
 
@@ -481,12 +474,12 @@ describe('validateDocumentsBatchTransitionStateFactory', () => {
481
474
  let timeWindowEnd;
482
475
 
483
476
  beforeEach(() => {
484
- timeWindowStart = new Date(blockTime * 1000);
477
+ timeWindowStart = new Date(blockTime);
485
478
  timeWindowStart.setMinutes(
486
479
  timeWindowStart.getMinutes() - 5,
487
480
  );
488
481
 
489
- timeWindowEnd = new Date(blockTime * 1000);
482
+ timeWindowEnd = new Date(blockTime);
490
483
  timeWindowEnd.setMinutes(
491
484
  timeWindowEnd.getMinutes() + 5,
492
485
  );
@@ -1,16 +1,16 @@
1
- const verifyDocumentsUniquenessByIndicesFactory = require('../../../../../../../lib/document/stateTransition/DocumentsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory');
1
+ const verifyDocumentsUniquenessByIndicesFactory = require('@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory');
2
2
 
3
- const getDocumentsFixture = require('../../../../../../../lib/test/fixtures/getDocumentsFixture');
4
- const getContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
5
- const getDocumentTransitionsFixture = require('../../../../../../../lib/test/fixtures/getDocumentTransitionsFixture');
3
+ const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
4
+ const getContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
5
+ const getDocumentTransitionsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentTransitionsFixture');
6
6
 
7
- const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
8
- const createStateRepositoryMock = require('../../../../../../../lib/test/mocks/createStateRepositoryMock');
7
+ const { expectValidationError } = require('@dashevo/dpp/lib/test/expect/expectError');
8
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
9
9
 
10
- const ValidationResult = require('../../../../../../../lib/validation/ValidationResult');
10
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
11
11
 
12
- const DuplicateUniqueIndexError = require('../../../../../../../lib/errors/consensus/state/document/DuplicateUniqueIndexError');
13
- const StateTransitionExecutionContext = require('../../../../../../../lib/stateTransition/StateTransitionExecutionContext');
12
+ const DuplicateUniqueIndexError = require('@dashevo/dpp/lib/errors/consensus/state/document/DuplicateUniqueIndexError');
13
+ const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
14
14
 
15
15
  describe('validateDocumentsUniquenessByIndices', () => {
16
16
  let stateRepositoryMock;
@@ -1,11 +1,11 @@
1
1
  const path = require('path');
2
2
  const fs = require('fs');
3
- const codes = require('../../../../lib/errors/consensus/codes');
4
- const AbstractConsensusError = require('../../../../lib/errors/consensus/AbstractConsensusError');
5
- const AbstractBasicError = require('../../../../lib/errors/consensus/basic/AbstractBasicError');
6
- const AbstractSignatureError = require('../../../../lib/errors/consensus/signature/AbstractSignatureError');
7
- const AbstractFeeError = require('../../../../lib/errors/consensus/fee/AbstractFeeError');
8
- const AbstractStateError = require('../../../../lib/errors/consensus/state/AbstractStateError');
3
+ const codes = require('@dashevo/dpp/lib/errors/consensus/codes');
4
+ const AbstractConsensusError = require('@dashevo/dpp/lib/errors/consensus/AbstractConsensusError');
5
+ const AbstractBasicError = require('@dashevo/dpp/lib/errors/consensus/basic/AbstractBasicError');
6
+ const AbstractSignatureError = require('@dashevo/dpp/lib/errors/consensus/signature/AbstractSignatureError');
7
+ const AbstractFeeError = require('@dashevo/dpp/lib/errors/consensus/fee/AbstractFeeError');
8
+ const AbstractStateError = require('@dashevo/dpp/lib/errors/consensus/state/AbstractStateError');
9
9
 
10
10
  const getAllFiles = (dirPath, arrayOfFiles) => {
11
11
  const files = fs.readdirSync(dirPath);
@@ -48,7 +48,7 @@ describe('Consensus error codes', () => {
48
48
  return;
49
49
  }
50
50
 
51
- const normalizedPath = path.join(__dirname, '../../../../lib/errors/');
51
+ const normalizedPath = path.join(__dirname, '../../../../../js-dpp/lib/errors/');
52
52
  const allFiles = getAllFiles(normalizedPath);
53
53
 
54
54
  allFiles.forEach((fileName) => {
@@ -1,32 +1,42 @@
1
- const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifier');
1
+ const JSIdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
2
+ const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
3
+ const JSIdentity = require('@dashevo/dpp/lib/identity/Identity');
2
4
 
3
- const IdentityPublicKey = require('../../../lib/identity/IdentityPublicKey');
4
- const Metadata = require('../../../lib/Metadata');
5
- const protocolVersion = require('../../../lib/version/protocolVersion');
6
-
7
- const Identity = require('../../../lib/identity/Identity');
8
- const serializer = require('../../../lib/util/serializer');
9
- const hash = require('../../../lib/util/hash');
5
+ const { hash: hashFunction } = require('@dashevo/dpp/lib/util/hash');
6
+ const { expect } = require('chai');
7
+ const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
8
+ const { default: loadWasmDpp } = require('../../../dist');
10
9
 
11
10
  describe('Identity', () => {
12
11
  let rawIdentity;
13
12
  let identity;
14
- let hashMock;
15
- let encodeMock;
16
13
  let metadataFixture;
14
+ let Identity;
15
+ let Metadata;
16
+ let IdentityPublicKey;
17
+ let KeyPurpose;
18
+ let KeyType;
19
+ let KeySecurityLevel;
20
+
21
+ before(async () => {
22
+ ({
23
+ Identity, Metadata, IdentityPublicKey, KeyPurpose, KeyType, KeySecurityLevel,
24
+ } = await loadWasmDpp());
25
+ });
17
26
 
18
- beforeEach(function beforeEach() {
27
+ beforeEach(async () => {
19
28
  rawIdentity = {
20
29
  protocolVersion: protocolVersion.latestVersion,
21
- id: generateRandomIdentifier(),
30
+ id: await generateRandomIdentifierAsync(),
22
31
  publicKeys: [
23
32
  {
24
33
  id: 0,
25
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
34
+ type: KeyType.ECDSA_SECP256K1,
26
35
  data: Buffer.alloc(36).fill('a'),
27
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
28
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
36
+ purpose: KeyPurpose.AUTHENTICATION,
37
+ securityLevel: KeySecurityLevel.MASTER,
29
38
  readOnly: false,
39
+ signature: Buffer.alloc(36).fill('a'),
30
40
  },
31
41
  ],
32
42
  balance: 0,
@@ -39,45 +49,62 @@ describe('Identity', () => {
39
49
 
40
50
  identity.setMetadata(metadataFixture);
41
51
 
42
- encodeMock = this.sinonSandbox.stub(serializer, 'encode');
43
- hashMock = this.sinonSandbox.stub(hash, 'hash');
52
+ metadataFixture = new Metadata(42, 0);
44
53
  });
45
54
 
46
55
  afterEach(() => {
47
- encodeMock.restore();
48
- hashMock.restore();
49
56
  });
50
57
 
51
58
  describe('#constructor', () => {
52
59
  it('should set variables from raw model', () => {
53
- const instance = new Identity(rawIdentity);
60
+ const instance = identity;
54
61
 
55
- expect(instance.id).to.deep.equal(rawIdentity.id);
56
- expect(instance.type).to.equal(rawIdentity.type);
57
- expect(instance.publicKeys).to.deep.equal(
58
- rawIdentity.publicKeys.map((rawPublicKey) => new IdentityPublicKey(rawPublicKey)),
62
+ expect(instance.getId().toBuffer()).to.deep.equal(rawIdentity.id.toBuffer());
63
+ expect(
64
+ instance.getPublicKeys().map((pk) => pk.toObject()),
65
+ ).to.deep.equal(
66
+ rawIdentity.publicKeys,
59
67
  );
60
68
  });
61
69
  });
62
70
 
63
71
  describe('#getId', () => {
64
72
  it('should return set id', () => {
65
- expect(identity.getId()).to.deep.equal(rawIdentity.id);
73
+ expect(identity.getId().toBuffer()).to.deep.equal(rawIdentity.id.toBuffer());
66
74
  });
67
75
  });
68
76
 
69
77
  describe('#getPublicKeys', () => {
70
78
  it('should return set public keys', () => {
71
- expect(identity.getPublicKeys()).to.deep.equal(
72
- rawIdentity.publicKeys.map((rawPublicKey) => new IdentityPublicKey(rawPublicKey)),
79
+ expect(identity.getPublicKeys().map((pk) => pk.toObject())).to.deep.equal(
80
+ rawIdentity.publicKeys,
73
81
  );
74
82
  });
75
83
  });
76
84
 
77
85
  describe('#setPublicKeys', () => {
86
+ it('should reject input which is not array of public keys', () => {
87
+ expect(() => { identity.setPublicKeys(42); })
88
+ .throws("Setting public keys failed. The input ('42') is invalid. You must use array of PublicKeys");
89
+ expect(identity.getPublicKeys()).length(1);
90
+ });
91
+
78
92
  it('should set public keys', () => {
79
- identity.setPublicKeys(42);
80
- expect(identity.publicKeys).to.equal(42);
93
+ const rawKey = {
94
+ id: 2,
95
+ type: KeyType.ECDSA_SECP256K1,
96
+ data: Buffer.alloc(36).fill('a'),
97
+ purpose: KeyPurpose.AUTHENTICATION,
98
+ securityLevel: KeySecurityLevel.MASTER,
99
+ signature: Buffer.alloc(36).fill('a'),
100
+ readOnly: false,
101
+ };
102
+
103
+ const ipk = new JSIdentityPublicKey(rawKey);
104
+
105
+ identity.setPublicKeys([ipk]);
106
+ expect(identity.getPublicKeys()).length(1);
107
+ expect(identity.getPublicKeys()[0].toObject()).to.be.deep.equal(rawKey);
81
108
  });
82
109
  });
83
110
 
@@ -85,7 +112,11 @@ describe('Identity', () => {
85
112
  it('should return a public key for a given id', () => {
86
113
  const key = identity.getPublicKeyById(0);
87
114
 
88
- expect(key).to.be.deep.equal(new IdentityPublicKey(rawIdentity.publicKeys[0]));
115
+ expect(
116
+ key.toObject(),
117
+ ).to.be.deep.equal(
118
+ rawIdentity.publicKeys[0],
119
+ );
89
120
  });
90
121
 
91
122
  it("should return undefined if there's no key with such id", () => {
@@ -95,30 +126,20 @@ describe('Identity', () => {
95
126
  });
96
127
 
97
128
  describe('#toBuffer', () => {
98
- it('should return serialized Identity', () => {
99
- const encodeMockData = Buffer.from('42');
100
- encodeMock.returns(encodeMockData); // for example
101
-
129
+ it('should return the same buffer as JS Identity', () => {
130
+ // Due to browser polyfill, we got two different versions of buffers, and makes
131
+ // the compatibility test to fail in karma, so hence this hack here.
132
+ rawIdentity.id = Buffer.from(rawIdentity.id.toBuffer());
133
+ const oldIdentity = new JSIdentity(rawIdentity);
102
134
  const result = identity.toBuffer();
103
135
 
104
- const identityDataToEncode = identity.toObject();
105
- delete identityDataToEncode.protocolVersion;
106
-
107
- const protocolVersionUInt32 = Buffer.alloc(4);
108
- protocolVersionUInt32.writeUInt32LE(identity.getProtocolVersion(), 0);
109
-
110
- expect(encodeMock).to.have.been.calledOnceWith(identityDataToEncode);
111
- expect(result).to.deep.equal(Buffer.concat([protocolVersionUInt32, encodeMockData]));
136
+ expect(result).to.deep.eq(oldIdentity.toBuffer());
112
137
  });
113
138
  });
114
139
 
115
140
  describe('#hash', () => {
116
- it('should return hex string of a buffer return by serialize', () => {
117
- const buffer = Buffer.from('someString');
118
-
119
- encodeMock.returns(buffer);
120
- hashMock.returns(buffer);
121
-
141
+ it('should return the same has as JS Identity', () => {
142
+ const expectedHash = hashFunction(identity.toBuffer());
122
143
  const result = identity.hash();
123
144
 
124
145
  const identityDataToEncode = identity.toObject();
@@ -127,15 +148,18 @@ describe('Identity', () => {
127
148
  const protocolVersionUInt32 = Buffer.alloc(4);
128
149
  protocolVersionUInt32.writeUInt32LE(identity.getProtocolVersion(), 0);
129
150
 
130
- expect(encodeMock).to.have.been.calledOnceWith(identityDataToEncode);
131
- expect(hashMock).to.have.been.calledOnceWith(Buffer.concat([protocolVersionUInt32, buffer]));
132
- expect(result).to.equal(buffer);
151
+ expect(result).to.deep.equal(expectedHash);
133
152
  });
134
153
  });
135
154
 
136
155
  describe('#toObject', () => {
137
156
  it('should return plain object representation', () => {
138
- expect(identity.toObject()).to.deep.equal(rawIdentity);
157
+ const identityObject = identity.toObject();
158
+
159
+ // We can't compare Identifier directly - it needs to be converted into a Buffer
160
+ rawIdentity.id = rawIdentity.id.toBuffer();
161
+
162
+ expect(identityObject).to.deep.equal(rawIdentity);
139
163
  });
140
164
  });
141
165
 
@@ -149,10 +173,11 @@ describe('Identity', () => {
149
173
  publicKeys: [
150
174
  {
151
175
  id: 0,
152
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
176
+ type: KeyType.ECDSA_SECP256K1,
153
177
  data: rawIdentity.publicKeys[0].data.toString('base64'),
154
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
155
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
178
+ purpose: KeyPurpose.AUTHENTICATION,
179
+ securityLevel: KeySecurityLevel.MASTER,
180
+ signature: rawIdentity.publicKeys[0].signature.toString('base64'),
156
181
  readOnly: false,
157
182
  },
158
183
  ],
@@ -164,7 +189,7 @@ describe('Identity', () => {
164
189
 
165
190
  describe('#getBalance', () => {
166
191
  it('should return set identity balance', () => {
167
- identity.balance = 42;
192
+ identity.setBalance(42);
168
193
  expect(identity.getBalance()).to.equal(42);
169
194
  });
170
195
  });
@@ -172,7 +197,7 @@ describe('Identity', () => {
172
197
  describe('#setBalance', () => {
173
198
  it('should set identity balance', () => {
174
199
  identity.setBalance(42);
175
- expect(identity.balance).to.equal(42);
200
+ expect(identity.getBalance()).to.equal(42);
176
201
  });
177
202
  });
178
203
 
@@ -181,54 +206,57 @@ describe('Identity', () => {
181
206
  const result = identity.increaseBalance(42);
182
207
 
183
208
  expect(result).to.equal(42);
184
- expect(identity.balance).to.equal(42);
209
+ expect(identity.getBalance()).to.equal(42);
185
210
  });
186
211
  });
187
212
 
188
213
  describe('#reduceBalance', () => {
189
214
  it('should reduce identity balance', () => {
190
- identity.balance = 42;
215
+ identity.setBalance(42);
191
216
 
192
217
  const result = identity.reduceBalance(2);
193
218
 
194
219
  expect(result).to.equal(40);
195
- expect(identity.balance).to.equal(40);
220
+ expect(identity.getBalance()).to.equal(40);
196
221
  });
197
222
  });
198
223
 
199
224
  describe('#setMetadata', () => {
200
225
  it('should set metadata', () => {
201
226
  const otherMetadata = new Metadata(43, 1);
227
+ const expectedMetadata = new Metadata(43, 1);
202
228
 
203
229
  identity.setMetadata(otherMetadata);
204
230
 
205
- expect(identity.metadata).to.deep.equal(otherMetadata);
231
+ expect(identity.getMetadata().toObject()).to.deep.equal(expectedMetadata.toObject());
206
232
  });
207
233
  });
208
234
 
209
235
  describe('#getMetadata', () => {
210
236
  it('should get metadata', () => {
211
- expect(identity.getMetadata()).to.deep.equal(metadataFixture);
237
+ expect(identity.getMetadata().toObject()).to.deep.equal(metadataFixture.toObject());
212
238
  });
213
239
  });
214
240
 
215
241
  describe('#getPublicKeyMaxId', () => {
216
242
  it('should get the biggest public key ID', () => {
217
- identity.publicKeys.push(
243
+ identity.addPublicKeys(
218
244
  new IdentityPublicKey({
219
245
  id: 99,
220
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
246
+ type: KeyType.ECDSA_SECP256K1,
221
247
  data: Buffer.alloc(36).fill('a'),
222
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
223
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
248
+ purpose: KeyPurpose.AUTHENTICATION,
249
+ securityLevel: KeySecurityLevel.MASTER,
250
+ signature: Buffer.alloc(36).fill('a'),
224
251
  readOnly: false,
225
252
  }),
226
253
  new IdentityPublicKey({
227
254
  id: 50,
228
- type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
255
+ type: KeyType.ECDSA_SECP256K1,
229
256
  data: Buffer.alloc(36).fill('a'),
230
- purpose: IdentityPublicKey.PURPOSES.AUTHENTICATION,
231
- securityLevel: IdentityPublicKey.SECURITY_LEVELS.MASTER,
257
+ purpose: KeyPurpose.AUTHENTICATION,
258
+ securityLevel: KeySecurityLevel.MASTER,
259
+ signature: Buffer.alloc(36).fill('a'),
232
260
  readOnly: false,
233
261
  }),
234
262
  );
@@ -237,6 +265,7 @@ describe('Identity', () => {
237
265
 
238
266
  const publicKeyIds = identity.getPublicKeys().map((publicKey) => publicKey.getId());
239
267
 
268
+ expect(Math.max(...publicKeyIds)).to.equal(99);
240
269
  expect(Math.max(...publicKeyIds)).to.equal(maxId);
241
270
  });
242
271
  });
@@ -1,24 +1,24 @@
1
1
  const { PublicKey } = require('@dashevo/dashcore-lib');
2
- const Identity = require('../../../lib/identity/Identity');
3
- const IdentityCreateTransition = require('../../../lib/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition');
4
- const IdentityTopUpTransition = require('../../../lib/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition');
2
+ const Identity = require('@dashevo/dpp/lib/identity/Identity');
3
+ const IdentityCreateTransition = require('@dashevo/dpp/lib/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition');
4
+ const IdentityTopUpTransition = require('@dashevo/dpp/lib/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition');
5
5
 
6
- const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
6
+ const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
7
7
 
8
- const ValidationResult = require('../../../lib/validation/ValidationResult');
9
- const SerializedObjectParsingError = require('../../../lib/errors/consensus/basic/decode/SerializedObjectParsingError');
8
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
9
+ const SerializedObjectParsingError = require('@dashevo/dpp/lib/errors/consensus/basic/decode/SerializedObjectParsingError');
10
10
 
11
11
  const InvalidIdentityError = require(
12
- '../../../lib/identity/errors/InvalidIdentityError',
12
+ '@dashevo/dpp/lib/identity/errors/InvalidIdentityError',
13
13
  );
14
- const getInstantAssetLockProofFixture = require('../../../lib/test/fixtures/getInstantAssetLockProofFixture');
15
- const InstantAssetLockProof = require('../../../lib/identity/stateTransition/assetLockProof/instant/InstantAssetLockProof');
16
- const getChainAssetLockProofFixture = require('../../../lib/test/fixtures/getChainAssetLockProofFixture');
17
- const createDPPMock = require('../../../lib/test/mocks/createDPPMock');
18
- const SomeConsensusError = require('../../../lib/test/mocks/SomeConsensusError');
19
- const IdentityFactory = require('../../../lib/identity/IdentityFactory');
20
- const IdentityUpdateTransition = require('../../../lib/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition');
21
- const IdentityPublicKey = require('../../../lib/identity/IdentityPublicKey');
14
+ const getInstantAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
15
+ const InstantAssetLockProof = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/instant/InstantAssetLockProof');
16
+ const getChainAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
17
+ const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
18
+ const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
19
+ const IdentityFactory = require('@dashevo/dpp/lib/identity/IdentityFactory');
20
+ const IdentityUpdateTransition = require('@dashevo/dpp/lib/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition');
21
+ const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
22
22
 
23
23
  describe('IdentityFactory', () => {
24
24
  let factory;