@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.
- package/Cargo.toml +6 -5
- package/dist/wasm/wasm_dpp.d.ts +685 -639
- package/dist/wasm/wasm_dpp.js +64 -50
- package/dist/wasm/wasm_dpp_bg.js +1 -1
- package/lib/test/fixtures/getIdentityCreateTransitionFixture.js +2 -2
- package/lib/test/fixtures/js/generateRandomIdentifier.js +1 -0
- package/lib/test/fixtures/js/getChainAssetLockProofFixture.js +1 -0
- package/lib/test/fixtures/js/getDataContractFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentTransitionsFixture.js +1 -0
- package/lib/test/fixtures/js/getDocumentsFixture.js +1 -0
- package/lib/test/fixtures/js/getInstantAssetLockProofFixture.js +1 -0
- package/lib/test/mocks/createStateRepositoryMock.js +1 -0
- package/lib/wasm/wasm_dpp.d.ts +685 -639
- package/package.json +3 -3
- package/scripts/build-wasm.sh +26 -29
- package/src/data_contract/data_contract.rs +99 -54
- package/src/data_contract/data_contract_facade.rs +5 -2
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +0 -5
- package/src/data_contract_factory/data_contract_factory.rs +5 -1
- package/src/document/mod.rs +4 -4
- package/src/errors/consensus/consensus_error.rs +5 -0
- package/src/errors/consensus/state/document/document_timestamps_are_equal_error.rs +42 -0
- package/src/errors/consensus/state/document/mod.rs +2 -0
- package/src/errors/value_error.rs +5 -0
- package/src/identity/mod.rs +8 -1
- package/src/identity/state_transition/mod.rs +1 -0
- package/src/identity/state_transition/transition_types.rs +30 -0
- package/src/lib.rs +1 -2
- package/src/protocol_version.rs +7 -0
- package/src/state_transition/errors/invalid_state_transition_error.rs +14 -1
- package/src/state_transition/state_transition_facade.rs +6 -1
- package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +5 -5
- package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +5 -5
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +2 -2
- package/test/integration/document/DocumentFacade.spec.js +4 -4
- package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +5 -6
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +14 -14
- package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +1 -1
- package/test/integration/document/validation/validateDocumentFactory.spec.js +2 -2
- package/test/integration/identity/IdentityFacade.spec.js +8 -8
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +4 -6
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +3 -6
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +20 -23
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +1 -1
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +3 -3
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +5 -8
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +3 -4
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +2 -3
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +2 -6
- package/test/integration/identity/validation/validateIdentityFactory.spec.js +6 -5
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +4 -24
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +11 -15
- package/test/unit/DashPlatformProtocol.spec.js +6 -7
- package/test/unit/dataContract/DataContract.spec.js +9 -9
- package/test/unit/dataContract/DataContractFactory.spec.js +3 -3
- package/test/unit/dataContract/createDataContract.spec.js +5 -5
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +14 -14
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +6 -8
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +3 -3
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +14 -12
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +6 -6
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +4 -4
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +5 -5
- package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +6 -6
- package/test/unit/document/Document.spec.js +5 -4
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +10 -11
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +8 -8
- package/test/unit/identity/Identity.spec.js +14 -6
- package/test/unit/identity/IdentityFactory.spec.js +11 -11
- package/test/unit/identity/IdentityPublicKey.spec.js +2 -2
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +13 -14
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +7 -13
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +3 -7
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +13 -14
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +5 -9
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +4 -8
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +11 -16
- package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +1 -1
- package/test/unit/stateTransition/StateTransitionFactory.spec.js +6 -7
- package/test/unit/stateTransition/createStateTransitionFactory.spec.js +41 -19
- package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +6 -12
- package/src/decode_protocol_entity.rs +0 -25
- package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +0 -148
- package/test/integration/util/generateEntropy.spec.js +0 -17
- package/test/integration/util/serializer.spec.js +0 -24
- package/test/unit/decodeProtocolEntityFactory.spec.js +0 -72
- package/test/unit/identity/errors/InvalidIdentityError.spec.js +0 -46
- package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +0 -51
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const getIdentityFixture = require('
|
|
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
|
|
29
|
-
|
|
30
|
-
identity = new Identity(
|
|
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('
|
|
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
|
-
|
|
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
|
|
4
|
+
const createStateRepositoryMock = require('../../../lib/test/mocks/createStateRepositoryMock');
|
|
5
5
|
|
|
6
|
-
const
|
|
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
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
identity = new Identity(
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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('
|
|
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
|
|
79
|
-
expect(dataContract.getOwnerId().toBuffer()).to.deep.equal(ownerId
|
|
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
|
|
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('
|
|
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(
|
|
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('
|
|
1
|
+
const generateRandomIdentifier = require('../../../lib/test/utils/generateRandomIdentifierAsync');
|
|
2
2
|
|
|
3
|
-
const { default: loadWasmDpp } = require('
|
|
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('
|
|
2
|
-
const
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
58
|
-
type:
|
|
59
|
-
dataContract:
|
|
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('
|
|
2
|
-
|
|
3
|
-
const
|
|
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:
|
|
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('
|
|
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:
|
|
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
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
57
|
-
type:
|
|
58
|
-
dataContract:
|
|
58
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
59
|
+
type: StateTransitionTypes.DataContractUpdate,
|
|
60
|
+
dataContract: dc,
|
|
59
61
|
});
|
|
60
62
|
});
|
|
61
63
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
2
|
-
const protocolVersion = require('@dashevo/dpp/lib/version/protocolVersion');
|
|
1
|
+
const getDataContractFixture = require('../../../../../lib/test/fixtures/getDataContractFixture');
|
|
3
2
|
|
|
4
|
-
const { default: loadWasmDpp } = require('
|
|
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:
|
|
29
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
executionContext = new StateTransitionExecutionContext();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
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('
|
|
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:
|
|
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(
|
|
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:
|
|
91
|
+
protocolVersion: getLatestProtocolVersion(),
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
const result = await validateTransitionWithExistingContract(badStateTransition);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const getDataContractFixture = require('
|
|
1
|
+
const getDataContractFixture = require('../../../../lib/test/fixtures/getDataContractFixture');
|
|
2
2
|
|
|
3
|
-
const { default: loadWasmDpp } = require('
|
|
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
|
-
|
|
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('
|
|
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:
|
|
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:
|
|
95
|
+
$protocolVersion: getLatestProtocolVersion(),
|
|
95
96
|
$id: id.toBuffer(),
|
|
96
97
|
$type: 'test',
|
|
97
98
|
$dataContractId: dataContract.getId().toBuffer(),
|