@dashevo/wasm-dpp 0.24.0-dev.34 → 0.24.1

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 (77) hide show
  1. package/Cargo.toml +2 -1
  2. package/dist/wasm/wasm_dpp.d.ts +615 -589
  3. package/dist/wasm/wasm_dpp.js +58 -51
  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 +615 -589
  14. package/package.json +3 -3
  15. package/scripts/build-wasm.sh +4 -4
  16. package/src/errors/value_error.rs +5 -0
  17. package/src/identity/state_transition/mod.rs +1 -0
  18. package/src/identity/state_transition/transition_types.rs +30 -0
  19. package/src/lib.rs +1 -0
  20. package/src/protocol_version.rs +7 -0
  21. package/src/state_transition/errors/invalid_state_transition_error.rs +14 -1
  22. package/src/state_transition/state_transition_facade.rs +7 -1
  23. package/test/integration/dataContract/DataContractFacade.spec.js +1 -1
  24. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +5 -5
  25. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +7 -7
  26. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +2 -2
  27. package/test/integration/document/DocumentFacade.spec.js +4 -4
  28. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +5 -6
  29. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +14 -14
  30. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
  31. package/test/integration/document/validation/validateDocumentFactory.spec.js +2 -2
  32. package/test/integration/identity/IdentityFacade.spec.js +8 -8
  33. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +4 -6
  34. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +3 -6
  35. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +20 -23
  36. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +1 -1
  37. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +3 -3
  38. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +5 -8
  39. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +3 -4
  40. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +2 -3
  41. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +2 -6
  42. package/test/integration/identity/validation/validateIdentityFactory.spec.js +6 -5
  43. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +4 -24
  44. package/test/integration/stateTransition/StateTransitionFacade.spec.js +11 -15
  45. package/test/unit/DashPlatformProtocol.spec.js +6 -7
  46. package/test/unit/dataContract/DataContract.spec.js +10 -9
  47. package/test/unit/dataContract/DataContractFactory.spec.js +4 -5
  48. package/test/unit/dataContract/createDataContract.spec.js +5 -5
  49. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -13
  50. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +6 -8
  51. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +6 -6
  52. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +14 -12
  53. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +6 -6
  54. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +4 -4
  55. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +7 -7
  56. package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +6 -6
  57. package/test/unit/document/Document.spec.js +5 -4
  58. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +10 -11
  59. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +8 -8
  60. package/test/unit/identity/Identity.spec.js +6 -6
  61. package/test/unit/identity/IdentityFactory.spec.js +11 -11
  62. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +13 -14
  63. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +7 -13
  64. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +3 -7
  65. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -14
  66. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +5 -9
  67. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +4 -8
  68. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +11 -16
  69. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +1 -1
  70. package/test/unit/stateTransition/StateTransitionFactory.spec.js +6 -7
  71. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +41 -19
  72. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +6 -12
  73. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
  74. package/test/integration/util/generateEntropy.spec.js +0 -17
  75. package/test/integration/util/serializer.spec.js +0 -24
  76. package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
  77. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
@@ -1,12 +1,7 @@
1
- const stateTransitionTypes = require(
2
- '@dashevo/dpp/lib/stateTransition/stateTransitionTypes',
3
- );
4
-
5
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
6
-
7
1
  const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
8
2
 
9
- const { default: loadWasmDpp } = require('../../../../../dist');
3
+ const { default: loadWasmDpp } = require('../../../../..');
4
+ const { getLatestProtocolVersion, StateTransitionTypes } = require('../../../../..');
10
5
  const generateRandomIdentifierAsync = require('../../../../../lib/test/utils/generateRandomIdentifierAsync');
11
6
 
