@dashevo/wasm-dpp 0.25.0-dev.1 → 0.25.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wasm/wasm_dpp.d.ts +431 -436
- package/dist/wasm/wasm_dpp.js +39 -44
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/test/fixtures/getDocumentsFixture.js +5 -1
- package/lib/wasm/wasm_dpp.d.ts +431 -436
- package/package.json +3 -3
- package/src/dash_platform_protocol.rs +1 -1
- package/src/data_contract/data_contract.rs +2 -1
- package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +6 -5
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +6 -5
- package/src/document/extended_document.rs +2 -2
- package/src/document/state_transition/document_batch_transition/mod.rs +6 -9
- package/src/errors/consensus/basic/invalid_signature_public_key_security_level_error.rs +6 -6
- package/src/identity/factory_utils.rs +4 -4
- package/src/identity/mod.rs +4 -2
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +11 -19
- package/src/identity/state_transition/identity_create_transition/to_object.rs +2 -2
- package/src/identity/state_transition/identity_public_key_transitions.rs +10 -10
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +7 -15
- package/src/identity/state_transition/identity_update_transition/identity_update_public_keys_validator.rs +2 -2
- package/src/identity/state_transition/identity_update_transition/identity_update_transition.rs +10 -18
- package/src/identity/state_transition/identity_update_transition/to_object.rs +2 -2
- package/src/identity/state_transition/validate_public_key_signatures.rs +2 -2
- package/src/state_transition/state_transition_facade.rs +3 -7
- package/src/state_transition/validation/validate_state_transition_identity_signature.rs +20 -6
- package/test/integration/dataContract/DataContractFacade.spec.js +17 -20
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +5 -4
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +1 -1
- package/test/unit/dataContract/DataContract.spec.js +9 -21
- package/test/unit/dataContract/DataContractFactory.spec.js +19 -28
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +2 -4
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +6 -5
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +3 -5
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +5 -4
- package/test/unit/decodeProtocolEntityFactory.spec.js +4 -1
- package/test/unit/document/Document.spec.js +9 -7
- package/test/unit/document/DocumentFactory.spec.js +38 -90
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +2 -3
- package/test/unit/identity/Identity.spec.js +3 -8
- package/test/unit/identity/IdentityFactory.spec.js +3 -4
- package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +2 -2
- package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +4 -16
- 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
|
|
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
|
-
|
|
38
|
-
rawDataContract =
|
|
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
|
-
|
|
53
|
-
|
|
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(
|
|
59
|
-
expect(result.getDocuments()).to.deep.equal(
|
|
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(
|
|
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
|
-
|
|
77
|
-
|
|
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(
|
|
87
|
+
.createDataContractCreateTransition(dataContract);
|
|
91
88
|
|
|
92
|
-
const result = dpp.dataContract.createDataContractCreateTransition(
|
|
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 =
|
|
99
|
+
const dataContractBuffer = dataContract.toBuffer();
|
|
103
100
|
|
|
104
|
-
const
|
|
101
|
+
const dataContractNew = await dpp.dataContract.createFromBuffer(dataContractBuffer);
|
|
105
102
|
|
|
106
103
|
const updatedDataContract = await dpp.dataContract.createFromObject(
|
|
107
|
-
|
|
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(
|
|
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('
|
|
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
|
|
58
|
+
const reCreatedDataContract = await dataContractFactory
|
|
59
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
59
60
|
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
60
|
-
stateRepositoryMock.fetchDataContract.resolves(
|
|
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
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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[
|
|
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(
|
|
111
|
-
expect(e.
|
|
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
|
|
120
|
-
|
|
110
|
+
const newDataContract = new DataContract(rawDataContract);
|
|
111
|
+
newDataContract.setEntropy(dataContract.getEntropy());
|
|
121
112
|
|
|
122
|
-
const result = await factory.createDataContractCreateTransition(
|
|
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(
|
|
126
|
-
expect(result.getDataContract().toObject()).to.deep.equal(
|
|
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
|
|
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
|
|
57
|
+
const reCreatedDataContract = await dataContractFactory
|
|
58
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
58
59
|
|
|
59
60
|
const stateRepositoryLikeWithContract = {
|
|
60
|
-
fetchDataContract: async () =>
|
|
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
|
|
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
|
|
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
|
|
49
|
+
const reCreatedDataContract = await dataContractFactory
|
|
50
|
+
.createFromBuffer(dataContract.toBuffer());
|
|
50
51
|
|
|
51
52
|
const stateRepositoryLike = {
|
|
52
|
-
fetchDataContract: async () =>
|
|
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
|
-
|
|
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('
|
|
415
|
-
const jsBuffer = documentJs.toBuffer();
|
|
414
|
+
it('should return serialized Document', () => {
|
|
416
415
|
const buffer = document.toBuffer();
|
|
417
|
-
|
|
418
|
-
expect(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|