@dashevo/wasm-dpp 0.25.0-dev.1 → 0.25.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 (43) hide show
  1. package/dist/wasm/wasm_dpp.d.ts +431 -436
  2. package/dist/wasm/wasm_dpp.js +39 -44
  3. package/dist/wasm/wasm_dpp_bg.js +1 -1
  4. package/lib/test/fixtures/getDocumentsFixture.js +5 -1
  5. package/lib/wasm/wasm_dpp.d.ts +431 -436
  6. package/package.json +3 -3
  7. package/src/dash_platform_protocol.rs +1 -1
  8. package/src/data_contract/data_contract.rs +2 -1
  9. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +6 -5
  10. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +6 -5
  11. package/src/document/extended_document.rs +2 -2
  12. package/src/document/state_transition/document_batch_transition/mod.rs +6 -9
  13. package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +6 -6
  14. package/src/identity/factory_utils.rs +4 -4
  15. package/src/identity/mod.rs +4 -2
  16. package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +11 -19
  17. package/src/identity/state_transition/identity_create_transition/to_object.rs +2 -2
  18. package/src/identity/state_transition/identity_public_key_transitions.rs +10 -10
  19. package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +7 -15
  20. package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
  21. package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +10 -18
  22. package/src/identity/state_transition/identity_update_transition/to_object.rs +2 -2
  23. package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
  24. package/src/state_transition/state_transition_facade.rs +3 -7
  25. package/src/state_transition/validation/validate_state_transition_identity_signature.rs +20 -6
  26. package/test/integration/dataContract/DataContractFacade.spec.js +17 -20
  27. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +5 -4
  28. package/test/integration/stateTransition/StateTransitionFacade.spec.js +1 -1
  29. package/test/unit/dataContract/DataContract.spec.js +9 -21
  30. package/test/unit/dataContract/DataContractFactory.spec.js +19 -28
  31. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +2 -4
  32. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +6 -5
  33. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -5
  34. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +5 -4
  35. package/test/unit/decodeProtocolEntityFactory.spec.js +4 -1
  36. package/test/unit/document/Document.spec.js +9 -7
  37. package/test/unit/document/DocumentFactory.spec.js +38 -90
  38. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +2 -3
  39. package/test/unit/identity/Identity.spec.js +3 -8
  40. package/test/unit/identity/IdentityFactory.spec.js +3 -4
  41. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +2 -2
  42. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +4 -16
  43. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +8 -4
@@ -1,5 +1,5 @@
1
- const getDataContractJSFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
1
  const crypto = require('crypto');
2
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
3
3
  const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
4
4
  const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
5
5
  const getPrivateAndPublicKey = require('../../../lib/test/fixtures/getPrivateAndPublicKeyForSigningFixture');