12
7
  describe('IdentityUpdateTransition', () => {
@@ -32,7 +27,7 @@ describe('IdentityUpdateTransition', () => {
32
27
 
33
28
  describe('#getType', () => {
34
29
  it('should return IDENTITY_UPDATE type', () => {
35
- expect(stateTransition.getType()).to.equal(stateTransitionTypes.IDENTITY_UPDATE);
30
+ expect(stateTransition.getType()).to.equal(StateTransitionTypes.IdentityUpdate);
36
31
  });
37
32
  });
38
33
 
@@ -143,8 +138,8 @@ describe('IdentityUpdateTransition', () => {
143
138
  rawStateTransition = stateTransition.toObject();
144
139
 
145
140
  expect(rawStateTransition).to.deep.equal({
146
- protocolVersion: protocolVersion.latestVersion,
147
- type: stateTransitionTypes.IDENTITY_UPDATE,
141
+ protocolVersion: getLatestProtocolVersion(),
142
+ type: StateTransitionTypes.IdentityUpdate,
148
143
  signature: undefined,
149
144
  identityId: rawStateTransition.identityId,
150
145
  revision: rawStateTransition.revision,
@@ -159,8 +154,8 @@ describe('IdentityUpdateTransition', () => {
159
154
  rawStateTransition = stateTransition.toObject({ skipSignature: true });
160
155
 
161
156
  expect(rawStateTransition).to.deep.equal({
162
- protocolVersion: protocolVersion.latestVersion,
163
- type: stateTransitionTypes.IDENTITY_UPDATE,
157
+ protocolVersion: getLatestProtocolVersion(),
158
+ type: StateTransitionTypes.IdentityUpdate,
164
159
  identityId: rawStateTransition.identityId,
165
160
  revision: rawStateTransition.revision,
166
161
  publicKeysDisabledAt: rawStateTransition.publicKeysDisabledAt,
@@ -177,8 +172,8 @@ describe('IdentityUpdateTransition', () => {
177
172
  rawStateTransition = stateTransition.toObject();
178
173
 
179
174
  expect(rawStateTransition).to.deep.equal({
180
- protocolVersion: protocolVersion.latestVersion,
181
- type: stateTransitionTypes.IDENTITY_UPDATE,
175
+ protocolVersion: getLatestProtocolVersion(),
176
+ type: StateTransitionTypes.IdentityUpdate,
182
177
  signature: undefined,
183
178
  identityId: rawStateTransition.identityId,
184
179
  revision: rawStateTransition.revision,
@@ -192,8 +187,8 @@ describe('IdentityUpdateTransition', () => {
192
187
  const jsonStateTransition = stateTransition.toJSON();
193
188
 
194
189
  expect(jsonStateTransition).to.deep.equal({
195
- protocolVersion: protocolVersion.latestVersion,
196
- type: stateTransitionTypes.IDENTITY_UPDATE,
190
+ protocolVersion: getLatestProtocolVersion(),
191
+ type: StateTransitionTypes.IdentityUpdate,
197
192
  signature: undefined,
198
193
  identityId: stateTransition.getIdentityId().toString(),
199
194
  revision: rawStateTransition.revision,
@@ -1,4 +1,4 @@
1
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
1
+ const createStateRepositoryMock = require('../../../../../lib/test/mocks/createStateRepositoryMock');
2
2
  const getIdentityUpdateTransitionFixture = require('../../../../../lib/test/fixtures/getIdentityUpdateTransitionFixture');
3
3
 
4
4
  const { default: loadWasmDpp } = require('../../../../../dist');
@@ -1,10 +1,9 @@
1
- const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
1
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
2
2
 
3
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
3
+ const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
4
4
 
5
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
6
-
7
- const { default: loadWasmDpp } = require('../../../dist');
5
+ const { default: loadWasmDpp } = require('../../..');
6
+ const { getLatestProtocolVersion } = require('../../..');
8
7
  const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
9
8
 
10
9
  describe('StateTransitionFactory', function main() {
@@ -29,12 +28,12 @@ describe('StateTransitionFactory', function main() {
29
28
  });
30
29
 
31
30
  beforeEach(async function beforeEach() {
32
- const dataContract = getDataContractFixture();
31
+ const dataContract = await getDataContractFixture();
33
32
 
34
33
  const rawDataContract = dataContract.toObject();
35
34
 
36
35
  stateTransition = new DataContractCreateTransition({
37
- protocolVersion: protocolVersion.latestVersion,
36
+ protocolVersion: getLatestProtocolVersion(),
38
37
  dataContract: rawDataContract,
39
38
  entropy: dataContract.getEntropy(),
40
39
  signature: Buffer.alloc(65),
@@ -1,32 +1,53 @@
1
- const createStateTransitionFactory = require('@dashevo/dpp/lib/stateTransition/createStateTransitionFactory');
2
-
3
- const DataContractCreateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition');
4
- const DocumentsBatchTransition = require('@dashevo/dpp/lib/document/stateTransition/DocumentsBatchTransition/DocumentsBatchTransition');
5
-
6
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
7
- const getDocumentsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentsFixture');
8
- const getDocumentTranstionsFixture = require('@dashevo/dpp/lib/test/fixtures/getDocumentTransitionsFixture');
9
-
10
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
11
-
12
- const InvalidStateTransitionTypeError = require('@dashevo/dpp/lib/stateTransition/errors/InvalidStateTransitionTypeError');
1
+ const crypto = require('crypto');
2
+
3
+ const getDataContractFixture = require('../../../lib/test/fixtures/getDataContractFixture');
4
+ const getDocumentsFixture = require('../../../lib/test/fixtures/getDocumentsFixture');
5
+ const getDocumentTransitionsFixture = require('../../../lib/test/fixtures/getDocumentTransitionsFixture');
6
+
7
+ const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
8
+ const { default: loadWasmDpp } = require('../../..');
9
+ const {
10
+ DashPlatformProtocol,
11
+ DataContractCreateTransition,
12
+ DocumentsBatchTransition,
13
+ InvalidStateTransitionTypeError,
14
+ } = require('../../..');
15
+ const getBlsAdapterMock = require('../../../lib/test/mocks/getBlsAdapterMock');
13
16
 
14
17
  describe('createStateTransitionFactory', () => {
15
18
  let createStateTransition;
16
19
  let stateRepositoryMock;
17
20
  let dataContract;
21
+ let dpp;
22
+ let blsAdapter;
23
+
24
+ before(async () => {
25
+ await loadWasmDpp();
26
+ });
18
27
 
19
- beforeEach(function beforeEach() {
20
- dataContract = getDataContractFixture();
28
+ beforeEach(async function beforeEach() {
29
+ blsAdapter = await getBlsAdapterMock();
21
30
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
31
+
32
+ dpp = new DashPlatformProtocol(
33
+ blsAdapter,
34
+ stateRepositoryMock,
35
+ { generate: () => crypto.randomBytes(32) },
36
+ 1,
37
+ );
38
+
39
+ dataContract = await getDataContractFixture();
22
40
  stateRepositoryMock.fetchDataContract.resolves(dataContract);
23
- createStateTransition = createStateTransitionFactory(stateRepositoryMock);
41
+ createStateTransition = (st) => dpp.stateTransition.createFromObject(
42
+ st, { skipValidation: true },
43
+ );
24
44
  });
25
45
 
26
46
  it('should return DataContractCreateTransition if type is DATA_CONTRACT_CREATE', async () => {
27
47
  const stateTransition = new DataContractCreateTransition({
28
48
  dataContract: dataContract.toObject(),
29
49
  entropy: dataContract.getEntropy(),
50
+ protocolVersion: 1,
30
51
  });
31
52
 
32
53
  const result = await createStateTransition(stateTransition.toObject());
@@ -36,13 +57,14 @@ describe('createStateTransitionFactory', () => {
36
57
  });
37
58
 
38
59
  it('should return DocumentsBatchTransition if type is DOCUMENTS', async () => {
39
- const documents = getDocumentsFixture(dataContract);
40
- const documentTransitions = getDocumentTranstionsFixture({
60
+ const documents = await getDocumentsFixture(dataContract);
61
+ const ownerId = documents[0].getOwnerId();
62
+ const documentTransitions = getDocumentTransitionsFixture({
41
63
  create: documents,
42
64
  });
43
65
 
44
66
  const stateTransition = new DocumentsBatchTransition({
45
- ownerId: getDocumentsFixture.ownerId,
67
+ ownerId,
46
68
  contractId: dataContract.getId(),
47
69
  transitions: documentTransitions.map((t) => t.toObject()),
48
70
  }, [dataContract]);
@@ -57,7 +79,7 @@ describe('createStateTransitionFactory', () => {
57
79
 
58
80
  it('should throw InvalidStateTransitionTypeError if type is invalid', async () => {
59
81
  const rawStateTransition = {
60
- type: 666,
82
+ type: 253,
61
83
  };
62
84
 
63
85
  try {
@@ -1,8 +1,8 @@
1
1
  const { Transaction, PrivateKey, Script } = require('@dashevo/dashcore-lib');
2
2
 
3
- const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
4
- const getIdentityCreateTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityCreateTransitionFixture');
5
- const getIdentityTopUpTransitionFixture = require('../../../../lib/test/fixtures/getIdentityTopUpTransitionFixtureJs');
3
+ const createStateRepositoryMock = require('../../../../lib/test/mocks/createStateRepositoryMock');
4
+ const getIdentityCreateTransitionFixture = require('../../../../lib/test/fixtures/getIdentityCreateTransitionFixture');
5
+ const getIdentityTopUpTransitionFixture = require('../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
6
6
  const { expectValidationError } = require('../../../../lib/test/expect/expectError');
7
7
 
8
8
  const { default: loadWasmDpp } = require('../../../../dist');
@@ -16,7 +16,6 @@ describe('validateStateTransitionKeySignatureFactory', () => {
16
16
  let StateTransitionKeySignatureValidator;
17
17
  let StateTransitionExecutionContext;
18
18
  let IdentityCreateTransition;
19
- let IdentityTopUpTransition;
20
19
  let IdentityNotFoundError;
21
20
  let ValidationResult;
22
21
 
@@ -26,17 +25,13 @@ describe('validateStateTransitionKeySignatureFactory', () => {
26
25
  StateTransitionKeySignatureValidator,
27
26
  StateTransitionExecutionContext,
28
27
  IdentityCreateTransition,
29
- IdentityTopUpTransition,
30
28
  IdentityNotFoundError,
31
29
  ValidationResult,
32
30
  } = await loadWasmDpp());
33
31
  });
34
32
 
35
- beforeEach(function beforeEach() {
36
- const stateTransitionJS = getIdentityCreateTransitionFixture();
37
- const rawStateTransition = stateTransitionJS.toObject();
38
-
39
- stateTransition = new IdentityCreateTransition(rawStateTransition);
33
+ beforeEach(async function beforeEach() {
34
+ stateTransition = await getIdentityCreateTransitionFixture();
40
35
 
41
36
  stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
42
37
 
@@ -89,8 +84,7 @@ describe('validateStateTransitionKeySignatureFactory', () => {
89
84
  });
90
85
 
91
86
  it('should return IdentityNotFoundError if identity not exist on topup transaction', async function () {
92
- const stateTransitionJS = getIdentityTopUpTransitionFixture();
93
- stateTransition = new IdentityTopUpTransition(stateTransitionJS.toObject());
87
+ stateTransition = await getIdentityTopUpTransitionFixture();
94
88
  stateRepositoryMock.fetchIdentityBalance.resolves(undefined);
95
89
 
96
90
  const result = await validateStateTransitionKeySignature(
@@ -1,148 +0,0 @@
1
- const { default: Ajv } = require('ajv');
2
-
3
- const addByteArrayKeyword = require('@dashevo/dpp/lib/ajv/keywords/byteArray/addByteArrayKeyword');
4
- const byteArray = require('@dashevo/dpp/lib/ajv/keywords/byteArray/byteArray');
5
-
6
- describe('addByteArrayKeyword', () => {
7
- let ajv;
8
-
9
- beforeEach(() => {
10
- ajv = new Ajv();
11
- });
12
-
13
- it('should add byteArray keyword', () => {
14
- addByteArrayKeyword(ajv);
15
-
16
- expect(
17
- ajv.getKeyword('byteArray'),
18
- ).to.deep.equal(byteArray);
19
- });
20
-
21
- describe('byteArray', () => {
22
- beforeEach(() => {
23
- addByteArrayKeyword(ajv);
24
- });
25
-
26
- describe('compilation', () => {
27
- it('should be used with array type', () => {
28
- const schema = {
29
- type: 'string',
30
- byteArray: true,
31
- };
32
-
33
- ajv.validate(schema, Buffer.alloc(0));
34
-
35
- expect(ajv.errors).to.have.lengthOf(1);
36
- expect(ajv.errors[0].keyword).to.equal('type');
37
- expect(ajv.errors[0].params.type).to.equal('string');
38
- });
39
-
40
- it('should not be used with `items` keyword', () => {
41
- const schema = {
42
- type: 'array',
43
- byteArray: true,
44
- items: {
45
- type: 'string',
46
- },
47
- };
48
-
49
- try {
50
- ajv.validate(schema, Buffer.alloc(0));
51
-
52
- expect.fail('should fail with keyword schema error');
53
- } catch (e) {
54
- expect(e.message).to.equal('\'byteArray\' should not be used with \'items\'');
55
- }
56
- });
57
-
58
- it('should be boolean', () => {
59
- const schema = {
60
- type: 'array',
61
- byteArray: 'something',
62
- };
63
-
64
- try {
65
- ajv.validate(schema, Buffer.alloc(0));
66
-
67
- expect.fail('should fail with keyword schema error');
68
- } catch (e) {
69
- expect(e.message).to.equal('keyword "byteArray" value is invalid at path "#": data must be boolean');
70
- }
71
- });
72
-
73
- it('should have value of true', () => {
74
- const schema = {
75
- type: 'array',
76
- byteArray: false,
77
- };
78
-
79
- try {
80
- ajv.validate(schema, Buffer.alloc(0));
81
-
82
- expect.fail('should fail with keyword schema error');
83
- } catch (e) {
84
- expect(e.message).to.equal('keyword "byteArray" value is invalid at path "#": data must be equal to constant');
85
- }
86
- });
87
- });
88
-
89
- describe('validation', () => {
90
- it('should accept array of integers', () => {
91
- const schema = {
92
- type: 'array',
93
- byteArray: true,
94
- };
95
-
96
- ajv.validate(schema, ['string']);
97
-
98
- expect(ajv.errors).to.have.lengthOf(2);
99
-
100
- const [error, byteArrayError] = ajv.errors;
101
-
102
- expect(error.keyword).to.equal('type');
103
- expect(error.schemaPath).to.equal('#/byteArray/items/type');
104
- expect(error.message).to.equal('must be integer');
105
-
106
- expect(byteArrayError.keyword).to.equal('byteArray');
107
- });
108
-
109
- it('should accept array of integers not less than 0', () => {
110
- const schema = {
111
- type: 'array',
112
- byteArray: true,
113
- };
114
-
115
- ajv.validate(schema, [-1]);
116
-
117
- expect(ajv.errors).to.have.lengthOf(2);
118
-
119
- const [error, byteArrayError] = ajv.errors;
120
-
121
- expect(error.keyword).to.equal('minimum');
122
- expect(error.schemaPath).to.equal('#/byteArray/items/minimum');
123
- expect(error.message).to.equal('must be >= 0');
124
-
125
- expect(byteArrayError.keyword).to.equal('byteArray');
126
- });
127
-
128
- it('should accept array of integers not greater than 255', () => {
129
- const schema = {
130
- type: 'array',
131
- byteArray: true,
132
- };
133
-
134
- ajv.validate(schema, [0, 256]);
135
-
136
- expect(ajv.errors).to.have.lengthOf(2);
137
-
138
- const [error, byteArrayError] = ajv.errors;
139
-
140
- expect(error.keyword).to.equal('maximum');
141
- expect(error.schemaPath).to.equal('#/byteArray/items/maximum');
142
- expect(error.message).to.equal('must be <= 255');
143
-
144
- expect(byteArrayError.keyword).to.equal('byteArray');
145
- });
146
- });
147
- });
148
- });
@@ -1,17 +0,0 @@
1
- const { generate: generateEntropy } = require('@dashevo/dpp/lib/util/entropyGenerator');
2
-
3
- describe('generateEntropy', () => {
4
- it('should generate a byte array of length 32', () => {
5
- const entropy = generateEntropy();
6
-
7
- expect(Buffer.isBuffer(entropy)).to.be.true();
8
- expect(entropy.byteLength).to.be.equal(32);
9
- });
10
-
11
- it('should generate random byte array', () => {
12
- const randomBuffer = generateEntropy();
13
- const secondRandomBuffer = generateEntropy();
14
-
15
- expect(randomBuffer).to.not.deep.equal(secondRandomBuffer);
16
- });
17
- });
@@ -1,24 +0,0 @@
1
- const { encode } = require('@dashevo/dpp/lib/util/serializer');
2
-
3
- const DataSerializationError = require('@dashevo/dpp/lib/util/errors/MaxEncodedBytesReachedError');
4
-
5
- describe('serializer', function main() {
6
- this.timeout(10000);
7
-
8
- describe('#encode', () => {
9
- it('should throw an error if payload is larger that 16 Kb', () => {
10
- const payload = {};
11
- for (let i = 0; i < 10000; i++) {
12
- payload[i] = i;
13
- }
14
-
15
- try {
16
- encode(payload);
17
- expect.fail('Error was not thrown');
18
- } catch (e) {
19
- expect(e).to.be.an.instanceOf(DataSerializationError);
20
- expect(e.getPayload()).to.deep.equal(payload);
21
- }
22
- });
23
- });
24
- });
@@ -1,46 +0,0 @@
1
- const InvalidIdentityError = require('@dashevo/dpp/lib/identity/errors/InvalidIdentityError');
2
- const getIdentityFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityFixture');
3
-
4
- describe('InvalidIdentityError', () => {
5
- let rawIdentity;
6
- let error;
7
-
8
- beforeEach(() => {
9
- error = new Error('Some error');
10
-
11
- const identity = getIdentityFixture();
12
- rawIdentity = identity.toObject();
13
- });
14
-
15
- it('should return errors', () => {
16
- const errors = [error];
17
-
18
- const invalidIdentityError = new InvalidIdentityError(errors, rawIdentity);
19
-
20
- expect(invalidIdentityError.getErrors()).to.deep.equal(errors);
21
- });
22
-
23
- it('should return Identity', async () => {
24
- const errors = [error];
25
-
26
- const invalidIdentityError = new InvalidIdentityError(errors, rawIdentity);
27
-
28
- expect(invalidIdentityError.getRawIdentity()).to.deep.equal(rawIdentity);
29
- });
30
-
31
- it('should contain message for 1 error', async () => {
32
- const errors = [error];
33
-
34
- const invalidIdentityError = new InvalidIdentityError(errors, rawIdentity);
35
-
36
- expect(invalidIdentityError.message).to.equal(`Invalid Identity: "${error.message}"`);
37
- });
38
-
39
- it('should contain message for multiple errors', async () => {
40
- const errors = [error, error];
41
-
42
- const invalidIdentityError = new InvalidIdentityError(errors, rawIdentity);
43
-
44
- expect(invalidIdentityError.message).to.equal(`Invalid Identity: "${error.message}" and 1 more`);
45
- });
46
- });
@@ -1,51 +0,0 @@
1
- const InvalidStateTransitionError = require('@dashevo/dpp/lib/stateTransition/errors/InvalidStateTransitionError');
2
- const DataContractCreateTransition = require('@dashevo/dpp/lib/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition');
3
- const getDataContractFixture = require('@dashevo/dpp/lib/test/fixtures/getDataContractFixture');
4
-
5
- describe('InvalidStateTransitionError', () => {
6
- let rawStateTransition;
7
- let error;
8
-
9
- beforeEach(() => {
10
- error = new Error('Some error');
11
-
12
- const dataContract = getDataContractFixture();
13
- const dataContractCreateTransition = new DataContractCreateTransition({
14
- dataContract: dataContract.toObject(),
15
- entropy: dataContract.getEntropy(),
16
- });
17
- rawStateTransition = dataContractCreateTransition.toObject();
18
- });
19
-
20
- it('should return errors', () => {
21
- const errors = [error];
22
-
23
- const invalidStateTransitionError = new InvalidStateTransitionError(errors, rawStateTransition);
24
-
25
- expect(invalidStateTransitionError.getErrors()).to.deep.equal(errors);
26
- });
27
-
28
- it('should return State Transition', async () => {
29
- const errors = [error];
30
-
31
- const invalidStateTransitionError = new InvalidStateTransitionError(errors, rawStateTransition);
32
-
33
- expect(invalidStateTransitionError.getRawStateTransition()).to.deep.equal(rawStateTransition);
34
- });
35
-
36
- it('should contain message for 1 error', async () => {
37
- const errors = [error];
38
-
39
- const invalidStateTransitionError = new InvalidStateTransitionError(errors, rawStateTransition);
40
-
41
- expect(invalidStateTransitionError.message).to.equal(`Invalid State Transition: "${error.message}"`);
42
- });
43
-
44
- it('should contain message for multiple errors', async () => {
45
- const errors = [error, error];
46
-
47
- const invalidStateTransitionError = new InvalidStateTransitionError(errors, rawStateTransition);
48
-
49
- expect(invalidStateTransitionError.message).to.equal(`Invalid State Transition: "${error.message}" and 1 more`);
50
- });
51
- });