@dashevo/wasm-dpp 0.25.0-dev.12 → 0.25.0-dev.13

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 (88) hide show
  1. package/Cargo.toml +6 -5
  2. package/dist/wasm/wasm_dpp.d.ts +685 -639
  3. package/dist/wasm/wasm_dpp.js +64 -50
  4. package/dist/wasm/wasm_dpp_bg.js +1 -1
  5. package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +2 -2
  6. package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
  7. package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
  8. package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
  9. package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
  10. package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
  11. package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
  12. package/lib/test/mocks/createStateRepositoryMock.js +1 -0
  13. package/lib/wasm/wasm_dpp.d.ts +685 -639
  14. package/package.json +3 -3
  15. package/scripts/build-wasm.sh +26 -29
  16. package/src/data_contract/data_contract.rs +99 -54
  17. package/src/data_contract/data_contract_facade.rs +5 -2
  18. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +0 -5
  19. package/src/data_contract_factory/data_contract_factory.rs +5 -1
  20. package/src/document/mod.rs +4 -4
  21. package/src/errors/consensus/consensus_error.rs +5 -0
  22. package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +42 -0
  23. package/src/errors/consensus/state/document/mod.rs +2 -0
  24. package/src/errors/value_error.rs +5 -0
  25. package/src/identity/mod.rs +8 -1
  26. package/src/identity/state_transition/mod.rs +1 -0
  27. package/src/identity/state_transition/transition_types.rs +30 -0
  28. package/src/lib.rs +1 -2
  29. package/src/protocol_version.rs +7 -0
  30. package/src/state_transition/errors/invalid_state_transition_error.rs +14 -1
  31. package/src/state_transition/state_transition_facade.rs +6 -1
  32. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +5 -5
  33. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +5 -5
  34. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +2 -2
  35. package/test/integration/document/DocumentFacade.spec.js +4 -4
  36. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +5 -6
  37. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +14 -14
  38. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  39. package/test/integration/document/validation/validateDocumentFactory.spec.js +2 -2
  40. package/test/integration/identity/IdentityFacade.spec.js +8 -8
  41. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +4 -6
  42. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +3 -6
  43. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +20 -23
  44. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +1 -1
  45. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +3 -3
  46. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +5 -8
  47. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +3 -4
  48. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +2 -3
  49. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +2 -6
  50. package/test/integration/identity/validation/validateIdentityFactory.spec.js +6 -5
  51. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +4 -24
  52. package/test/integration/stateTransition/StateTransitionFacade.spec.js +11 -15
  53. package/test/unit/DashPlatformProtocol.spec.js +6 -7
  54. package/test/unit/dataContract/DataContract.spec.js +9 -9
  55. package/test/unit/dataContract/DataContractFactory.spec.js +3 -3
  56. package/test/unit/dataContract/createDataContract.spec.js +5 -5
  57. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -14
  58. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +6 -8
  59. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +3 -3
  60. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +14 -12
  61. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +6 -6
  62. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +4 -4
  63. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +5 -5
  64. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +6 -6
  65. package/test/unit/document/Document.spec.js +5 -4
  66. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +10 -11
  67. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +8 -8
  68. package/test/unit/identity/Identity.spec.js +14 -6
  69. package/test/unit/identity/IdentityFactory.spec.js +11 -11
  70. package/test/unit/identity/IdentityPublicKey.spec.js +2 -2
  71. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +13 -14
  72. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +7 -13
  73. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +3 -7
  74. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -14
  75. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +5 -9
  76. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +4 -8
  77. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +11 -16
  78. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +1 -1
  79. package/test/unit/stateTransition/StateTransitionFactory.spec.js +6 -7
  80. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +41 -19
  81. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +6 -12
  82. package/src/decode_protocol_entity.rs +0 -25
  83. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  84. package/test/integration/util/generateEntropy.spec.js +0 -17
  85. package/test/integration/util/serializer.spec.js +0 -24
  86. package/test/unit/decodeProtocolEntityFactory.spec.js +0 -72
  87. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  88. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,4 +1,4 @@