@@ -12,11 +12,10 @@ let {
12
12
 
13
13
  describe('DataContractFacade', () => {
14
14
  let dpp;
15
- let dataContractJs;
15
+ let dataContract;
16
16
  let dataContractFactory;
17
17
  let blsAdapter;
18
18
  let rawDataContract;
19
- let dataContractWasm;
20
19
  let stateTransitionMock;
21
20
 
22
21
  before(async () => {
@@ -34,29 +33,27 @@ describe('DataContractFacade', () => {
34
33
  blsAdapter, stateTransitionMock, { generate: () => crypto.randomBytes(32) }, 1,
35
34
  );
36
35
 
37
- dataContractJs = await getDataContractJSFixture();
38
- rawDataContract = dataContractJs.toObject();
36
+ dataContract = await getDataContractFixture();
37
+ rawDataContract = dataContract.toObject();
39
38
 
40
39
  const dataContractValidator = new DataContractValidator();
41
40
  dataContractFactory = new DataContractFactory(
42
41
  1,
43
42
  dataContractValidator,
44
43
  );
45
-
46
- dataContractWasm = await dataContractFactory.createFromObject(rawDataContract);
47
44
  });
48
45
 
49
46
  describe('create', () => {
50
47
  it('should create DataContract', () => {
51
48
  const result = dpp.dataContract.create(
52
- dataContractJs.getOwnerId(),
53
- dataContractJs.getDocuments(),
49
+ dataContract.getOwnerId(),
50
+ dataContract.getDocuments(),
54
51
  );
55
52
 
56
53
  expect(result).to.be.an.instanceOf(DataContract);
57
54
 
58
- expect(result.getOwnerId().toBuffer()).to.deep.equal(dataContractJs.getOwnerId().toBuffer());
59
- expect(result.getDocuments()).to.deep.equal(dataContractJs.getDocuments());
55
+ expect(result.getOwnerId().toBuffer()).to.deep.equal(dataContract.getOwnerId().toBuffer());
56
+ expect(result.getDocuments()).to.deep.equal(dataContract.getDocuments());
60
57
  });
61
58
  });
62
59
 
@@ -66,15 +63,15 @@ describe('DataContractFacade', () => {
66
63
 
67
64
  expect(result).to.be.an.instanceOf(DataContract);
68
65
 
69
- expect(result.toObject()).to.deep.equal(dataContractJs.toObject());
66
+ expect(result.toObject()).to.deep.equal(dataContract.toObject());
70
67
  });
71
68
  });
72
69
 
73
70
  describe('createFromBuffer', () => {
74
71
  it('should create DataContract from string', async () => {
75
72
  const contract = dpp.dataContract.create(
76
- dataContractJs.getOwnerId(),
77
- dataContractJs.getDocuments(),
73
+ dataContract.getOwnerId(),
74
+ dataContract.getDocuments(),
78
75
  );
79
76
 
80
77
  const result = await dpp.dataContract.createFromBuffer(contract.toBuffer());
@@ -87,9 +84,9 @@ describe('DataContractFacade', () => {
87
84
  describe('createDataContractCreateTransition', () => {
88
85
  it('should create DataContractCreateTransition from DataContract', async () => {
89
86
  const stateTransition = await dataContractFactory
90
- .createDataContractCreateTransition(dataContractWasm);
87
+ .createDataContractCreateTransition(dataContract);
91
88
 
92
- const result = dpp.dataContract.createDataContractCreateTransition(dataContractWasm);
89
+ const result = dpp.dataContract.createDataContractCreateTransition(dataContract);
93
90
 
94
91
  expect(result).to.be.an.instanceOf(DataContractCreateTransition);
95
92
 
@@ -99,12 +96,12 @@ describe('DataContractFacade', () => {
99
96
 
100
97
  describe('createDataContractUpdateTransition', () => {
101
98
  it('should create DataContractUpdateTransition from buffer', async () => {
102
- const dataContractBuffer = Buffer.from('01a56324696458205a3c9565f215156cfb330ef3a4a4400a1dad7415f4f1480e072d3419bb29c12c6724736368656d61783468747470733a2f2f736368656d612e646173682e6f72672f6470702d302d342d302f6d6574612f646174612d636f6e7472616374676f776e657249645820d5199a5b19334554d5dd483af53877251584ab9a66ca777bd1b2e8d2ec4808346776657273696f6e0169646f63756d656e7473a36c6e696365446f63756d656e74a46474797065666f626a656374687265717569726564816a246372656174656441746a70726f70657274696573a1646e616d65a1647479706566737472696e67746164646974696f6e616c50726f70657274696573f46e7769746842797465417272617973a56474797065666f626a65637467696e646963657381a2646e616d6566696e646578316a70726f7065727469657381a16e6279746541727261794669656c6463617363687265717569726564816e6279746541727261794669656c646a70726f70657274696573a26e6279746541727261794669656c64a36474797065656172726179686d61784974656d731069627974654172726179f56f6964656e7469666965724669656c64a56474797065656172726179686d61784974656d731820686d696e4974656d73182069627974654172726179f570636f6e74656e744d656469615479706578216170706c69636174696f6e2f782e646173682e6470702e6964656e746966696572746164646974696f6e616c50726f70657274696573f46f696e6465786564446f63756d656e74a56474797065666f626a65637467696e646963657386a3646e616d6566696e646578316a70726f7065727469657382a168246f776e6572496463617363a16966697273744e616d656361736366756e69717565f5a3646e616d6566696e646578326a70726f7065727469657382a168246f776e6572496463617363a1686c6173744e616d656361736366756e69717565f5a2646e616d6566696e646578336a70726f7065727469657381a1686c6173744e616d6563617363a2646e616d6566696e646578346a70726f7065727469657382a16a2463726561746564417463617363a16a2475706461746564417463617363a2646e616d6566696e646578356a70726f7065727469657381a16a2475706461746564417463617363a2646e616d6566696e646578366a70726f7065727469657381a16a2463726561746564417463617363687265717569726564846966697273744e616d656a246372656174656441746a24757064617465644174686c6173744e616d656a70726f70657274696573a2686c6173744e616d65a2647479706566737472696e67696d61784c656e677468183f6966697273744e616d65a2647479706566737472696e67696d61784c656e677468183f746164646974696f6e616c50726f70657274696573f4', 'hex');
99
+ const dataContractBuffer = dataContract.toBuffer();
103
100
 
104
- const dataContract = await dpp.dataContract.createFromBuffer(dataContractBuffer);
101
+ const dataContractNew = await dpp.dataContract.createFromBuffer(dataContractBuffer);
105
102
 
106
103
  const updatedDataContract = await dpp.dataContract.createFromObject(
107
- dataContract.toObject(),
104
+ dataContractNew.toObject(),
108
105
  );
109
106
 
110
107
  updatedDataContract.incrementVersion();
@@ -138,7 +135,7 @@ describe('DataContractFacade', () => {
138
135
  });
139
136
 
140
137
  it('should validate DataContract instance', async () => {
141
- const result = await dpp.dataContract.validate(dataContractWasm);
138
+ const result = await dpp.dataContract.validate(dataContract);
142
139
 
143
140
  expect(result).to.be.an.instanceOf(ValidationResult);
144
141
  expect(result.getErrors().length).to.be.equal(0);
@@ -1,6 +1,6 @@
1
1
  const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
2
  const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
3
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
4
4
  const { expectJsonSchemaError, expectValidationError, expectValueError } = require('../../../../../../../lib/test/expect/expectError');
5
5
 
6
6
  const { default: loadWasmDpp } = require('../../../../../../../dist');
@@ -39,7 +39,7 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
39
39
  });
40
40
 
41
41
  beforeEach(async function beforeEach() {
42
- dataContract = getDataContractFixture();
42
+ dataContract = await getDataContractFixture();
43
43
 
44
44
  rawDataContract = dataContract.toObject();
45
45
  rawDataContract.version += 1;
@@ -55,9 +55,10 @@ describe('validateDataContractUpdateTransitionBasicFactory', () => {
55
55
 
56
56
  const validator = new DataContractValidator();
57
57
  const dataContractFactory = new DataContractFactory(protocolVersion.latestVersion, validator);
58
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
58
+ const reCreatedDataContract = await dataContractFactory
59
+ .createFromBuffer(dataContract.toBuffer());
59
60
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
60
- stateRepositoryMock.fetchDataContract.resolves(wasmDataContract);
61
+ stateRepositoryMock.fetchDataContract.resolves(reCreatedDataContract);
61
62
 
62
63
  executionContext = new StateTransitionExecutionContext();
63
64
 
@@ -137,7 +137,7 @@ describe('StateTransitionFacade', () => {
137
137
  });
138
138
 
139
139
  describe('createFromBuffer', () => {
140
- it('should create State Transition from string', async () => {
140
+ it('should create Data Contract State Transition from buffer', async () => {
141
141
  const result = await dpp.stateTransition.createFromBuffer(
142
142
  dataContractCreateTransition.toBuffer(),
143
143
  );
@@ -1,7 +1,6 @@
1
1
  const bs58 = require('bs58');
2
2
 
3
3
  const generateRandomIdentifier = require('@dashevo/dpp/lib/test/utils/generateRandomIdentifier');
4
- const JsDataContract = require('@dashevo/dpp/lib/dataContract/DataContract');
5
4
 
6
5
  const { default: loadWasmDpp } = require('../../../dist');
7
6
 
@@ -9,7 +8,6 @@ describe('DataContract', () => {
9
8
  let documentType;
10
9
  let documentSchema;
11
10
  let documents;
12
- let jsDataContract;
13
11
  let ownerId;
14
12
  let entropy;
15
13
  let contractId;
@@ -52,16 +50,6 @@ describe('DataContract', () => {
52
50
 
53
51
  defs = { something: { type: 'string' } };
54
52
 
55
- jsDataContract = new JsDataContract({
56
- $schema: JsDataContract.DEFAULTS.SCHEMA,
57
- $id: contractId,
58
- version: 1,
59
- protocolVersion: 1,
60
- ownerId,
61
- documents,
62
- $defs: defs,
63
- });
64
-
65
53
  dataContract = new DataContract({
66
54
  $schema: DataContractDefaults.SCHEMA,
67
55
  $id: contractId,
@@ -285,21 +273,21 @@ describe('DataContract', () => {
285
273
 
286
274
  describe('#toBuffer', () => {
287
275
  it('should return DataContract as a Buffer', () => {
288
- expect(jsDataContract.getProtocolVersion()).to.deep.equal(dataContract.getProtocolVersion());
289
-
290
- const jsResult = jsDataContract.toBuffer();
291
- const wasmResult = dataContract.toBuffer();
292
-
293
- expect(wasmResult).to.deep.equal(jsResult);
276
+ const result = dataContract.toBuffer();
277
+ expect(result).to.be.instanceOf(Buffer);
278
+ expect(result).to.have.lengthOf(251);
294
279
  });
295
280
  });
296
281
 
282
+ // TODO: can not compare to JS because rust
283
+ // DataContract does not match JS anymore
297
284
  describe('#hash', () => {
298
285
  it('should return DataContract hash', () => {
299
- const jsResult = jsDataContract.hash();
286
+ // const jsResult = jsDataContract.hash();
300
287
  const wasmResult = dataContract.hash();
301
-
302
- expect(wasmResult).to.deep.equal(jsResult);
288
+ //
289
+ // expect(wasmResult).to.deep.equal(jsResult);
290
+ expect(wasmResult).to.be.instanceOf(Uint8Array);
303
291
  });
304
292
  });
305
293
 
@@ -1,19 +1,17 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
-
3
1
  const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
4
3
 
5
- const { default: loadWasmDpp } = require('../../../dist');
4
+ const { default: loadWasmDpp, UnsupportedProtocolVersionError } = require('../../../dist');
6
5
 
7
6
  describe('DataContractFactory', () => {
8
7
  let DataContractFactory;
9
8
  let DataContractValidator;
10
9
  let DataContract;
11
10
  let InvalidDataContractError;
12
- let SerializedObjectParsingError;
13
11
  let JsonSchemaError;
14
12
 
15
13
  let factory;
16
- let jsDataContract;
14
+ let dataContract;
17
15
  let rawDataContract;
18
16
  let dataContractValidator;
19
17
 
@@ -23,18 +21,13 @@ describe('DataContractFactory', () => {
23
21
  DataContractValidator,
24
22
  DataContract,
25
23
  InvalidDataContractError,
26
- SerializedObjectParsingError,
27
24
  JsonSchemaError,
28
25
  } = await loadWasmDpp());
29
26
  });
30
27
 
31
- beforeEach(() => {
32
- jsDataContract = getDataContractFixture();
33
-
34
- // For some reason fixture has empty $defs which violates meta schema
35
- delete jsDataContract.$defs;
36
-
37
- rawDataContract = jsDataContract.toObject();
28
+ beforeEach(async () => {
29
+ dataContract = await getDataContractFixture();
30
+ rawDataContract = dataContract.toObject();
38
31
 
39
32
  dataContractValidator = new DataContractValidator();
40
33
 
@@ -47,7 +40,7 @@ describe('DataContractFactory', () => {
47
40
  describe('create', () => {
48
41
  it('should return new Data Contract with specified name and documents definition', () => {
49
42
  const result = factory.create(
50
- jsDataContract.ownerId.toBuffer(),
43
+ dataContract.getOwnerId(),
51
44
  rawDataContract.documents,
52
45
  ).toObject();
53
46
 
@@ -62,8 +55,7 @@ describe('DataContractFactory', () => {
62
55
  });
63
56
 
64
57
  it('should return new Data Contract without validation if "skipValidation" option is passed', async () => {
65
- const alteredContract = jsDataContract.toObject();
66
- alteredContract.$defs = {}; // Empty defs are bad!
58
+ const alteredContract = dataContract.toObject();
67
59
 
68
60
  const resultSkipValidation = await factory.createFromObject(alteredContract, true);
69
61
 
@@ -71,8 +63,7 @@ describe('DataContractFactory', () => {
71
63
  });
72
64
 
73
65
  it('should throw an error if passed object is not valid', async () => {
74
- const alteredContract = jsDataContract.toObject();
75
- alteredContract.$defs = {}; // Empty defs are bad!
66
+ const alteredContract = dataContract.toObject();
76
67
 
77
68
  try {
78
69
  await factory.createFromObject(alteredContract);
@@ -91,24 +82,24 @@ describe('DataContractFactory', () => {
91
82
  let serializedDataContract;
92
83
 
93
84
  beforeEach(() => {
94
- serializedDataContract = jsDataContract.toBuffer();
85
+ serializedDataContract = dataContract.toBuffer();
95
86
  });
96
87
 
97
88
  it('should return new Data Contract from serialized contract', async () => {
98
89
  const result = await factory.createFromBuffer(serializedDataContract);
99
90
 
100
- expect(result.toObject()).to.deep.equal(jsDataContract.toObject());
91
+ expect(result.toObject()).to.deep.equal(dataContract.toObject());
101
92
  });
102
93
 
103
94
  it('should throw InvalidDataContractError if the decoding fails with consensus error', async () => {
104
95
  try {
105
96
  // Casually break serialized data contract:
106
- serializedDataContract[5] += 1337;
97
+ serializedDataContract[0] = 3;
107
98
  await factory.createFromBuffer(serializedDataContract);
108
99
  expect.fail('should throw InvalidDataContractError');
109
100
  } catch (e) {
110
- expect(e).to.be.an.instanceOf(SerializedObjectParsingError);
111
- expect(e.getParsingError()).to.equals('Syntax(1)');
101
+ expect(e).to.be.an.instanceOf(InvalidDataContractError);
102
+ expect(e.getErrors()[0]).to.be.an.instanceOf(UnsupportedProtocolVersionError);
112
103
  }
113
104
  });
114
105
  });
@@ -116,14 +107,14 @@ describe('DataContractFactory', () => {
116
107
  describe('createDataContractCreateTransition', () => {
117
108
  it('should return new DataContractCreateTransition with passed DataContract', async () => {
118
109
  // Create wasm version of DataContract
119
- const dataContract = new DataContract(rawDataContract);
120
- dataContract.setEntropy(jsDataContract.getEntropy());
110
+ const newDataContract = new DataContract(rawDataContract);
111
+ newDataContract.setEntropy(dataContract.getEntropy());
121
112
 
122
- const result = await factory.createDataContractCreateTransition(dataContract);
113
+ const result = await factory.createDataContractCreateTransition(newDataContract);
123
114
 
124
115
  expect(result.getProtocolVersion()).to.equal(protocolVersion.latestVersion);
125
- expect(result.getEntropy()).to.deep.equal(jsDataContract.getEntropy());
126
- expect(result.getDataContract().toObject()).to.deep.equal(jsDataContract.toObject());
116
+ expect(result.getEntropy()).to.deep.equal(dataContract.getEntropy());
117
+ expect(result.getDataContract().toObject()).to.deep.equal(dataContract.toObject());
127
118
  });
128
119
  });
129
120
  });
@@ -1,4 +1,3 @@
1
- const varint = require('varint');
2
1
  const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
2
  const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
4
3
 
@@ -65,10 +64,9 @@ describe('DataContractCreateTransition', () => {
65
64
 
66
65
  describe('#toBuffer', () => {
67
66
  it('should return serialized State Transition', () => {
68
- const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
69
-
70
67
  const result = stateTransition.toBuffer();
71
- expect(result.compare(protocolVersionBytes, 0, 1, 0, 1)).equals(0);
68
+ expect(result).to.be.instanceOf(Buffer);
69
+ expect(result).to.have.lengthOf(2271);
72
70
  });
73
71
  });
74
72
 
@@ -1,5 +1,5 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
1
  const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../../../../dist');
5
5
 
@@ -27,8 +27,8 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
27
27
  } = await loadWasmDpp());
28
28
  });
29
29
 
30
- beforeEach(() => {
31
- dataContract = getDataContractFixture();
30
+ beforeEach(async () => {
31
+ dataContract = await getDataContractFixture();
32
32
  stateTransition = new DataContractCreateTransition({
33
33
  protocolVersion: protocolVersion.latestVersion,
34
34
  dataContract: dataContract.toObject(),
@@ -54,10 +54,11 @@ describe('validateDataContractCreateTransitionStateFactory', () => {
54
54
  // This time our state repository should return a data contract on fetch
55
55
  const validator = new DataContractValidator();
56
56
  const dataContractFactory = new DataContractFactory(1, validator);
57
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
57
+ const reCreatedDataContract = await dataContractFactory
58
+ .createFromBuffer(dataContract.toBuffer());
58
59
 
59
60
  const stateRepositoryLikeWithContract = {
60
- fetchDataContract: async () => wasmDataContract,
61
+ fetchDataContract: async () => reCreatedDataContract,
61
62
  };
62
63
 
63
64
  const result = await validateDataContractCreateTransitionState(
@@ -1,4 +1,3 @@
1
- const varint = require('varint');
2
1
  const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
2
  const stateTransitionTypes = require('@dashevo/dpp/lib/stateTransition/stateTransitionTypes');
4
3
  const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
@@ -62,11 +61,10 @@ describe('DataContractUpdateTransition', () => {
62
61
  });
63
62
 
64
63
  describe('#toBuffer', () => {
65
- it('should return serialized State Transition that starts with protocol version', () => {
66
- const protocolVersionBytes = Buffer.from(varint.encode(stateTransition.getProtocolVersion()));
67
-
64
+ it('should return serialized State Transition', () => {
68
65
  const result = stateTransition.toBuffer();
69
- expect(result.compare(protocolVersionBytes, 0, 1, 0, 1)).equals(0);
66
+ expect(result).to.be.instanceOf(Buffer);
67
+ expect(result).to.have.lengthOf(2239);
70
68
  });
71
69
  });
72
70
 
@@ -1,5 +1,5 @@
1
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
2
1
  const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
2
+ const getDataContractFixture = require('../../../../../../../lib/test/fixtures/getDataContractFixture');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../../../../dist');
5
5
 
@@ -31,7 +31,7 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
31
31
  });
32
32
 
33
33
  beforeEach(async () => {
34
- dataContract = getDataContractFixture();
34
+ dataContract = await getDataContractFixture();
35
35
 
36
36
  const updatedRawDataContract = dataContract.toObject();
37
37
 
@@ -46,10 +46,11 @@ describe('validateDataContractUpdateTransitionStateFactory', () => {
46
46
 
47
47
  const validator = new DataContractValidator();
48
48
  const dataContractFactory = new DataContractFactory(protocolVersion.latestVersion, validator);
49
- const wasmDataContract = await dataContractFactory.createFromBuffer(dataContract.toBuffer());
49
+ const reCreatedDataContract = await dataContractFactory
50
+ .createFromBuffer(dataContract.toBuffer());
50
51
 
51
52
  const stateRepositoryLike = {
52
- fetchDataContract: async () => wasmDataContract,
53
+ fetchDataContract: async () => reCreatedDataContract,
53
54
  };
54
55
 
55
56
  validateTransitionWithExistingContract = (t) => validateDataContractUpdateTransitionState(
@@ -4,7 +4,10 @@ const { encode } = require('@dashevo/dpp/lib/util/serializer');
4
4
  let { decodeProtocolEntity, ProtocolVersionParsingError, SerializedObjectParsingError } = require('../..');
5
5
  const { default: loadWasmDpp } = require('../..');
6
6
 
7
- describe('decodeProtocolEntityFactory', () => {
7
+ // TODO: decodeProtocolEntity was broken after serialization refactoring
8
+ // it was mostly used in js-drive and does not seem to be needed anymore
9
+ // can we remove it completely?
10
+ describe.skip('decodeProtocolEntityFactory', () => {
8
11
  let parsedProtocolVersion;
9
12
  let entityBuffer;
10
13
  let protocolVersionBuffer;
@@ -411,15 +411,15 @@ describe('Document', () => {
411
411
  });
412
412
 
413
413
  describe('#toBuffer', () => {
414
- it('returned bytes should be the same as JS version', () => {
415
- const jsBuffer = documentJs.toBuffer();
414
+ it('should return serialized Document', () => {
416
415
  const buffer = document.toBuffer();
417
-
418
- expect(jsBuffer.length).to.equal(buffer.length);
419
- expect(jsBuffer).to.deep.equal(buffer);
416
+ expect(buffer).to.be.instanceOf(Buffer);
417
+ expect(buffer.length).to.equal(509);
420
418
  });
421
419
 
422
- it('should return the same bytes as JS version when dynamic identifier is in Document', () => {
420
+ // TODO: remove or replace?
421
+ // can not be compared to JS buffers anymore because uses bin code
422
+ it.skip('should return the same bytes as JS version when dynamic identifier is in Document', () => {
423
423
  const jsId = generateRandomIdentifier();
424
424
  const id = new Identifier(jsId.toBuffer());
425
425
  const path = 'dataObject.binaryObject.identifier';
@@ -438,7 +438,9 @@ describe('Document', () => {
438
438
  expect(jsBuffer).to.deep.equal(buffer);
439
439
  });
440
440
 
441
- it('should return the same bytes as JS version when dynamic binaryData is in Document', () => {
441
+ // TODO: remove or replace?
442
+ // can not be compared to JS buffers anymore because uses bin code
443
+ it.skip('should return the same bytes as JS version when dynamic binaryData is in Document', () => {
442
444
  const data = Buffer.alloc(32);
443
445
  const path = 'dataObject.binaryObject.binaryData';
444
446