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

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 (276) hide show
  1. package/.eslintignore +1 -0
  2. package/Cargo.toml +25 -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 +2850 -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/apply.rs +44 -0
  31. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +138 -0
  32. package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +24 -0
  33. package/src/data_contract/state_transition/mod.rs +3 -0
  34. package/src/data_contract_factory/data_contract_factory.rs +155 -0
  35. package/src/data_contract_factory/mod.rs +1 -0
  36. package/src/document/errors/document_already_exists_error.rs +28 -0
  37. package/src/document/errors/document_not_provided_error.rs +28 -0
  38. package/src/document/errors/invalid_action_name_error.rs +24 -0
  39. package/src/document/errors/invalid_document_action_error.rs +28 -0
  40. package/src/document/errors/invalid_document_error.rs +32 -0
  41. package/src/document/errors/invalid_initial_revision_error.rs +25 -0
  42. package/src/document/errors/mismatch_owners_ids_error.rs +27 -0
  43. package/src/document/errors/mod.rs +55 -0
  44. package/src/document/errors/no_documents_supplied_error.rs +22 -0
  45. package/src/document/mod.rs +158 -0
  46. package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +22 -0
  47. package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +22 -0
  48. package/src/document/state_transition/document_batch_transition/document_transition/document_update_transition.rs +22 -0
  49. package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +24 -0
  50. package/src/document/state_transition/document_batch_transition/mod.rs +1 -0
  51. package/src/document/state_transition/mod.rs +1 -0
  52. package/src/errors/consensus/basic/data_contract/data_contract_have_new_unique_index_error.rs +36 -0
  53. package/src/errors/consensus/basic/data_contract/data_contract_immutable_properties_update_error.rs +36 -0
  54. package/src/errors/consensus/basic/data_contract/data_contract_invalid_index_definition_update_error.rs +36 -0
  55. package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +26 -0
  56. package/src/errors/consensus/basic/data_contract/data_contract_unique_indices_changed_error.rs +36 -0
  57. package/src/errors/consensus/basic/data_contract/duplicate_index_name_error.rs +36 -0
  58. package/src/errors/consensus/basic/data_contract/incompatible_data_contract_schema_error.rs +66 -0
  59. package/src/errors/consensus/basic/data_contract/incompatible_re2_pattern_error.rs +43 -0
  60. package/src/errors/consensus/basic/data_contract/index_error/duplicate_index_error.rs +39 -0
  61. package/src/errors/consensus/basic/data_contract/index_error/invalid_compound_index_error.rs +39 -0
  62. package/src/errors/consensus/basic/data_contract/index_error/invalid_index_property_type_error.rs +59 -0
  63. package/src/errors/consensus/basic/data_contract/index_error/invalid_indexed_property_constraint_error.rs +67 -0
  64. package/src/errors/consensus/basic/data_contract/index_error/mod.rs +15 -0
  65. package/src/errors/consensus/basic/data_contract/index_error/system_property_index_already_present_error.rs +51 -0
  66. package/src/errors/consensus/basic/data_contract/index_error/undefined_index_property_error.rs +51 -0
  67. package/src/errors/consensus/basic/data_contract/index_error/unique_indices_limit_reached_error.rs +36 -0
  68. package/src/errors/consensus/basic/data_contract/invalid_data_contract_id_error.rs +37 -0
  69. package/src/errors/consensus/basic/data_contract/invalid_data_contract_version_error.rs +36 -0
  70. package/src/errors/consensus/basic/data_contract/invalid_json_schema_ref_error.rs +26 -0
  71. package/src/errors/consensus/basic/data_contract/mod.rs +25 -0
  72. package/src/errors/consensus/basic/decode/mod.rs +5 -0
  73. package/src/errors/consensus/basic/decode/protocol_version_parsing_error.rs +29 -0
  74. package/src/errors/consensus/basic/decode/serialized_object_parsing_error.rs +29 -0
  75. package/src/errors/consensus/basic/document/data_contract_not_present_error.rs +32 -0
  76. package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +36 -0
  77. package/src/errors/consensus/basic/document/inconsistent_compound_index_data_error.rs +40 -0
  78. package/src/errors/consensus/basic/document/invalid_document_transition_action_error.rs +26 -0
  79. package/src/errors/consensus/basic/document/invalid_document_transition_id_error.rs +38 -0
  80. package/src/errors/consensus/basic/document/invalid_document_type_error.rs +39 -0
  81. package/src/errors/consensus/basic/document/missing_data_contract_id_error.rs +20 -0
  82. package/src/errors/consensus/basic/document/missing_document_transition_action_error.rs +20 -0
  83. package/src/errors/consensus/basic/document/missing_document_type_error.rs +20 -0
  84. package/src/errors/consensus/basic/document/mod.rs +19 -0
  85. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +32 -0
  86. package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +32 -0
  87. package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +38 -0
  88. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_is_not_found_error.rs +31 -0
  89. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +37 -0
  90. package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_output_not_found_error.rs +29 -0
  91. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +33 -0
  92. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_core_chain_height_error.rs +34 -0
  93. package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +34 -0
  94. package/src/errors/consensus/basic/identity/invalid_asset_lock_transaction_output_return_size_error.rs +29 -0
  95. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_error.rs +60 -0
  96. package/src/errors/consensus/basic/identity/invalid_identity_asset_lock_transaction_output_error.rs +29 -0
  97. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_core_fee_error.rs +29 -0
  98. package/src/errors/consensus/basic/identity/invalid_identity_credit_withdrawal_transition_output_script_error.rs +32 -0
  99. package/src/errors/consensus/basic/identity/invalid_identity_key_signature_error.rs +29 -0
  100. package/src/errors/consensus/basic/identity/invalid_identity_public_key_data_error.rs +39 -0
  101. package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +42 -0
  102. package/src/errors/consensus/basic/identity/invalid_identity_public_key_type_error.rs +30 -0
  103. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_error.rs +22 -0
  104. package/src/errors/consensus/basic/identity/invalid_instant_asset_lock_proof_signature_error.rs +24 -0
  105. package/src/errors/consensus/basic/identity/missing_master_public_key_error.rs +22 -0
  106. package/src/errors/consensus/basic/identity/missing_public_key_error.rs +29 -0
  107. package/src/errors/consensus/basic/identity/mod.rs +45 -0
  108. package/src/errors/consensus/basic/incompatible_protocol_version_error.rs +32 -0
  109. package/src/errors/consensus/basic/invalid_identifier_error.rs +36 -0
  110. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +41 -0
  111. package/src/errors/consensus/basic/invalid_state_transition_signature_error.rs +20 -0
  112. package/src/errors/consensus/basic/json_schema_compilation_error.rs +26 -0
  113. package/src/errors/consensus/basic/json_schema_error.rs +274 -0
  114. package/src/errors/consensus/basic/mod.rs +30 -0
  115. package/src/errors/consensus/basic/public_key_is_disabled_error.rs +30 -0
  116. package/src/errors/consensus/basic/public_key_security_level_not_met_error.rs +41 -0
  117. package/src/errors/consensus/basic/state_transition/invalid_state_transition_type_error.rs +29 -0
  118. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +20 -0
  119. package/src/errors/consensus/basic/state_transition/mod.rs +7 -0
  120. package/src/errors/consensus/basic/state_transition/state_transition_max_size_exceeded_error.rs +36 -0
  121. package/src/errors/consensus/basic/test_consensus_error.rs +21 -0
  122. package/src/errors/consensus/basic/unsupported_protocol_version_error.rs +32 -0
  123. package/src/errors/consensus/basic/wrong_public_key_purpose_error.rs +37 -0
  124. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +32 -0
  125. package/src/errors/consensus/fee/mod.rs +3 -0
  126. package/src/errors/consensus/mod.rs +4 -0
  127. package/src/errors/consensus/signature/identity_not_found_error.rs +29 -0
  128. package/src/errors/consensus/signature/mod.rs +3 -0
  129. package/src/errors/consensus/state/data_contract/data_contract_already_present_error.rs +31 -0
  130. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_condition_error.rs +74 -0
  131. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_execution_error.rs +82 -0
  132. package/src/errors/consensus/state/data_contract/data_trigger/data_trigger_invalid_result_error.rs +66 -0
  133. package/src/errors/consensus/state/data_contract/data_trigger/mod.rs +7 -0
  134. package/src/errors/consensus/state/data_contract/mod.rs +4 -0
  135. package/src/errors/consensus/state/document/document_already_present_error.rs +28 -0
  136. package/src/errors/consensus/state/document/document_not_found_error.rs +28 -0
  137. package/src/errors/consensus/state/document/document_owner_id_mismatch_error.rs +50 -0
  138. package/src/errors/consensus/state/document/document_timestamp_window_violation_error.rs +72 -0
  139. package/src/errors/consensus/state/document/document_timestamps_mismatch_error.rs +28 -0
  140. package/src/errors/consensus/state/document/duplicate_unique_index_error.rs +42 -0
  141. package/src/errors/consensus/state/document/invalid_document_revision_error.rs +38 -0
  142. package/src/errors/consensus/state/document/mod.rs +15 -0
  143. package/src/errors/consensus/state/identity/identity_already_exists_error.rs +28 -0
  144. package/src/errors/consensus/state/identity/identity_public_key_disabled_at_window_violation_error.rs +49 -0
  145. package/src/errors/consensus/state/identity/identity_public_key_is_disabled_error.rs +31 -0
  146. package/src/errors/consensus/state/identity/identity_public_key_is_read_only_error.rs +28 -0
  147. package/src/errors/consensus/state/identity/invalid_identity_public_key_id_error.rs +28 -0
  148. package/src/errors/consensus/state/identity/invalid_identity_revision_error.rs +38 -0
  149. package/src/errors/consensus/state/identity/max_identity_public_key_limit_reached_error.rs +26 -0
  150. package/src/errors/consensus/state/identity/mod.rs +15 -0
  151. package/src/errors/consensus/state/mod.rs +3 -0
  152. package/src/errors/consensus_error.rs +612 -0
  153. package/src/errors/from.rs +24 -0
  154. package/src/errors/js_conversion.rs +63 -0
  155. package/src/errors/mod.rs +10 -0
  156. package/src/errors/public_key_validation_error.rs +23 -0
  157. package/src/identifier.rs +103 -0
  158. package/src/identity.rs +253 -0
  159. package/src/identity_facade.rs +55 -0
  160. package/src/identity_public_key/key_type.rs +22 -0
  161. package/src/identity_public_key/mod.rs +192 -0
  162. package/src/identity_public_key/public_keys_validator.rs +44 -0
  163. package/src/identity_public_key/purpose.rs +24 -0
  164. package/src/identity_public_key/security_level.rs +21 -0
  165. package/src/lib.rs +29 -0
  166. package/src/metadata.rs +54 -0
  167. package/src/state_repository.rs +229 -0
  168. package/src/state_transition/mod.rs +41 -0
  169. package/src/utils.rs +59 -0
  170. package/src/validation_result.rs +41 -0
  171. package/test/integration/DashPlatformProtocol.spec.js +4 -4
  172. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +2 -2
  173. package/test/integration/dataContract/DataContractFacade.spec.js +6 -6
  174. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +10 -10
  175. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +14 -14
  176. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +22 -22
  177. package/test/integration/document/Document.spec.js +10 -5
  178. package/test/integration/document/DocumentFacade.spec.js +11 -11
  179. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +5 -5
  180. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +25 -25
  181. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +15 -15
  182. package/test/integration/document/validation/validateDocumentFactory.spec.js +12 -12
  183. package/test/integration/error/consensus/createConsensusError.spec.js +3 -3
  184. package/test/integration/identity/IdentityFacade.spec.js +13 -13
  185. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +12 -12
  186. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +11 -11
  187. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +8 -8
  188. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +24 -39
  189. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +7 -7
  190. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +29 -35
  191. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +8 -8
  192. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +11 -11
  193. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +10 -10
  194. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +7 -7
  195. package/test/integration/identity/validation/validateIdentityFactory.spec.js +8 -8
  196. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +50 -24
  197. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +14 -14
  198. package/test/integration/stateTransition/StateTransitionFacade.spec.js +15 -19
  199. package/test/integration/stateTransition/calculateStateTransitionFee.spec.js +8 -11
  200. package/test/integration/util/generateEntropy.spec.js +1 -1
  201. package/test/integration/util/serializer.spec.js +2 -2
  202. package/test/unit/DashPlatformProtocol.spec.js +4 -4
  203. package/test/unit/Identifier.spec.js +2 -2
  204. package/test/unit/Metadata.spec.js +1 -1
  205. package/test/unit/dataContract/DataContract.spec.js +100 -159
  206. package/test/unit/dataContract/DataContractFactory.spec.js +55 -111
  207. package/test/unit/dataContract/createDataContract.spec.js +20 -10
  208. package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +2 -2
  209. package/test/unit/dataContract/generateDataContractId.spec.js +23 -6
  210. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +1 -1
  211. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +1 -1
  212. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +20 -67
  213. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +29 -23
  214. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +48 -45
  215. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +8 -8
  216. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +6 -6
  217. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +6 -6
  218. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +9 -9
  219. package/test/unit/dataContract/validation/validateDataContractMaxDepthFactory.spec.js +6 -6
  220. package/test/unit/dataContract/validation/validateDataContractPatternsFactory.spec.js +3 -3
  221. package/test/unit/dataTrigger/DataTrigger.spec.js +8 -8
  222. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +4 -4
  223. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +13 -15
  224. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +12 -12
  225. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +11 -13
  226. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +7 -7
  227. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +8 -8
  228. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +9 -9
  229. package/test/unit/decodeProtocolEntityFactory.spec.js +4 -4
  230. package/test/unit/document/Document.spec.js +9 -9
  231. package/test/unit/document/DocumentFactory.spec.js +19 -19
  232. package/test/unit/document/errors/InvalidDocumentError.spec.js +2 -2
  233. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +8 -8
  234. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +8 -8
  235. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +16 -17
  236. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +1 -1
  237. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +2 -2
  238. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +6 -6
  239. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +7 -7
  240. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +6 -6
  241. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +27 -34
  242. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +9 -9
  243. package/test/unit/errors/consensus/codes.spec.js +7 -7
  244. package/test/unit/identity/Identity.spec.js +98 -69
  245. package/test/unit/identity/IdentityFactory.spec.js +15 -15
  246. package/test/unit/identity/IdentityPublicKey.spec.js +53 -66
  247. package/test/unit/identity/creditsConverter.spec.js +1 -1
  248. package/test/unit/identity/errors/InvalidIdentityError.spec.js +2 -2
  249. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +7 -7
  250. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +8 -8
  251. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +6 -6
  252. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +4 -4
  253. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +7 -7
  254. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +2 -2
  255. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +6 -6
  256. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +6 -6
  257. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +5 -5
  258. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +3 -3
  259. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +5 -5
  260. package/test/unit/stateTransition/StateTransitionFactory.spec.js +8 -8
  261. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +8 -8
  262. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +3 -3
  263. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +12 -12
  264. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +15 -15
  265. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +22 -22
  266. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +6 -6
  267. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +9 -9
  268. package/test/unit/version/validateProtocolVersionFactory.spec.js +7 -7
  269. package/tsconfig.json +18 -0
  270. package/wasm/wasm_dpp.d.ts +2850 -0
  271. package/wasm/wasm_dpp.js +7978 -0
  272. package/wasm/wasm_dpp_bg.js +1 -0
  273. package/wasm/wasm_dpp_bg.wasm +0 -0
  274. package/wasm/wasm_dpp_bg.wasm.d.ts +536 -0
  275. package/webpack.config.js +22 -19
  276. package/CHANGELOG.md +0 -397