1
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
1
+ const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
2
2
  const { expectValidationError, expectJsonSchemaError } = require('../../../../lib/test/expect/expectError');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../dist');
@@ -18,16 +18,17 @@ describe('validateIdentityFactory', () => {
18
18
  ({ IdentityValidator, Identity, UnsupportedProtocolVersionError } = await loadWasmDpp());
19
19
  });
20
20
 
21
- beforeEach(async () => {
21
+ beforeEach(async function () {
22
+ this.timeout(20000);
22
23
  const blsAdapter = await getBlsAdapterMock();
23
24
 
24
25
  const validator = new IdentityValidator(blsAdapter);
25
26
 
26
27
  validateIdentity = (value) => validator.validate(value);
27
28
 
28
- const identityObjectJS = getIdentityFixture().toObject();
29
- identityObjectJS.id = await generateRandomIdentifierAsync();
30
- identity = new Identity(identityObjectJS);
29
+ const identityObject = (await getIdentityFixture()).toObject();
30
+ identityObject.id = await generateRandomIdentifierAsync();
31
+ identity = new Identity(identityObject);
31
32
 
32
33
  rawIdentity = identity.toObject();
33
34
  });
@@ -1,8 +1,7 @@
1
1
  const crypto = require('crypto');
2
2
 
3
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
4
-
5
- const BlsSignatures = require('@dashevo/dpp/lib/bls/bls');
3
+ const getIdentityFixture = require('../../../../lib/test/fixtures/getIdentityFixture');
4
+ const getBlsMock = require('../../../../lib/test/mocks/getBlsAdapterMock');
6
5
 
7
6
  const {
8
7
  expectValidationError,
@@ -16,7 +15,6 @@ describe('validatePublicKeysFactory', function main() {
16
15
 
17
16
  let rawPublicKeys;
18
17
  let validatePublicKeys;
19
- let bls;
20
18
  let publicKeysValidator;
21
19
 
22
20
  let PublicKeysValidator;
@@ -28,7 +26,7 @@ describe('validatePublicKeysFactory', function main() {
28
26
  let InvalidIdentityPublicKeySecurityLevelError;
29
27
 
30
28
  beforeEach(async () => {
31
- ({ publicKeys: rawPublicKeys } = getIdentityFixture().toObject());
29
+ ({ publicKeys: rawPublicKeys } = (await getIdentityFixture()).toObject());
32
30
 
33
31
  ({
34
32
  PublicKeysValidator, IdentityPublicKey,
@@ -37,25 +35,7 @@ describe('validatePublicKeysFactory', function main() {
37
35
  InvalidIdentityPublicKeyDataError, InvalidIdentityPublicKeySecurityLevelError,
38
36
  } = await loadWasmDpp());
39
37
 
40
- bls = await BlsSignatures.getInstance();
41
-
42
- const blsAdapter = {
43
- validatePublicKey(publicKeyBuffer) {
44
- let pk;
45
-
46
- try {
47
- pk = bls.G1Element.fromBytes(publicKeyBuffer);
48
- } catch (e) {
49
- return false;
50
- } finally {
51
- if (pk) {
52
- pk.delete();
53
- }
54
- }
55
-
56
- return Boolean(pk);
57
- },
58
- };
38
+ const blsAdapter = await getBlsMock();
59
39
 
60
40
  publicKeysValidator = new PublicKeysValidator(blsAdapter);
61
41
 
@@ -1,11 +1,10 @@
1
1
  const { PrivateKey } = require('@dashevo/dashcore-lib');
2
2
  const crypto = require('crypto');
3
3
 
4
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
4
+ const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
5
5
 
6
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
7
-
8
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
6
+ const getIdentityFixture = require('../../../lib/test/fixtures/getIdentityFixture');
7
+ const getIdentityCreateTransitionFixture = require('../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
9
8
  const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
10
9
  const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
11
10
 
@@ -33,7 +32,6 @@ describe('StateTransitionFacade', () => {
33
32
  let DocumentFactory;
34
33
  let DocumentValidator;
35
34
  let ProtocolVersionValidator;
36
- let IdentityCreateTransition;
37
35
  let UnsupportedProtocolVersionError;
38
36
  let InvalidStateTransitionSignatureError;
39
37
  let DataContractAlreadyPresentError;
@@ -52,7 +50,6 @@ describe('StateTransitionFacade', () => {
52
50
  DocumentFactory,
53
51
  DocumentValidator,
54
52
  ProtocolVersionValidator,
55
- IdentityCreateTransition,
56
53
  UnsupportedProtocolVersionError,
57
54
  InvalidStateTransitionSignatureError,
58
55
  DataContractAlreadyPresentError,
@@ -62,6 +59,7 @@ describe('StateTransitionFacade', () => {
62
59
  });
63
60
 
64
61
  beforeEach(async function beforeEach() {
62
+ this.timeout(20000);
65
63
  const privateKeyModel = new PrivateKey();
66
64
  const privateKey = privateKeyModel.toBuffer();
67
65
  const publicKey = privateKeyModel.toPublicKey().toBuffer();
@@ -69,6 +67,8 @@ describe('StateTransitionFacade', () => {
69
67
 
70
68
  executionContext = new StateTransitionExecutionContext();
71
69
 
70
+ stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
71
+
72
72
  identityPublicKey = new IdentityPublicKey({
73
73
  id: publicKeyId,
74
74
  type: IdentityPublicKey.TYPES.ECDSA_SECP256K1,
@@ -99,15 +99,14 @@ describe('StateTransitionFacade', () => {
99
99
  });
100
100
  await documentsBatchTransition.sign(identityPublicKey, privateKey);
101
101
 
102
- const identityObjectJS = getIdentityFixture().toObject();
103
- identityObjectJS.id = await generateRandomIdentifierAsync();
104
- identityObjectJS.balance = 10000000;
105
- identity = new Identity(identityObjectJS);
102
+ const identityObject = (await getIdentityFixture()).toObject();
103
+ identityObject.id = await generateRandomIdentifierAsync();
104
+ identityObject.balance = 10000000;
105
+ identity = new Identity(identityObject);
106
106
  identity.setPublicKeys([identityPublicKey]);
107
107
 
108
108
  const blockTime = Date.now();
109
109
 
110
- stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
111
110
  stateRepositoryMock.fetchIdentity.resolves(identity);
112
111
  stateRepositoryMock.fetchIdentityBalance.resolves(identity.getBalance());
113
112
  stateRepositoryMock.fetchLatestPlatformBlockTime.resolves(blockTime);
@@ -254,10 +253,7 @@ describe('StateTransitionFacade', () => {
254
253
  'af432c476f65211f45f48f1d42c9c0b497e56696aa1736b40544ef1a496af837',
255
254
  );
256
255
 
257
- const identityCreateTransitionJS = getIdentityCreateTransitionFixture(oneTimePrivateKey);
258
- const identityCreateTransition = new IdentityCreateTransition(
259
- identityCreateTransitionJS.toObject(),
260
- );
256
+ const identityCreateTransition = await getIdentityCreateTransitionFixture(oneTimePrivateKey);
261
257
 
262
258
  await identityCreateTransition.signByPrivateKey(
263
259
  oneTimePrivateKey.toBuffer(),
@@ -1,9 +1,8 @@
1
1
  const crypto = require('crypto');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
3
2
 
4
3
  const createStateRepositoryMock = require('../../lib/test/mocks/createStateRepositoryMock');
5
4
  const getBlsAdapterMock = require('../../lib/test/mocks/getBlsAdapterMock');
6
- let { DashPlatformProtocol } = require('../..');
5
+ const { DashPlatformProtocol, getLatestProtocolVersion } = require('../..');
7
6
  const { default: loadWasmDpp } = require('../..');
8
7
 
9
8
  describe('DashPlatformProtocol', () => {
@@ -11,14 +10,14 @@ describe('DashPlatformProtocol', () => {
11
10
  let stateRepositoryMock;
12
11
 
13
12
  beforeEach(async function beforeEach() {
14
- ({ DashPlatformProtocol } = await loadWasmDpp());
13
+ await loadWasmDpp();
15
14
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
16
15
 
17
16
  dpp = new DashPlatformProtocol(
18
17
  getBlsAdapterMock(),
19
18
  stateRepositoryMock,
20
19
  { generate: () => crypto.randomBytes(32) },
21
- protocolVersion.latestVersion,
20
+ getLatestProtocolVersion(),
22
21
  );
23
22
  });
24
23
 
@@ -26,7 +25,7 @@ describe('DashPlatformProtocol', () => {
26
25
  it('should set default protocol version', () => {
27
26
  dpp = new DashPlatformProtocol();
28
27
 
29
- expect(dpp.protocolVersion).to.equal(protocolVersion.latestVersion);
28
+ expect(dpp.protocolVersion).to.equal(getLatestProtocolVersion());
30
29
  });
31
30
  });
32
31
 
@@ -40,7 +39,7 @@ describe('DashPlatformProtocol', () => {
40
39
 
41
40
  describe('setProtocolVersion', () => {
42
41
  it('should set protocol version', () => {
43
- expect(dpp.protocolVersion).to.equal(protocolVersion.latestVersion);
42
+ expect(dpp.protocolVersion).to.equal(getLatestProtocolVersion());
44
43
 
45
44
  dpp.setProtocolVersion(42);
46
45
 
@@ -50,7 +49,7 @@ describe('DashPlatformProtocol', () => {
50
49
 
51
50
  describe('getProtocolVersion', () => {
52
51
  it('should get protocol version', () => {
53
- expect(dpp.protocolVersion).to.equal(protocolVersion.latestVersion);
52
+ expect(dpp.protocolVersion).to.equal(getLatestProtocolVersion());
54
53
 
55
54
  dpp.setProtocolVersion(42);
56
55
 
@@ -1,6 +1,6 @@
1
1
  const bs58 = require('bs58');
2
2
 
3
- const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
3
+ const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
4
4
 
5
5
  const { default: loadWasmDpp } = require('../../../dist');
6
6
 
@@ -25,7 +25,7 @@ describe('DataContract', () => {
25
25
  } = await loadWasmDpp());
26
26
  });
27
27
 
28
- beforeEach(() => {
28
+ beforeEach(async () => {
29
29
  documentType = 'niceDocument';
30
30
 
31
31
  documentSchema = {
@@ -44,9 +44,9 @@ describe('DataContract', () => {
44
44
  [documentType]: documentSchema,
45
45
  };
46
46
 
47
- ownerId = generateRandomIdentifier();
47
+ ownerId = (await generateRandomIdentifier()).toBuffer();
48
48
  entropy = Buffer.alloc(32, 420);
49
- contractId = generateRandomIdentifier();
49
+ contractId = (await generateRandomIdentifier()).toBuffer();
50
50
 
51
51
  defs = { something: { type: 'string' } };
52
52
 
@@ -62,8 +62,8 @@ describe('DataContract', () => {
62
62
  });
63
63
 
64
64
  describe('constructor', () => {
65
- it('should create new DataContract', () => {
66
- const id = generateRandomIdentifier();
65
+ it('should create new DataContract', async () => {
66
+ const id = (await generateRandomIdentifier()).toBuffer();
67
67
 
68
68
  dataContract = new DataContract({
69
69
  $schema: DataContractDefaults.SCHEMA,
@@ -75,8 +75,8 @@ describe('DataContract', () => {
75
75
  $defs: defs,
76
76
  });
77
77
 
78
- expect(dataContract.getId().toBuffer()).to.deep.equal(id.toBuffer());
79
- expect(dataContract.getOwnerId().toBuffer()).to.deep.equal(ownerId.toBuffer());
78
+ expect(dataContract.getId().toBuffer()).to.deep.equal(id);
79
+ expect(dataContract.getOwnerId().toBuffer()).to.deep.equal(ownerId);
80
80
  expect(dataContract.getJsonMetaSchema()).to.deep.equal(DataContractDefaults.SCHEMA);
81
81
  expect(dataContract.getDocuments()).to.deep.equal(documents);
82
82
  expect(dataContract.getDefinitions()).to.deep.equal(defs);
@@ -87,7 +87,7 @@ describe('DataContract', () => {
87
87
  it('should return DataContract Identifier', () => {
88
88
  const result = dataContract.getId();
89
89
 
90
- expect(result.toBuffer()).to.deep.equal(contractId.toBuffer());
90
+ expect(result.toBuffer()).to.deep.equal(contractId);
91
91
  expect(result).to.be.instanceof(Identifier);
92
92
  });
93
93
  });
@@ -1,7 +1,7 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
1
  const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp, UnsupportedProtocolVersionError } = require('../../../dist');
3
+ const { default: loadWasmDpp, UnsupportedProtocolVersionError } = require('../../..');
4
+ const { getLatestProtocolVersion } = require('../../..');
5
5
 
6
6
  describe('DataContractFactory', () => {
7
7
  let DataContractFactory;
@@ -112,7 +112,7 @@ describe('DataContractFactory', () => {
112
112
 
113
113
  const result = await factory.createDataContractCreateTransition(newDataContract);
114
114
 
115
- expect(result.getProtocolVersion()).to.equal(protocolVersion.latestVersion);
115
+ expect(result.getProtocolVersion()).to.equal(getLatestProtocolVersion());
116
116
  expect(result.getEntropy()).to.deep.equal(dataContract.getEntropy());
117
117
  expect(result.getDataContract().toObject()).to.deep.equal(dataContract.toObject());
118
118
  });
@@ -1,6 +1,6 @@
1
- const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
1
+ const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
2
2
 
3
- const { default: loadWasmDpp } = require('../../../dist');
3
+ const { default: loadWasmDpp } = require('../../..');
4
4
 
5
5
  describe('createDataContract', () => {
6
6
  let rawDataContract;
@@ -12,10 +12,10 @@ describe('createDataContract', () => {
12
12
  } = await loadWasmDpp());
13
13
  });
14
14
 
15
- beforeEach(() => {
15
+ beforeEach(async () => {
16
16
  rawDataContract = {
17
- $id: generateRandomIdentifier().toBuffer(),
18
- ownerId: generateRandomIdentifier().toBuffer(),
17
+ $id: (await generateRandomIdentifier()).toBuffer(),
18
+ ownerId: (await generateRandomIdentifier()).toBuffer(),
19
19
  protocolVersion: 4,
20
20
  version: 20,
21
21
  $schema: 'http://test.com/schema',
@@ -1,9 +1,6 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
3
-
4
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
5
-
6
- const { default: loadWasmDpp } = require('../../../../../dist');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
2
+ const { default: loadWasmDpp } = require('../../../../..');
3
+ const { getLatestProtocolVersion, StateTransitionTypes } = require('../../../../..');
7
4
 
8
5
  describe('DataContractCreateTransition', () => {
9
6
  let stateTransition;
@@ -17,11 +14,11 @@ describe('DataContractCreateTransition', () => {
17
14
  } = await loadWasmDpp());
18
15
  });
19
16
 
20
- beforeEach(() => {
21
- dataContract = getDataContractFixture();
17
+ beforeEach(async () => {
18
+ dataContract = await getDataContractFixture();
22
19
 
23
20
  stateTransition = new DataContractCreateTransition({
24
- protocolVersion: protocolVersion.latestVersion,
21
+ protocolVersion: getLatestProtocolVersion(),
25
22
  dataContract: dataContract.toObject(),
26
23
  entropy: dataContract.getEntropy(),
27
24
  });
@@ -31,7 +28,7 @@ describe('DataContractCreateTransition', () => {
31
28
  it('should return the current protocol version', () => {
32
29
  const result = stateTransition.getProtocolVersion();
33
30
 
34
- expect(result).to.equal(protocolVersion.latestVersion);
31
+ expect(result).to.equal(getLatestProtocolVersion());
35
32
  });
36
33
  });
37
34
 
@@ -39,7 +36,7 @@ describe('DataContractCreateTransition', () => {
39
36
  it('should return State Transition type', () => {
40
37
  const result = stateTransition.getType();
41
38
 
42
- expect(result).to.equal(stateTransitionTypes.DATA_CONTRACT_CREATE);
39
+ expect(result).to.equal(StateTransitionTypes.DataContractCreate);
43
40
  });
44
41
  });
45
42
 
@@ -53,10 +50,13 @@ describe('DataContractCreateTransition', () => {
53
50
 
54
51
  describe('#toJSON', () => {
55
52
  it('should return State Transition as plain JS object', () => {
53
+ const dc = dataContract.toJSON();
54
+ delete dc.$defs;
55
+
56
56
  expect(stateTransition.toJSON(true)).to.deep.equal({
57
- protocolVersion: protocolVersion.latestVersion,
58
- type: stateTransitionTypes.DATA_CONTRACT_CREATE,
59
- dataContract: dataContract.toJSON(),
57
+ protocolVersion: getLatestProtocolVersion(),
58
+ type: StateTransitionTypes.DataContractCreate,
59
+ dataContract: dc,
60
60
  entropy: dataContract.getEntropy().toString('base64'),
61
61
  });
62
62
  });
@@ -1,8 +1,6 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
-
3
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
4
-
5
- const { default: loadWasmDpp } = require('../../../../../dist');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
2
+ const { default: loadWasmDpp } = require('../../../../..');
3
+ const { getLatestProtocolVersion } = require('../../../../..');
6
4
 
7
5
  describe('applyDataContractCreateTransitionFactory', () => {
8
6
  let stateTransition;
@@ -20,11 +18,11 @@ describe('applyDataContractCreateTransitionFactory', () => {
20
18
  } = await loadWasmDpp());
21
19
  });
22
20
 
23
- beforeEach(() => {
24
- dataContract = getDataContractFixture();
21
+ beforeEach(async () => {
22
+ dataContract = await getDataContractFixture();
25
23
 
26
24
  stateTransition = new DataContractCreateTransition({
27
- protocolVersion: protocolVersion.latestVersion,
25
+ protocolVersion: getLatestProtocolVersion(),
28
26
  dataContract: dataContract.toObject(),
29
27
  entropy: Buffer.alloc(32),
30
28
  });
@@ -1,7 +1,7 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
1
  const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../../../..');
5
5
 
6
6
  describe('validateDataContractCreateTransitionStateFactory', () => {
7
7
  let validateDataContractCreateTransitionState;
@@ -30,7 +30,7 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
30
30
  beforeEach(async () => {
31
31
  dataContract = await getDataContractFixture();
32
32
  stateTransition = new DataContractCreateTransition({
33
- protocolVersion: protocolVersion.latestVersion,
33
+ protocolVersion: getLatestProtocolVersion(),
34
34
  dataContract: dataContract.toObject(),
35
35
  entropy: dataContract.getEntropy(),
36
36
  });
@@ -1,9 +1,8 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
3
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
4
1
  const JsDataContractUpdateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition');
5
2
 
6
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
4
+ const { default: loadWasmDpp } = require('../../../../..');
5
+ const { getLatestProtocolVersion, StateTransitionTypes } = require('../../../../..');
7
6
 
8
7
  describe('DataContractUpdateTransition', () => {
9
8
  let stateTransition;
@@ -17,11 +16,11 @@ describe('DataContractUpdateTransition', () => {
17
16
  } = await loadWasmDpp());
18
17
  });
19
18
 
20
- beforeEach(() => {
21
- dataContract = getDataContractFixture();
19
+ beforeEach(async () => {
20
+ dataContract = await getDataContractFixture();
22
21
 
23
22
  stateTransition = new DataContractUpdateTransition({
24
- protocolVersion: protocolVersion.latestVersion,
23
+ protocolVersion: getLatestProtocolVersion(),
25
24
  dataContract: dataContract.toObject(),
26
25
  });
27
26
  });
@@ -30,7 +29,7 @@ describe('DataContractUpdateTransition', () => {
30
29
  it('should return the current protocol version', () => {
31
30
  const result = stateTransition.getProtocolVersion();
32
31
 
33
- expect(result).to.equal(protocolVersion.latestVersion);
32
+ expect(result).to.equal(getLatestProtocolVersion());
34
33
  });
35
34
  });
36
35
 
@@ -38,7 +37,7 @@ describe('DataContractUpdateTransition', () => {
38
37
  it('should return State Transition type', () => {
39
38
  const result = stateTransition.getType();
40
39
 
41
- expect(result).to.equal(stateTransitionTypes.DATA_CONTRACT_UPDATE);
40
+ expect(result).to.equal(StateTransitionTypes.DataContractUpdate);
42
41
  });
43
42
  });
44
43
 
@@ -52,10 +51,13 @@ describe('DataContractUpdateTransition', () => {
52
51
 
53
52
  describe('#toJSON', () => {
54
53
  it('should return State Transition as plain JS object', () => {
54
+ const dc = dataContract.toJSON();
55
+ delete dc.$defs;
56
+
55
57
  expect(stateTransition.toJSON(true)).to.deep.equal({
56
- protocolVersion: protocolVersion.latestVersion,
57
- type: stateTransitionTypes.DATA_CONTRACT_UPDATE,
58
- dataContract: dataContract.toJSON(),
58
+ protocolVersion: getLatestProtocolVersion(),
59
+ type: StateTransitionTypes.DataContractUpdate,
60
+ dataContract: dc,
59
61
  });
60
62
  });
61
63
  });
@@ -1,7 +1,7 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
1
+ const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../..');
5
5
 
6
6
  describe('applyDataContractUpdateTransitionFactory', () => {
7
7
  let stateTransition;
@@ -21,12 +21,12 @@ describe('applyDataContractUpdateTransitionFactory', () => {
21
21
  } = await loadWasmDpp());
22
22
  });
23
23
 
24
- beforeEach(() => {
25
- dataContract = getDataContractFixture();
24
+ beforeEach(async () => {
25
+ dataContract = await getDataContractFixture();
26
26
 
27
27
  stateTransition = new DataContractUpdateTransition({
28
28
  dataContract: dataContract.toObject(),
29
- protocolVersion: protocolVersion.latestVersion,
29
+ protocolVersion: getLatestProtocolVersion(),
30
30
  });
31
31
 
32
32
  executionContext = new StateTransitionExecutionContext();
@@ -1,4 +1,4 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
2
2
 
3
3
  const { default: loadWasmDpp } = require('../../../../../../../dist');
4
4
 
@@ -19,9 +19,9 @@ describe('validateIndicesAreBackwardCompatible', () => {
19
19
  } = await loadWasmDpp());
20
20
  });
21
21
 
22
- beforeEach(() => {
23
- const oldDataContract = getDataContractFixture();
24
- const newDataContract = getDataContractFixture();
22
+ beforeEach(async () => {
23
+ const oldDataContract = await getDataContractFixture();
24
+ const newDataContract = await getDataContractFixture();
25
25
 
26
26
  oldDocumentsSchema = oldDataContract.getDocuments();
27
27
  newDocumentsSchema = newDataContract.getDocuments();
@@ -1,7 +1,7 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
1
  const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
2
 
4
- const { default: loadWasmDpp } = require('../../../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../../../..');
4
+ const { getLatestProtocolVersion } = require('../../../../../../..');
5
5
 
6
6
  describe('validateDataContractUpdateTransitionStateFactory', () => {
7
7
  let validateDataContractUpdateTransitionState;
@@ -39,13 +39,13 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
39
39
 
40
40
  stateTransition = new DataContractUpdateTransition({
41
41
  dataContract: updatedRawDataContract,
42
- protocolVersion: protocolVersion.latestVersion,
42
+ protocolVersion: getLatestProtocolVersion(),
43
43
  });
44
44
 
45
45
  executionContext = new StateTransitionExecutionContext();
46
46
 
47
47
  const validator = new DataContractValidator();
48
- const dataContractFactory = new DataContractFactory(protocolVersion.latestVersion, validator);
48
+ const dataContractFactory = new DataContractFactory(getLatestProtocolVersion(), validator);
49
49
  const reCreatedDataContract = await dataContractFactory
50
50
  .createFromBuffer(dataContract.toBuffer());
51
51
 
@@ -88,7 +88,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
88
88
 
89
89
  const badStateTransition = new DataContractUpdateTransition({
90
90
  dataContract: badlyUpdatedRawDataContract,
91
- protocolVersion: protocolVersion.latestVersion,
91
+ protocolVersion: getLatestProtocolVersion(),
92
92
  });
93
93
 
94
94
  const result = await validateTransitionWithExistingContract(badStateTransition);
@@ -1,6 +1,6 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
1
+ const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
2
2
 
3
- const { default: loadWasmDpp } = require('../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../..');
4
4
 
5
5
  describe('validateDataContractPatterns', () => {
6
6
  let DataContractValidator;
@@ -13,8 +13,8 @@ describe('validateDataContractPatterns', () => {
13
13
  } = await loadWasmDpp());
14
14
  });
15
15
 
16
- it('should return valid result', () => {
17
- const rawDataContract = getDataContractFixture().toObject();
16
+ it('should return valid result', async () => {
17
+ const rawDataContract = (await getDataContractFixture()).toObject();
18
18
  delete rawDataContract.$defs;
19
19
 
20
20
  const schema = {
@@ -39,8 +39,8 @@ describe('validateDataContractPatterns', () => {
39
39
  expect(result.isValid()).to.be.true();
40
40
  });
41
41
 
42
- it('should return invalid result on incompatible pattern', () => {
43
- const rawDataContract = getDataContractFixture().toObject();
42
+ it('should return invalid result on incompatible pattern', async () => {
43
+ const rawDataContract = (await getDataContractFixture()).toObject();
44
44
  delete rawDataContract.$defs;
45
45
 
46
46
  const schema = {
@@ -4,12 +4,13 @@ const JsDocument = require('@dashevo/dpp/lib/document/Document');
4
4
  const DocumentCreateTransition = require(
5
5
  '@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/documentTransition/DocumentCreateTransition',
6
6
  );
7
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
7
+
8
8
  const createDPPMock = require('@dashevo/dpp/lib/test/mocks/createDPPMock');
9
9
  const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
10
10
 
11
11
  const generateRandomIdentifierAsync = require('../../../lib/test/utils/generateRandomIdentifierAsync');
12
- const { default: loadWasmDpp } = require('../../../dist');
12
+ const { default: loadWasmDpp } = require('../../..');
13
+ const { getLatestProtocolVersion } = require('../../..');
13
14
 
14
15
  let DataContractFactory;
15
16
  let DataContractValidator;
@@ -80,7 +81,7 @@ describe('Document', () => {
80
81
  dataContractJs = jsDataContractFactory.create(jsOwnerId, rawDataContract);
81
82
 
82
83
  rawDocument = {
83
- $protocolVersion: protocolVersion.latestVersion,
84
+ $protocolVersion: getLatestProtocolVersion(),
84
85
  $id: id,
85
86
  $type: 'test',
86
87
  $dataContractId: dataContract.getId(),
@@ -91,7 +92,7 @@ describe('Document', () => {
91
92
  };
92
93
 
93
94
  rawDocumentWithBuffers = {
94
- $protocolVersion: protocolVersion.latestVersion,
95
+ $protocolVersion: getLatestProtocolVersion(),
95
96
  $id: id.toBuffer(),
96
97
  $type: 'test',
97
98
  $dataContractId: dataContract.getId().toBuffer(),