@dashevo/wasm-dpp 0.24.0-dev.11 → 0.24.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 +3 -0
- package/README.md +5 -1
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +9 -0
- package/dist/lib/dpp.d.ts +9 -0
- package/dist/lib/errors/AbstractConsensusError.d.ts +10 -0
- package/dist/lib/errors/DPPError.d.ts +5 -0
- package/dist/lib/errors/patchConsensusErrors.d.ts +1 -0
- package/dist/lib/{patchIdentifier.d.ts → identifier/patchIdentifier.d.ts} +1 -1
- package/dist/{index.d.ts → lib/index.d.ts} +1 -1
- package/dist/lib/utils/extend.d.ts +1 -0
- package/dist/wasm/wasm_dpp.d.ts +1595 -518
- package/karma.conf.js +5 -0
- package/lib/dpp.ts +24 -0
- package/lib/errors/AbstractConsensusError.ts +13 -0
- package/lib/errors/DPPError.ts +15 -0
- package/lib/errors/patchConsensusErrors.ts +175 -0
- package/lib/{patchIdentifier.ts → identifier/patchIdentifier.ts} +6 -5
- package/{index.ts → lib/index.ts} +5 -4
- package/lib/test/bootstrap.js +5 -0
- package/lib/test/expect/expectError.js +4 -2
- package/lib/test/mocks/getBlsAdapterMock.js +36 -0
- package/lib/test/utils/newDocumentsContainer.js +36 -0
- package/lib/utils/extend.ts +6 -0
- package/package.json +9 -6
- package/src/bls_adapter.rs +16 -1
- package/src/data_contract/data_contract.rs +35 -7
- package/src/data_contract/errors/invalid_data_contract.rs +21 -0
- package/src/data_contract/errors/invalid_document_type.rs +1 -1
- package/src/data_contract/index.rs +56 -1
- package/src/data_contract/mod.rs +1 -0
- package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +6 -8
- package/src/data_contract/state_transition/data_contract_create_transition/validation.rs +4 -4
- package/src/data_contract/state_transition/data_contract_update_transition/apply.rs +44 -0
- package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +145 -0
- package/src/data_contract/state_transition/data_contract_update_transition/validation.rs +49 -0
- package/src/data_contract/state_transition/mod.rs +2 -0
- package/src/data_contract_factory/data_contract_factory.rs +25 -12
- package/src/document/errors/invalid_document_error.rs +10 -9
- package/src/document/errors/invalid_initial_revision_error.rs +1 -1
- package/src/document/errors/mismatch_owners_ids_error.rs +14 -4
- package/src/document/errors/mod.rs +17 -13
- package/src/document/errors/no_documents_supplied_error.rs +4 -4
- package/src/document/factory.rs +192 -0
- package/src/document/mod.rs +222 -30
- package/src/document/state_transition/document_batch_transition/document_transition/document_create_transition.rs +47 -1
- package/src/document/state_transition/document_batch_transition/document_transition/document_delete_transition.rs +25 -1
- package/src/document/state_transition/document_batch_transition/document_transition/document_replace_transition.rs +65 -0
- package/src/document/state_transition/document_batch_transition/document_transition/mod.rs +123 -3
- package/src/document/state_transition/document_batch_transition/mod.rs +378 -0
- package/src/document/validator.rs +30 -0
- package/src/errors/consensus/basic/data_contract/data_contract_max_depth_exceed_error.rs +5 -5
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_ids_error.rs +4 -4
- package/src/errors/consensus/basic/document/duplicate_document_transitions_with_indices_error.rs +36 -0
- package/src/errors/consensus/basic/document/missing_document_transition_type_error.rs +20 -0
- package/src/errors/consensus/basic/document/mod.rs +4 -0
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_error.rs +2 -2
- package/src/errors/consensus/basic/identity/duplicated_identity_public_key_id_error.rs +2 -2
- package/src/errors/consensus/basic/identity/identity_asset_lock_proof_locked_transaction_mismatch_error.rs +6 -2
- package/src/errors/consensus/basic/identity/identity_asset_lock_transaction_out_point_already_exists_error.rs +5 -2
- package/src/errors/consensus/basic/identity/invalid_asset_lock_proof_transaction_height_error.rs +3 -3
- package/src/errors/consensus/basic/identity/invalid_identity_public_key_security_level_error.rs +2 -2
- package/src/errors/consensus/basic/json_schema_error.rs +1 -1
- package/src/errors/consensus_error.rs +15 -8
- package/src/errors/dpp_error.rs +17 -0
- package/src/errors/from.rs +6 -1
- package/src/errors/js_conversion.rs +19 -4
- package/src/errors/mod.rs +3 -0
- package/src/errors/protocol_error.rs +15 -0
- package/src/{identifier.rs → identifier/mod.rs} +48 -3
- package/src/identity/errors/asset_lock_output_not_found_error.rs +11 -0
- package/src/identity/errors/asset_lock_transaction_is_not_found_error.rs +20 -0
- package/src/identity/errors/mod.rs +7 -0
- package/src/identity/errors/unknown_asset_lock_proof_type_error.rs +26 -0
- package/src/{identity_facade.rs → identity/identity_facade.rs} +3 -5
- package/src/{identity_public_key → identity/identity_public_key}/key_type.rs +0 -0
- package/src/{identity_public_key → identity/identity_public_key}/mod.rs +41 -10
- package/src/{identity_public_key → identity/identity_public_key}/purpose.rs +0 -0
- package/src/{identity_public_key → identity/identity_public_key}/security_level.rs +0 -0
- package/src/{identity.rs → identity/mod.rs} +20 -12
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof.rs +132 -0
- package/src/identity/state_transition/asset_lock_proof/chain/chain_asset_lock_proof_structure_validator.rs +72 -0
- package/src/identity/state_transition/asset_lock_proof/chain/mod.rs +4 -0
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs +177 -0
- package/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof_structure_validator.rs +72 -0
- package/src/identity/state_transition/asset_lock_proof/instant/mod.rs +4 -0
- package/src/identity/state_transition/asset_lock_proof/mod.rs +269 -0
- package/src/identity/state_transition/identity_create_transition/apply_identity_create_transition.rs +26 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition.rs +335 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_basic_validator.rs +153 -0
- package/src/identity/state_transition/identity_create_transition/identity_create_transition_state_validator.rs +37 -0
- package/src/identity/state_transition/identity_create_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_create_transition/to_object.rs +46 -0
- package/src/identity/state_transition/identity_topup_transition/apply_identity_topup_transition.rs +31 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition.rs +280 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_basic_validator.rs +113 -0
- package/src/identity/state_transition/identity_topup_transition/identity_topup_transition_state_validator.rs +37 -0
- package/src/identity/state_transition/identity_topup_transition/mod.rs +8 -0
- package/src/identity/state_transition/identity_topup_transition/to_object.rs +42 -0
- package/src/identity/state_transition/mod.rs +9 -0
- package/src/identity/state_transition/validate_public_key_signatures.rs +59 -0
- package/src/identity/validation/mod.rs +3 -0
- package/src/identity/validation/public_keys_validator.rs +76 -0
- package/src/identity_public_key/public_keys_validator.rs +1 -1
- package/src/lib.rs +3 -6
- package/src/lodash.rs +7 -0
- package/src/state_repository.rs +188 -36
- package/src/state_transition/mod.rs +12 -0
- package/src/utils.rs +102 -7
- package/src/validation/json_schema_validator.rs +41 -0
- package/src/validation/mod.rs +5 -0
- package/src/{validation_result.rs → validation/validation_result.rs} +23 -5
- package/src/version/mod.rs +2 -0
- package/src/version/protocol_version.rs +26 -0
- package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +579 -502
- package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +175 -165
- package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +83 -114
- package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +1 -1
- package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +82 -91
- package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +75 -31
- package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +93 -148
- package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +63 -75
- package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +48 -19
- package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +79 -114
- package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +0 -11
- package/test/integration/stateTransition/StateTransitionFacade.spec.js +1 -1
- package/test/integration/stateTransition/calculateStateTransitionFeeFactory.spec.js +135 -0
- package/test/unit/dataContract/DataContract.spec.js +5 -9
- package/test/unit/dataContract/DataContractFactory.spec.js +13 -6
- package/test/unit/dataContract/createDataContract.spec.js +0 -1
- package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +11 -3
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +3 -3
- package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +20 -16
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +24 -60
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +27 -23
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +29 -12
- package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +66 -49
- package/test/unit/dataContract/validation/validateDataContractPatterns.spec.js +73 -0
- package/test/unit/decodeProtocolEntityFactory.spec.js +2 -2
- package/test/unit/document/Document.spec.js +147 -155
- package/test/unit/document/DocumentFactory.spec.js +325 -91
- package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +142 -64
- package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +1 -1
- package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +1 -1
- package/test/unit/identity/Identity.spec.js +2 -2
- package/test/unit/identity/IdentityPublicKey.spec.js +25 -31
- package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +69 -30
- package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +32 -32
- package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +56 -25
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +36 -16
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +48 -46
- package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +24 -6
- package/test/unit/identity/stateTransition/assetLockProof/ChainAssetLockProof.spec.js +63 -0
- package/test/unit/identity/stateTransition/assetLockProof/InstantAssetLockProof.spec.js +90 -0
- package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +18 -3
- package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +38 -11
- package/tsconfig.json +1 -1
- package/wasm/package.json +5 -0
- package/wasm/wasm_dpp.d.ts +1595 -518
- package/wasm/wasm_dpp.js +5007 -2172
- package/wasm/wasm_dpp_bg.js +1 -1
- package/wasm/wasm_dpp_bg.wasm +0 -0
- package/wasm/wasm_dpp_bg.wasm.d.ts +566 -365
- package/webpack.config.js +10 -1
- package/test/integration/stateTransition/calculateStateTransitionFee.spec.js +0 -32
- package/test/unit/dataContract/validation/validateDataContractMaxDepthFactory.spec.js +0 -93
- package/test/unit/dataContract/validation/validateDataContractPatternsFactory.spec.js +0 -64
|
@@ -1,68 +1,60 @@
|
|
|
1
|
-
const { getRE2Class } = require('@dashevo/wasm-re2');
|
|
2
|
-
|
|
3
|
-
const createAjv = require('@dashevo/dpp/lib/ajv/createAjv');
|
|
4
|
-
|
|
5
|
-
const JsonSchemaValidator = require('@dashevo/dpp/lib/validation/JsonSchemaValidator');
|
|
6
|
-
|
|
7
1
|
const getIdentityTopUpTransitionFixture = require('@dashevo/dpp/lib/test/fixtures/getIdentityTopUpTransitionFixture');
|
|
8
2
|
|
|
9
|
-
const
|
|
10
|
-
'@dashevo/dpp/lib/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory',
|
|
11
|
-
);
|
|
12
|
-
|
|
3
|
+
const createStateRepositoryMock = require('@dashevo/dpp/lib/test/mocks/createStateRepositoryMock');
|
|
13
4
|
const {
|
|
14
5
|
expectJsonSchemaError,
|
|
15
6
|
expectValidationError,
|
|
16
|
-
} = require('
|
|
17
|
-
|
|
18
|
-
const ValidationResult = require('@dashevo/dpp/lib/validation/ValidationResult');
|
|
19
|
-
|
|
20
|
-
const ChainAssetLockProof = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/chain/ChainAssetLockProof');
|
|
21
|
-
const InstantAssetLockProof = require('@dashevo/dpp/lib/identity/stateTransition/assetLockProof/instant/InstantAssetLockProof');
|
|
22
|
-
const SomeConsensusError = require('@dashevo/dpp/lib/test/mocks/SomeConsensusError');
|
|
23
|
-
const IdentityPublicKey = require('@dashevo/dpp/lib/identity/IdentityPublicKey');
|
|
24
|
-
const StateTransitionExecutionContext = require('@dashevo/dpp/lib/stateTransition/StateTransitionExecutionContext');
|
|
7
|
+
} = require('../../../../../../../lib/test/expect/expectError');
|
|
8
|
+
const { default: loadWasmDpp } = require('../../../../../../../dist');
|
|
25
9
|
|
|
26
10
|
describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
27
11
|
let rawStateTransition;
|
|
28
12
|
let stateTransition;
|
|
29
|
-
let assetLockPublicKeyHash;
|
|
30
|
-
let validateIdentityTopUpTransitionBasic;
|
|
31
|
-
let proofValidationFunctionsByTypeMock;
|
|
32
|
-
let validateProtocolVersionMock;
|
|
33
|
-
let executionContext;
|
|
34
|
-
|
|
35
|
-
beforeEach(async function beforeEach() {
|
|
36
|
-
assetLockPublicKeyHash = Buffer.alloc(20, 1);
|
|
37
13
|
|
|
38
|
-
|
|
39
|
-
|
|
14
|
+
let stateRepositoryMock;
|
|
15
|
+
let executionContext;
|
|
40
16
|
|
|
41
|
-
|
|
42
|
-
[InstantAssetLockProof.type]: this.sinonSandbox.stub().resolves(assetLockValidationResult),
|
|
43
|
-
[ChainAssetLockProof.type]: this.sinonSandbox.stub().resolves(assetLockValidationResult),
|
|
44
|
-
};
|
|
17
|
+
let validateIdentityTopUpTransitionBasic;
|
|
45
18
|
|
|
46
|
-
|
|
47
|
-
|
|
19
|
+
let StateTransitionExecutionContext;
|
|
20
|
+
let IdentityTopUpTransition;
|
|
21
|
+
let IdentityPublicKey;
|
|
22
|
+
let UnsupportedProtocolVersionError;
|
|
23
|
+
let InvalidInstantAssetLockProofSignatureError;
|
|
24
|
+
let IdentityTopUpTransitionBasicValidator;
|
|
25
|
+
|
|
26
|
+
before(async () => {
|
|
27
|
+
({
|
|
28
|
+
IdentityTopUpTransitionBasicValidator,
|
|
29
|
+
IdentityTopUpTransition,
|
|
30
|
+
StateTransitionExecutionContext,
|
|
31
|
+
IdentityPublicKey,
|
|
32
|
+
UnsupportedProtocolVersionError,
|
|
33
|
+
InvalidInstantAssetLockProofSignatureError,
|
|
34
|
+
} = await loadWasmDpp());
|
|
35
|
+
});
|
|
48
36
|
|
|
49
|
-
|
|
37
|
+
beforeEach(async function beforeEach() {
|
|
38
|
+
stateRepositoryMock = createStateRepositoryMock(this.sinonSandbox);
|
|
39
|
+
stateRepositoryMock.verifyInstantLock.returns(true);
|
|
50
40
|
|
|
51
|
-
|
|
41
|
+
executionContext = new StateTransitionExecutionContext();
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
43
|
+
const validator = new IdentityTopUpTransitionBasicValidator(stateRepositoryMock);
|
|
44
|
+
validateIdentityTopUpTransitionBasic = (st, context) => validator.validate(
|
|
45
|
+
st,
|
|
46
|
+
context,
|
|
57
47
|
);
|
|
58
48
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
stateTransition = getIdentityTopUpTransitionFixture();
|
|
49
|
+
const stateTransitionJS = getIdentityTopUpTransitionFixture();
|
|
50
|
+
stateTransition = new IdentityTopUpTransition(stateTransitionJS.toObject());
|
|
62
51
|
|
|
63
52
|
const privateKey = '9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2';
|
|
64
53
|
|
|
65
|
-
await stateTransition.signByPrivateKey(
|
|
54
|
+
await stateTransition.signByPrivateKey(
|
|
55
|
+
Buffer.from(privateKey, 'hex'),
|
|
56
|
+
IdentityPublicKey.TYPES.ECDSA_SECP256K1,
|
|
57
|
+
);
|
|
66
58
|
|
|
67
59
|
rawStateTransition = stateTransition.toObject();
|
|
68
60
|
});
|
|
@@ -71,9 +63,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
71
63
|
it('should be present', async () => {
|
|
72
64
|
delete rawStateTransition.protocolVersion;
|
|
73
65
|
|
|
74
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
66
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
67
|
+
rawStateTransition, executionContext,
|
|
68
|
+
);
|
|
75
69
|
|
|
76
|
-
expectJsonSchemaError(result);
|
|
70
|
+
await expectJsonSchemaError(result);
|
|
77
71
|
|
|
78
72
|
const [error] = result.getErrors();
|
|
79
73
|
|
|
@@ -85,9 +79,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
85
79
|
it('should be an integer', async () => {
|
|
86
80
|
rawStateTransition.protocolVersion = '1';
|
|
87
81
|
|
|
88
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
82
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
83
|
+
rawStateTransition, executionContext,
|
|
84
|
+
);
|
|
89
85
|
|
|
90
|
-
expectJsonSchemaError(result);
|
|
86
|
+
await expectJsonSchemaError(result);
|
|
91
87
|
|
|
92
88
|
const [error] = result.getErrors();
|
|
93
89
|
|
|
@@ -96,26 +92,13 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
96
92
|
});
|
|
97
93
|
|
|
98
94
|
it('should be valid', async () => {
|
|
99
|
-
rawStateTransition.protocolVersion =
|
|
100
|
-
|
|
101
|
-
const protocolVersionError = new SomeConsensusError('test');
|
|
102
|
-
const protocolVersionResult = new ValidationResult([
|
|
103
|
-
protocolVersionError,
|
|
104
|
-
]);
|
|
105
|
-
|
|
106
|
-
validateProtocolVersionMock.returns(protocolVersionResult);
|
|
95
|
+
rawStateTransition.protocolVersion = 1000;
|
|
107
96
|
|
|
108
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
109
|
-
|
|
110
|
-
expectValidationError(result, SomeConsensusError);
|
|
111
|
-
|
|
112
|
-
const [error] = result.getErrors();
|
|
113
|
-
|
|
114
|
-
expect(error).to.equal(protocolVersionError);
|
|
115
|
-
|
|
116
|
-
expect(validateProtocolVersionMock).to.be.calledOnceWith(
|
|
117
|
-
rawStateTransition.protocolVersion,
|
|
97
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
98
|
+
rawStateTransition, executionContext,
|
|
118
99
|
);
|
|
100
|
+
|
|
101
|
+
await expectValidationError(result, UnsupportedProtocolVersionError);
|
|
119
102
|
});
|
|
120
103
|
});
|
|
121
104
|
|
|
@@ -123,9 +106,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
123
106
|
it('should be present', async () => {
|
|
124
107
|
delete rawStateTransition.type;
|
|
125
108
|
|
|
126
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
109
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
110
|
+
rawStateTransition, executionContext,
|
|
111
|
+
);
|
|
127
112
|
|
|
128
|
-
expectJsonSchemaError(result);
|
|
113
|
+
await expectJsonSchemaError(result);
|
|
129
114
|
|
|
130
115
|
const [error] = result.getErrors();
|
|
131
116
|
|
|
@@ -137,9 +122,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
137
122
|
it('should be equal to 3', async () => {
|
|
138
123
|
rawStateTransition.type = 666;
|
|
139
124
|
|
|
140
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
125
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
126
|
+
rawStateTransition, executionContext,
|
|
127
|
+
);
|
|
141
128
|
|
|
142
|
-
expectJsonSchemaError(result);
|
|
129
|
+
await expectJsonSchemaError(result);
|
|
143
130
|
|
|
144
131
|
const [error] = result.getErrors();
|
|
145
132
|
|
|
@@ -155,9 +142,10 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
155
142
|
|
|
156
143
|
const result = await validateIdentityTopUpTransitionBasic(
|
|
157
144
|
rawStateTransition,
|
|
145
|
+
executionContext,
|
|
158
146
|
);
|
|
159
147
|
|
|
160
|
-
expectJsonSchemaError(result);
|
|
148
|
+
await expectJsonSchemaError(result);
|
|
161
149
|
|
|
162
150
|
const [error] = result.getErrors();
|
|
163
151
|
|
|
@@ -169,9 +157,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
169
157
|
it('should be an object', async () => {
|
|
170
158
|
rawStateTransition.assetLockProof = 1;
|
|
171
159
|
|
|
172
|
-
const result = await validateIdentityTopUpTransitionBasic(
|
|
160
|
+
const result = await validateIdentityTopUpTransitionBasic(
|
|
161
|
+
rawStateTransition, executionContext,
|
|
162
|
+
);
|
|
173
163
|
|
|
174
|
-
expectJsonSchemaError(result, 1);
|
|
164
|
+
await expectJsonSchemaError(result, 1);
|
|
175
165
|
|
|
176
166
|
const [error] = result.getErrors();
|
|
177
167
|
|
|
@@ -180,29 +170,18 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
180
170
|
});
|
|
181
171
|
|
|
182
172
|
it('should be valid', async () => {
|
|
183
|
-
|
|
184
|
-
const assetLockResult = new ValidationResult([
|
|
185
|
-
assetLockError,
|
|
186
|
-
]);
|
|
187
|
-
|
|
188
|
-
proofValidationFunctionsByTypeMock[InstantAssetLockProof.type].resolves(assetLockResult);
|
|
173
|
+
stateRepositoryMock.verifyInstantLock.returns(false);
|
|
189
174
|
|
|
190
175
|
const result = await validateIdentityTopUpTransitionBasic(
|
|
191
176
|
rawStateTransition,
|
|
192
177
|
executionContext,
|
|
193
178
|
);
|
|
194
179
|
|
|
195
|
-
expectValidationError(result);
|
|
180
|
+
await expectValidationError(result);
|
|
196
181
|
|
|
197
182
|
const [error] = result.getErrors();
|
|
198
183
|
|
|
199
|
-
expect(error).to.
|
|
200
|
-
|
|
201
|
-
expect(proofValidationFunctionsByTypeMock[InstantAssetLockProof.type])
|
|
202
|
-
.to.be.calledOnceWithExactly(
|
|
203
|
-
rawStateTransition.assetLockProof,
|
|
204
|
-
executionContext,
|
|
205
|
-
);
|
|
184
|
+
expect(error).to.be.instanceOf(InvalidInstantAssetLockProofSignatureError);
|
|
206
185
|
});
|
|
207
186
|
});
|
|
208
187
|
|
|
@@ -215,7 +194,7 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
215
194
|
executionContext,
|
|
216
195
|
);
|
|
217
196
|
|
|
218
|
-
expectJsonSchemaError(result);
|
|
197
|
+
await expectJsonSchemaError(result);
|
|
219
198
|
|
|
220
199
|
const [error] = result.getErrors();
|
|
221
200
|
|
|
@@ -232,14 +211,12 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
232
211
|
executionContext,
|
|
233
212
|
);
|
|
234
213
|
|
|
235
|
-
expectJsonSchemaError(result,
|
|
214
|
+
await expectJsonSchemaError(result, 32);
|
|
236
215
|
|
|
237
|
-
const [error
|
|
216
|
+
const [error] = result.getErrors();
|
|
238
217
|
|
|
239
218
|
expect(error.getInstancePath()).to.equal('/identityId/0');
|
|
240
219
|
expect(error.getKeyword()).to.equal('type');
|
|
241
|
-
|
|
242
|
-
expect(byteArrayError.getKeyword()).to.equal('byteArray');
|
|
243
220
|
});
|
|
244
221
|
|
|
245
222
|
it('should be no less than 32 bytes', async () => {
|
|
@@ -250,11 +227,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
250
227
|
executionContext,
|
|
251
228
|
);
|
|
252
229
|
|
|
253
|
-
expectJsonSchemaError(result);
|
|
230
|
+
await expectJsonSchemaError(result);
|
|
254
231
|
|
|
255
232
|
const [error] = result.getErrors();
|
|
256
233
|
|
|
257
|
-
expect(error.
|
|
234
|
+
expect(error.getInstancePath()).to.equal('/identityId');
|
|
258
235
|
expect(error.getKeyword()).to.equal('minItems');
|
|
259
236
|
});
|
|
260
237
|
|
|
@@ -266,11 +243,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
266
243
|
executionContext,
|
|
267
244
|
);
|
|
268
245
|
|
|
269
|
-
expectJsonSchemaError(result);
|
|
246
|
+
await expectJsonSchemaError(result);
|
|
270
247
|
|
|
271
248
|
const [error] = result.getErrors();
|
|
272
249
|
|
|
273
|
-
expect(error.
|
|
250
|
+
expect(error.getInstancePath()).to.equal('/identityId');
|
|
274
251
|
expect(error.getKeyword()).to.equal('maxItems');
|
|
275
252
|
});
|
|
276
253
|
});
|
|
@@ -284,11 +261,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
284
261
|
executionContext,
|
|
285
262
|
);
|
|
286
263
|
|
|
287
|
-
expectJsonSchemaError(result);
|
|
264
|
+
await expectJsonSchemaError(result);
|
|
288
265
|
|
|
289
266
|
const [error] = result.getErrors();
|
|
290
267
|
|
|
291
|
-
expect(error.
|
|
268
|
+
expect(error.getInstancePath()).to.equal('');
|
|
292
269
|
expect(error.getKeyword()).to.equal('required');
|
|
293
270
|
expect(error.getParams().missingProperty).to.equal('signature');
|
|
294
271
|
});
|
|
@@ -301,14 +278,12 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
301
278
|
executionContext,
|
|
302
279
|
);
|
|
303
280
|
|
|
304
|
-
expectJsonSchemaError(result,
|
|
281
|
+
await expectJsonSchemaError(result, 65);
|
|
305
282
|
|
|
306
|
-
const [error
|
|
283
|
+
const [error] = result.getErrors();
|
|
307
284
|
|
|
308
|
-
expect(error.
|
|
285
|
+
expect(error.getInstancePath()).to.equal('/signature/0');
|
|
309
286
|
expect(error.getKeyword()).to.equal('type');
|
|
310
|
-
|
|
311
|
-
expect(byteArrayError.getKeyword()).to.equal('byteArray');
|
|
312
287
|
});
|
|
313
288
|
|
|
314
289
|
it('should be not shorter than 65 bytes', async () => {
|
|
@@ -319,11 +294,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
319
294
|
executionContext,
|
|
320
295
|
);
|
|
321
296
|
|
|
322
|
-
expectJsonSchemaError(result);
|
|
297
|
+
await expectJsonSchemaError(result);
|
|
323
298
|
|
|
324
299
|
const [error] = result.getErrors();
|
|
325
300
|
|
|
326
|
-
expect(error.
|
|
301
|
+
expect(error.getInstancePath()).to.equal('/signature');
|
|
327
302
|
expect(error.getKeyword()).to.equal('minItems');
|
|
328
303
|
});
|
|
329
304
|
|
|
@@ -335,11 +310,11 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
335
310
|
executionContext,
|
|
336
311
|
);
|
|
337
312
|
|
|
338
|
-
expectJsonSchemaError(result);
|
|
313
|
+
await expectJsonSchemaError(result);
|
|
339
314
|
|
|
340
315
|
const [error] = result.getErrors();
|
|
341
316
|
|
|
342
|
-
expect(error.
|
|
317
|
+
expect(error.getInstancePath()).to.equal('/signature');
|
|
343
318
|
expect(error.getKeyword()).to.equal('maxItems');
|
|
344
319
|
});
|
|
345
320
|
});
|
|
@@ -351,11 +326,5 @@ describe('validateIdentityTopUpTransitionBasicFactory', () => {
|
|
|
351
326
|
);
|
|
352
327
|
|
|
353
328
|
expect(result.isValid()).to.be.true();
|
|
354
|
-
|
|
355
|
-
expect(proofValidationFunctionsByTypeMock[InstantAssetLockProof.type])
|
|
356
|
-
.to.be.calledOnceWithExactly(
|
|
357
|
-
rawStateTransition.assetLockProof,
|
|
358
|
-
executionContext,
|
|
359
|
-
);
|
|
360
329
|
});
|
|
361
330
|
});
|
|
@@ -36,7 +36,7 @@ describe('validateIdentityUpdateTransitionStateFactory', () => {
|
|
|
36
36
|
|
|
37
37
|
blockTime = Date.now();
|
|
38
38
|
|
|
39
|
-
stateRepositoryMock.fetchLatestPlatformBlockTime.
|
|
39
|
+
stateRepositoryMock.fetchLatestPlatformBlockTime.resolves(blockTime);
|
|
40
40
|
|
|
41
41
|
validateIdentityUpdateTransitionState = validateIdentityUpdateTransitionStateFactory(
|
|
42
42
|
stateRepositoryMock,
|