@@ -1,12 +1,12 @@
1
1
  const validatePublicKeys = require(
2
- '../../../../../../../lib/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState',
2
+ '@dashevo/dpp/lib/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState',
3
3
  );
4
- const { expectValidationError } = require('../../../../../../../lib/test/expect/expectError');
5
- const DuplicatedIdentityPublicKeyIdError = require('../../../../../../../lib/errors/consensus/state/identity/DuplicatedIdentityPublicKeyIdError');
6
- const DuplicatedIdentityPublicKeyError = require('../../../../../../../lib/errors/consensus/state/identity/DuplicatedIdentityPublicKeyError');
7
- const identitySchema = require('../../../../../../../schema/identity/identity.json');
8
- const MaxIdentityPublicKeyLimitReachedError = require('../../../../../../../lib/errors/consensus/state/identity/MaxIdentityPublicKeyLimitReachedError');
9
- const getIdentityFixture = require('../../../../../../../lib/test/fixtures/getIdentityFixture');
4
+ const { expectValidationError } = require('@dashevo/dpp/lib/test/expect/expectError');
5
+ const DuplicatedIdentityPublicKeyIdError = require('@dashevo/dpp/lib/errors/consensus/state/identity/DuplicatedIdentityPublicKeyIdError');
6
+ const DuplicatedIdentityPublicKeyError = require('@dashevo/dpp/lib/errors/consensus/state/identity/DuplicatedIdentityPublicKeyError');
7
+ const identitySchema = require('@dashevo/dpp/schema/identity/identity.json');
8
+ const MaxIdentityPublicKeyLimitReachedError = require('@dashevo/dpp/lib/errors/consensus/state/identity/MaxIdentityPublicKeyLimitReachedError');
9
+ const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
10
10
 
11
11
  describe('validatePublicKeysState', () => {
12
12
  let rawPublicKeys;
@@ -1,22 +1,22 @@
1
1
  const { getRE2Class } = require('@dashevo/wasm-re2');
2
2
 
3
- const createAjv = require('../../../../../../lib/ajv/createAjv');
3
+ const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
4
4
 
5
- const getChainAssetLockFixture = require('../../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
6
- const JsonSchemaValidator = require('../../../../../../lib/validation/JsonSchemaValidator');
7
- const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
5
+ const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
6
+ const JsonSchemaValidator = require('@dashevo/dpp/lib/validation/JsonSchemaValidator');
7
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
8
8
 
9
9
  const { expectValidationError, expectJsonSchemaError } = require(
10
- '../../../../../../lib/test/expect/expectError',
10
+ '@dashevo/dpp/lib/test/expect/expectError',
11
11
  );
12
12
 
13
- const validateChainAssetLockProofStructureFactory = require('../../../../../../lib/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory');
14
- const ValidationResult = require('../../../../../../lib/validation/ValidationResult');
15
- const IdentityAssetLockTransactionIsNotFoundError = require('../../../../../../lib/errors/consensus/basic/identity/IdentityAssetLockTransactionIsNotFoundError');
16
- const InvalidAssetLockProofCoreChainHeightError = require('../../../../../../lib/errors/consensus/basic/identity/InvalidAssetLockProofCoreChainHeightError');
17
- const InvalidAssetLockProofTransactionHeightError = require('../../../../../../lib/errors/consensus/basic/identity/InvalidAssetLockProofTransactionHeightError');
18
- const SomeConsensusError = require('../../../../../../lib/test/mocks/SomeConsensusError');
19
- const StateTransitionExecutionContext = require('../../../../../../lib/stateTransition/StateTransitionExecutionContext');
13
+ const validateChainAssetLockProofStructureFactory = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory');
14
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
15
+ const IdentityAssetLockTransactionIsNotFoundError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/IdentityAssetLockTransactionIsNotFoundError');
16
+ const InvalidAssetLockProofCoreChainHeightError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidAssetLockProofCoreChainHeightError');
17
+ const InvalidAssetLockProofTransactionHeightError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidAssetLockProofTransactionHeightError');
18
+ const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
19
+ const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
20
20
 
21
21
  describe('validateChainAssetLockProofStructureFactory', () => {
22
22
  let rawProof;
@@ -45,9 +45,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
45
45
 
46
46
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
47
47
 
48
- stateRepositoryMock.fetchLatestPlatformBlockHeader.resolves({
49
- coreChainLockedHeight: 42,
50
- });
48
+ stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight.resolves(42);
51
49
 
52
50
  stateRepositoryMock.fetchTransaction.resolves({
53
51
  data: Buffer.from(rawTransaction, 'hex'),
@@ -92,7 +90,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
92
90
 
93
91
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
94
92
  expect(validateAssetLockTransactionMock).to.not.be.called();
95
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
93
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
96
94
  });
97
95
 
98
96
  it('should be equal to 1', async () => {
@@ -111,7 +109,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
111
109
  expect(error.getKeyword()).to.equal('const');
112
110
 
113
111
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
114
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
112
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
115
113
  });
116
114
  });
117
115
 
@@ -134,7 +132,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
134
132
 
135
133
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
136
134
  expect(validateAssetLockTransactionMock).to.not.be.called();
137
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
135
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
138
136
  });
139
137
 
140
138
  it('should be an integer', async () => {
@@ -154,7 +152,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
154
152
 
155
153
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
156
154
  expect(validateAssetLockTransactionMock).to.not.be.called();
157
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
155
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
158
156
  });
159
157
 
160
158
  it('should be a number', async () => {
@@ -174,7 +172,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
174
172
 
175
173
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
176
174
  expect(validateAssetLockTransactionMock).to.not.be.called();
177
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
175
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
178
176
  });
179
177
 
180
178
  it('should be greater than 0', async () => {
@@ -194,7 +192,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
194
192
 
195
193
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
196
194
  expect(validateAssetLockTransactionMock).to.not.be.called();
197
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
195
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
198
196
  });
199
197
 
200
198
  it('should be less than 4294967296', async () => {
@@ -214,13 +212,11 @@ describe('validateChainAssetLockProofStructureFactory', () => {
214
212
 
215
213
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
216
214
  expect(validateAssetLockTransactionMock).to.not.be.called();
217
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
215
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
218
216
  });
219
217
 
220
218
  it('should be less or equal to consensus core height', async () => {
221
- stateRepositoryMock.fetchLatestPlatformBlockHeader.resolves({
222
- coreChainLockedHeight: 41,
223
- });
219
+ stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight.resolves(41);
224
220
 
225
221
  const result = await validateChainAssetLockProofStructure(
226
222
  rawProof,
@@ -256,7 +252,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
256
252
 
257
253
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
258
254
  expect(validateAssetLockTransactionMock).to.not.be.called();
259
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
255
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
260
256
  });
261
257
 
262
258
  it('should be a byte array', async () => {
@@ -278,7 +274,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
278
274
 
279
275
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
280
276
  expect(validateAssetLockTransactionMock).to.not.be.called();
281
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
277
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
282
278
  });
283
279
 
284
280
  it('should not be shorter than 36 bytes', async () => {
@@ -298,7 +294,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
298
294
 
299
295
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
300
296
  expect(validateAssetLockTransactionMock).to.not.be.called();
301
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
297
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
302
298
  });
303
299
 
304
300
  it('should not be longer than 36 bytes', async () => {
@@ -318,7 +314,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
318
314
 
319
315
  expect(stateRepositoryMock.fetchTransaction).to.not.be.called();
320
316
  expect(validateAssetLockTransactionMock).to.not.be.called();
321
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.not.be.called();
317
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.not.be.called();
322
318
  });
323
319
 
324
320
  it('should point to existing transaction', async () => {
@@ -343,7 +339,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
343
339
  executionContext,
344
340
  );
345
341
  expect(validateAssetLockTransactionMock).to.not.be.called();
346
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.be.calledOnce();
342
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.be.calledOnce();
347
343
  });
348
344
 
349
345
  it('should point to valid transaction', async () => {
@@ -365,9 +361,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
365
361
 
366
362
  it('should point to transaction from block lower than core chain locked height', async () => {
367
363
  rawProof.coreChainLockedHeight = 41;
368
- stateRepositoryMock.fetchLatestPlatformBlockHeader.resolves({
369
- coreChainLockedHeight: 41,
370
- });
364
+ stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight.resolves(41);
371
365
 
372
366
  const result = await validateChainAssetLockProofStructure(
373
367
  rawProof,
@@ -387,7 +381,7 @@ describe('validateChainAssetLockProofStructureFactory', () => {
387
381
  executionContext,
388
382
  );
389
383
  expect(validateAssetLockTransactionMock).to.not.be.called();
390
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.be.calledOnce();
384
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.be.calledOnce();
391
385
  });
392
386
  });
393
387
 
@@ -410,6 +404,6 @@ describe('validateChainAssetLockProofStructureFactory', () => {
410
404
  0,
411
405
  executionContext,
412
406
  );
413
- expect(stateRepositoryMock.fetchLatestPlatformBlockHeader).to.be.calledOnce();
407
+ expect(stateRepositoryMock.fetchLatestPlatformCoreChainLockedHeight).to.be.calledOnce();
414
408
  });
415
409
  });
@@ -1,14 +1,14 @@
1
1
  const { Transaction, Script } = require('@dashevo/dashcore-lib');
2
2
  const Output = require('@dashevo/dashcore-lib/lib/transaction/output');
3
3
 
4
- const fetchAssetLockTransactionOutputFactory = require('../../../../../lib/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory');
5
- const getChainAssetLockFixture = require('../../../../../lib/test/fixtures/getChainAssetLockProofFixture');
6
- const getInstantAssetLockProofFixture = require('../../../../../lib/test/fixtures/getInstantAssetLockProofFixture');
7
- const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
8
-
9
- const UnknownAssetLockProofError = require('../../../../../lib/identity/errors/UnknownAssetLockProofTypeError');
10
- const AssetLockTransactionIsNotFoundError = require('../../../../../lib/identity/errors/AssetLockTransactionIsNotFoundError');
11
- const StateTransitionExecutionContext = require('../../../../../lib/stateTransition/StateTransitionExecutionContext');
4
+ const fetchAssetLockTransactionOutputFactory = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory');
5
+ const getChainAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getChainAssetLockProofFixture');
6
+ const getInstantAssetLockProofFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
7
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
8
+
9
+ const UnknownAssetLockProofError = require('@dashevo/dpp/lib/identity/errors/UnknownAssetLockProofTypeError');
10
+ const AssetLockTransactionIsNotFoundError = require('@dashevo/dpp/lib/identity/errors/AssetLockTransactionIsNotFoundError');
11
+ const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
12
12
 
13
13
  describe('fetchAssetLockTransactionOutputFactory', () => {
14
14
  let fetchAssetLockTransactionOutput;
@@ -2,22 +2,22 @@ const { getRE2Class } = require('@dashevo/wasm-re2');
2
2
 
3
3
  const DashCoreLib = require('@dashevo/dashcore-lib');
4
4
 
5
- const createAjv = require('../../../../../../lib/ajv/createAjv');
5
+ const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
6
6
 
7
- const getInstantAssetLockFixture = require('../../../../../../lib/test/fixtures/getInstantAssetLockProofFixture');
8
- const JsonSchemaValidator = require('../../../../../../lib/validation/JsonSchemaValidator');
9
- const createStateRepositoryMock = require('../../../../../../lib/test/mocks/createStateRepositoryMock');
10
- const InvalidIdentityAssetLockProofError = require('../../../../../../lib/errors/consensus/basic/identity/InvalidInstantAssetLockProofError');
11
- const IdentityAssetLockProofLockedTransactionMismatchError = require('../../../../../../lib/errors/consensus/basic/identity/IdentityAssetLockProofLockedTransactionMismatchError');
12
- const InvalidIdentityAssetLockProofSignatureError = require('../../../../../../lib/errors/consensus/basic/identity/InvalidInstantAssetLockProofSignatureError');
7
+ const getInstantAssetLockFixture = require('@dashevo/dpp/lib/test/fixtures/getInstantAssetLockProofFixture');
8
+ const JsonSchemaValidator = require('@dashevo/dpp/lib/validation/JsonSchemaValidator');
9
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
10
+ const InvalidIdentityAssetLockProofError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidInstantAssetLockProofError');
11
+ const IdentityAssetLockProofLockedTransactionMismatchError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/IdentityAssetLockProofLockedTransactionMismatchError');
12
+ const InvalidIdentityAssetLockProofSignatureError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidInstantAssetLockProofSignatureError');
13
13
 
14
14
  const { expectValidationError, expectJsonSchemaError } = require(
15
- '../../../../../../lib/test/expect/expectError',
15
+ '@dashevo/dpp/lib/test/expect/expectError',
16
16
  );
17
17
 
18
- const ValidationResult = require('../../../../../../lib/validation/ValidationResult');
19
- const InvalidIdentityAssetLockTransactionError = require('../../../../../../lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionError');
20
- const validateInstantAssetLockProofStructureFactory = require('../../../../../../lib/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory');
18
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
19
+ const InvalidIdentityAssetLockTransactionError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionError');
20
+ const validateInstantAssetLockProofStructureFactory = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory');
21
21
 
22
22
  describe('validateInstantAssetLockProofStructureFactory', () => {
23
23
  let rawProof;
@@ -1,19 +1,19 @@
1
1
  const { Transaction } = require('@dashevo/dashcore-lib');
2
2
 
3
3
  const DashCoreLib = require('@dashevo/dashcore-lib');
4
- const validateAssetLockTransactionFactory = require('../../../../../lib/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory');
5
- const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
4
+ const validateAssetLockTransactionFactory = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory');
5
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
6
6
 
7
- const ValidationResult = require('../../../../../lib/validation/ValidationResult');
7
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
8
8
 
9
- const { expectValidationError } = require('../../../../../lib/test/expect/expectError');
9
+ const { expectValidationError } = require('@dashevo/dpp/lib/test/expect/expectError');
10
10
 
11
- const InvalidIdentityAssetLockTransactionError = require('../../../../../lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionError');
12
- const IdentityAssetLockTransactionOutputNotFoundError = require('../../../../../lib/errors/consensus/basic/identity/IdentityAssetLockTransactionOutputNotFoundError');
13
- const IdentityAssetLockTransactionOutPointAlreadyExistsError = require('../../../../../lib/errors/consensus/basic/identity/IdentityAssetLockTransactionOutPointAlreadyExistsError');
14
- const InvalidIdentityAssetLockTransactionOutputError = require('../../../../../lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionOutputError');
15
- const InvalidAssetLockTransactionOutputReturnSizeError = require('../../../../../lib/errors/consensus/basic/identity/InvalidAssetLockTransactionOutputReturnSizeError');
16
- const StateTransitionExecutionContext = require('../../../../../lib/stateTransition/StateTransitionExecutionContext');
11
+ const InvalidIdentityAssetLockTransactionError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionError');
12
+ const IdentityAssetLockTransactionOutputNotFoundError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/IdentityAssetLockTransactionOutputNotFoundError');
13
+ const IdentityAssetLockTransactionOutPointAlreadyExistsError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/IdentityAssetLockTransactionOutPointAlreadyExistsError');
14
+ const InvalidIdentityAssetLockTransactionOutputError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityAssetLockTransactionOutputError');
15
+ const InvalidAssetLockTransactionOutputReturnSizeError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidAssetLockTransactionOutputReturnSizeError');
16
+ const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
17
17
 
18
18
  describe('validateAssetLockTransactionFactory', () => {
19
19
  let stateRepositoryMock;
@@ -2,13 +2,13 @@ const { PrivateKey, crypto: { Hash } } = require('@dashevo/dashcore-lib');
2
2
 
3
3
  const crypto = require('crypto');
4
4
 
5
- const getIdentityCreateTransitionFixture = require('../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
6
- const IdentityPublicKey = require('../../../../lib/identity/IdentityPublicKey');
7
- const BlsSignatures = require('../../../../lib/bls/bls');
8
- const validatePublicKeySignaturesFactory = require('../../../../lib/identity/stateTransition/validatePublicKeySignaturesFactory');
9
- const ValidationResult = require('../../../../lib/validation/ValidationResult');
10
- const { expectValidationError } = require('../../../../lib/test/expect/expectError');
11
- const InvalidIdentityKeySignatureError = require('../../../../lib/errors/consensus/basic/identity/InvalidIdentityKeySignatureError');
5
+ const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
6
+ const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
7
+ const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
8
+ const validatePublicKeySignaturesFactory = require('@dashevo/dpp/lib/identity/stateTransition/validatePublicKeySignaturesFactory');
9
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
10
+ const { expectValidationError } = require('@dashevo/dpp/lib/test/expect/expectError');
11
+ const InvalidIdentityKeySignatureError = require('@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityKeySignatureError');
12
12
 
13
13
  describe('validatePublicKeySignaturesFactory', () => {
14
14
  let identityCreateTransition;
@@ -1,27 +1,27 @@
1
1
  const { getRE2Class } = require('@dashevo/wasm-re2');
2
2
 
3
- const createAjv = require('../../../../lib/ajv/createAjv');
3
+ const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
4
4
 
5
- const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
5
+ const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
6
6
 
7
7
  const JsonSchemaValidator = require(
8
- '../../../../lib/validation/JsonSchemaValidator',
8
+ '@dashevo/dpp/lib/validation/JsonSchemaValidator',
9
9
  );
10
10
 
11
11
  const { expectValidationError, expectJsonSchemaError } = require(
12
- '../../../../lib/test/expect/expectError',
12
+ '@dashevo/dpp/lib/test/expect/expectError',
13
13
  );
14
14
 
15
15
  const validateIdentityFactory = require(
16
- '../../../../lib/identity/validation/validateIdentityFactory',
16
+ '@dashevo/dpp/lib/identity/validation/validateIdentityFactory',
17
17
  );
18
18
 
19
19
  const JsonSchemaError = require(
20
- '../../../../lib/errors/consensus/basic/JsonSchemaError',
20
+ '@dashevo/dpp/lib/errors/consensus/basic/JsonSchemaError',
21
21
  );
22
22
 
23
- const ValidationResult = require('../../../../lib/validation/ValidationResult');
24
- const SomeConsensusError = require('../../../../lib/test/mocks/SomeConsensusError');
23
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
24
+ const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
25
25
 
26
26
  describe('validateIdentityFactory', () => {
27
27
  let rawIdentity;
@@ -2,59 +2,84 @@ const { getRE2Class } = require('@dashevo/wasm-re2');
2
2
 
3
3
  const crypto = require('crypto');
4
4
 
5
- const createAjv = require('../../../../lib/ajv/createAjv');
5
+ const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
6
6
 
7
7
  const JsonSchemaValidator = require(
8
- '../../../../lib/validation/JsonSchemaValidator',
8
+ '@dashevo/dpp/lib/validation/JsonSchemaValidator',
9
9
  );
10
10
 
11
11
  const validatePublicKeysFactory = require(
12
- '../../../../lib/identity/validation/validatePublicKeysFactory',
12
+ '@dashevo/dpp/lib/identity/validation/validatePublicKeysFactory',
13
13
  );
14
14
 
15
- const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
16
-
17
- const {
18
- expectValidationError,
19
- expectJsonSchemaError,
20
- } = require('../../../../lib/test/expect/expectError');
15
+ const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
21
16
 
22
17
  const DuplicatedIdentityPublicKeyError = require(
23
- '../../../../lib/errors/consensus/basic/identity/DuplicatedIdentityPublicKeyError',
18
+ '@dashevo/dpp/lib/errors/consensus/basic/identity/DuplicatedIdentityPublicKeyError',
24
19
  );
25
20
  const DuplicatedIdentityPublicKeyIdError = require(
26
- '../../../../lib/errors/consensus/basic/identity/DuplicatedIdentityPublicKeyIdError',
21
+ '@dashevo/dpp/lib/errors/consensus/basic/identity/DuplicatedIdentityPublicKeyIdError',
27
22
  );
28
23
 
29
24
  const InvalidIdentityPublicKeyDataError = require(
30
- '../../../../lib/errors/consensus/basic/identity/InvalidIdentityPublicKeyDataError',
25
+ '@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityPublicKeyDataError',
31
26
  );
32
27
 
33
28
  const InvalidIdentityPublicKeySecurityLevelError = require(
34
- '../../../../lib/errors/consensus/basic/identity/InvalidIdentityPublicKeySecurityLevelError',
29
+ '@dashevo/dpp/lib/errors/consensus/basic/identity/InvalidIdentityPublicKeySecurityLevelError',
35
30
  );
36
31
 
37
32
  const IdentityPublicKey = require(
38
- '../../../../lib/identity/IdentityPublicKey',
33
+ '@dashevo/dpp/lib/identity/IdentityPublicKey',
39
34
  );
40
- const BlsSignatures = require('../../../../lib/bls/bls');
35
+ const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
41
36
 
42
- const identityPublicKeySchema = require('../../../../schema/identity/publicKey.json');
43
- const stateTransitionPublicKeySchema = require('../../../../schema/identity/stateTransition/publicKey.json');
37
+ const identityPublicKeySchema = require('@dashevo/dpp/schema/identity/publicKey.json');
38
+ const stateTransitionPublicKeySchema = require('@dashevo/dpp/schema/identity/stateTransition/publicKey.json');
39
+ const {
40
+ expectValidationError,
41
+ expectJsonSchemaError,
42
+ } = require('../../../../lib/test/expect/expectError');
43
+
44
+ const { default: loadWasmDpp } = require('../../../../dist');
44
45
 
45
46
  describe('validatePublicKeysFactory', () => {
46
47
  let rawPublicKeys;
47
48
  let validatePublicKeys;
48
49
  let validator;
49
50
  let bls;
51
+ let PublicKeysValidator;
52
+ let publicKeysValidator;
53
+ let InvalidIdentityPublicKeyDataErrorWasm;
54
+ let PublicKeyValidationError;
50
55
 
51
56
  beforeEach(async () => {
52
57
  ({ publicKeys: rawPublicKeys } = getIdentityFixture().toObject());
53
58
 
59
+ ({
60
+ PublicKeysValidator,
61
+ InvalidIdentityPublicKeyDataError: InvalidIdentityPublicKeyDataErrorWasm,
62
+ PublicKeyValidationError,
63
+ } = await loadWasmDpp());
64
+
54
65
  const RE2 = await getRE2Class();
55
66
  const ajv = createAjv(RE2);
56
67
  bls = await BlsSignatures.getInstance();
57
68
 
69
+ const blsAdapter = {
70
+ validatePublicKey(publicKeyBuffer) {
71
+ let pk;
72
+
73
+ try {
74
+ pk = bls.PublicKey.fromBytes(publicKeyBuffer);
75
+ } catch (e) {
76
+ return false;
77
+ }
78
+
79
+ return Boolean(pk);
80
+ },
81
+ };
82
+
58
83
  validator = new JsonSchemaValidator(ajv);
59
84
 
60
85
  validatePublicKeys = validatePublicKeysFactory(
@@ -62,14 +87,15 @@ describe('validatePublicKeysFactory', () => {
62
87
  identityPublicKeySchema,
63
88
  bls,
64
89
  );
90
+
91
+ publicKeysValidator = new PublicKeysValidator(blsAdapter);
65
92
  });
66
93
 
67
94
  describe('id', () => {
68
95
  it('should be present', () => {
69
96
  delete rawPublicKeys[1].id;
70
97
 
71
- const result = validatePublicKeys(rawPublicKeys);
72
-
98
+ const result = publicKeysValidator.validateKeys(rawPublicKeys);
73
99
  expectJsonSchemaError(result);
74
100
 
75
101
  const [error] = result.getErrors();
@@ -369,7 +395,7 @@ describe('validatePublicKeysFactory', () => {
369
395
  data: Buffer.from('01fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'),
370
396
  }];
371
397
 
372
- const result = validatePublicKeys(rawPublicKeys);
398
+ const result = publicKeysValidator.validateKeys(rawPublicKeys);
373
399
 
374
400
  expect(result.isValid()).to.be.true();
375
401
  });
@@ -389,7 +415,7 @@ describe('validatePublicKeysFactory', () => {
389
415
  expect(result.isValid()).to.be.true();
390
416
  });
391
417
 
392
- it('should return invalid result if BLS12_381 public key is invalid', () => {
418
+ it('should return invalid result if BLS12_381 public key is invalid', async () => {
393
419
  rawPublicKeys = [{
394
420
  id: 0,
395
421
  type: IdentityPublicKey.TYPES.BLS12_381,
@@ -399,15 +425,15 @@ describe('validatePublicKeysFactory', () => {
399
425
  data: Buffer.from('11fac99ca2c8f39c286717c213e190aba4b7af76db320ec43f479b7d9a2012313a0ae59ca576edf801444bc694686694', 'hex'),
400
426
  }];
401
427
 
402
- const result = validatePublicKeys(rawPublicKeys);
428
+ const result = publicKeysValidator.validateKeys(rawPublicKeys);
403
429
 
404
- expectValidationError(result, InvalidIdentityPublicKeyDataError);
430
+ await expectValidationError(result, InvalidIdentityPublicKeyDataErrorWasm);
405
431
 
406
432
  const [error] = result.getErrors();
407
433
 
408
434
  expect(error.getCode()).to.equal(1040);
409
435
  expect(error.getPublicKeyId()).to.deep.equal(rawPublicKeys[0].id);
410
- expect(error.getValidationError()).to.be.instanceOf(TypeError);
436
+ expect(error.getValidationError()).to.be.instanceOf(PublicKeyValidationError);
411
437
  expect(error.getValidationError().message).to.equal('Invalid public key');
412
438
  });
413
439
 
@@ -1,20 +1,20 @@
1
1
  const { PrivateKey, crypto: { Hash } } = require('@dashevo/dashcore-lib');
2
2
 
3
3
  const crypto = require('crypto');
4
- const calculateStateTransitionFee = require('../../../lib/stateTransition/fee/calculateStateTransitionFee');
5
-
6
- const StateTransitionMock = require('../../../lib/test/mocks/StateTransitionMock');
7
- const IdentityPublicKey = require('../../../lib/identity/IdentityPublicKey');
8
- const InvalidSignatureTypeError = require('../../../lib/stateTransition/errors/InvalidIdentityPublicKeyTypeError');
9
- const InvalidSignaturePublicKeyError = require('../../../lib/stateTransition/errors/InvalidSignaturePublicKeyError');
10
- const PublicKeySecurityLevelNotMetError = require('../../../lib/stateTransition/errors/PublicKeySecurityLevelNotMetError');
11
- const WrongPublicKeyPurposeError = require('../../../lib/stateTransition/errors/WrongPublicKeyPurposeError');
12
- const StateTransitionIsNotSignedError = require('../../../lib/stateTransition/errors/StateTransitionIsNotSignedError');
13
- const PublicKeyMismatchError = require('../../../lib/stateTransition/errors/PublicKeyMismatchError');
14
- const BlsSignatures = require('../../../lib/bls/bls');
15
- const PublicKeyIsDisabledError = require('../../../lib/stateTransition/errors/PublicKeyIsDisabledError');
16
- const InvalidSignaturePublicKeySecurityLevelError = require('../../../lib/stateTransition/errors/InvalidSignaturePublicKeySecurityLevelError');
17
- const stateTransitionTypes = require('../../../lib/stateTransition/stateTransitionTypes');
4
+ const calculateStateTransitionFee = require('@dashevo/dpp/lib/stateTransition/fee/calculateStateTransitionFee');
5
+
6
+ const StateTransitionMock = require('@dashevo/dpp/lib/test/mocks/StateTransitionMock');
7
+ const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
8
+ const InvalidSignatureTypeError = require('@dashevo/dpp/lib/stateTransition/errors/InvalidIdentityPublicKeyTypeError');
9
+ const InvalidSignaturePublicKeyError = require('@dashevo/dpp/lib/stateTransition/errors/InvalidSignaturePublicKeyError');
10
+ const PublicKeySecurityLevelNotMetError = require('@dashevo/dpp/lib/stateTransition/errors/PublicKeySecurityLevelNotMetError');
11
+ const WrongPublicKeyPurposeError = require('@dashevo/dpp/lib/stateTransition/errors/WrongPublicKeyPurposeError');
12
+ const StateTransitionIsNotSignedError = require('@dashevo/dpp/lib/stateTransition/errors/StateTransitionIsNotSignedError');
13
+ const PublicKeyMismatchError = require('@dashevo/dpp/lib/stateTransition/errors/PublicKeyMismatchError');
14
+ const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
15
+ const PublicKeyIsDisabledError = require('@dashevo/dpp/lib/stateTransition/errors/PublicKeyIsDisabledError');
16
+ const InvalidSignaturePublicKeySecurityLevelError = require('@dashevo/dpp/lib/stateTransition/errors/InvalidSignaturePublicKeySecurityLevelError');
17
+ const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
18
18
 
19
19
  describe('AbstractStateTransitionIdentitySigned', () => {
20
20
  let stateTransition;
@@ -1,25 +1,25 @@
1
1
  const { PrivateKey } = require('@dashevo/dashcore-lib');
2
2
 
3
- const DashPlatformProtocol = require('../../../lib/DashPlatformProtocol');
3
+ const DashPlatformProtocol = require('@dashevo/dpp/lib/DashPlatformProtocol');
4
4
 
5
- const DataContractCreateTransition = require('../../../lib/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition');
5
+ const DataContractCreateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition');
6
6
 
7
- const ValidationResult = require('../../../lib/validation/ValidationResult');
7
+ const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
8
8
 
9
- const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
10
- const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
11
- const getIdentityCreateTransitionFixture = require('../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
9
+ const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
10
+ const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
11
+ const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
12
12
 
13
- const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
13
+ const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
14
14
 
15
- const DataContractFactory = require('../../../lib/dataContract/DataContractFactory');
16
- const DocumentFactory = require('../../../lib/document/DocumentFactory');
15
+ const DataContractFactory = require('@dashevo/dpp/lib/dataContract/DataContractFactory');
16
+ const DocumentFactory = require('@dashevo/dpp/lib/document/DocumentFactory');
17
17
 
18
- const IdentityPublicKey = require('../../../lib/identity/IdentityPublicKey');
18
+ const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
19
19
 
20
- const MissingOptionError = require('../../../lib/errors/MissingOptionError');
21
- const createDPPMock = require('../../../lib/test/mocks/createDPPMock');
22
- const SomeConsensusError = require('../../../lib/test/mocks/SomeConsensusError');
20
+ const MissingOptionError = require('@dashevo/dpp/lib/errors/MissingOptionError');
21
+ const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
22
+ const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
23
23
 
24
24
  describe('StateTransitionFacade', () => {
25
25
  let dpp;
@@ -67,15 +67,11 @@ describe('StateTransitionFacade', () => {
67
67
  getBalance,
68
68
  };
69
69
 
70
- const timeInSeconds = Math.ceil(new Date().getTime() / 1000);
70
+ const blockTime = Date.now();
71
71
 
72
72
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
73
73
  stateRepositoryMock.fetchIdentity.resolves(identity);
74
- stateRepositoryMock.fetchLatestPlatformBlockHeader.resolves({
75
- time: {
76
- seconds: timeInSeconds,
77
- },
78
- });
74
+ stateRepositoryMock.fetchLatestPlatformBlockTime.returns(blockTime);
79
75
 
80
76
  dpp = new DashPlatformProtocol({
81
77
  stateRepository: stateRepositoryMock,