@dashevo/wasm-dpp 0.23.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/.babelrc +5 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintignore +1 -0
  4. package/.eslintrc +15 -0
  5. package/.mocharc.yml +4 -0
  6. package/CHANGELOG.md +397 -0
  7. package/LICENSE +20 -0
  8. package/README.md +37 -0
  9. package/karma.conf.js +53 -0
  10. package/package.json +107 -0
  11. package/test/.eslintrc +12 -0
  12. package/test/integration/DashPlatformProtocol.spec.js +53 -0
  13. package/test/integration/ajv/keywords/byteArray/addByteArrayKeyword.spec.js +148 -0
  14. package/test/integration/dataContract/DataContractFacade.spec.js +84 -0
  15. package/test/integration/dataContract/stateTransition/DataContractCreateTransition/validation/basic/validateDataContractCreateTransitionBasicFactory.spec.js +357 -0
  16. package/test/integration/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateDataContractUpdateTransitionBasicFactory.spec.js +444 -0
  17. package/test/integration/dataContract/validation/validateDataContractFactory.spec.js +2191 -0
  18. package/test/integration/document/Document.spec.js +90 -0
  19. package/test/integration/document/DocumentFacade.spec.js +155 -0
  20. package/test/integration/document/stateTransition/DocumentsBatchTransition/DocumentBatchTransition.spec.js +83 -0
  21. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/basic/validateDocumentsBatchTransitionBasicFactory.spec.js +1146 -0
  22. package/test/integration/document/stateTransition/DocumentsBatchTransition/validation/state/executeDataTriggersFactory.spec.js +294 -0
  23. package/test/integration/document/validation/validateDocumentFactory.spec.js +447 -0
  24. package/test/integration/error/consensus/createConsensusError.spec.js +21 -0
  25. package/test/integration/identity/IdentityFacade.spec.js +187 -0
  26. package/test/integration/identity/stateTransition/IdentityCreateTransition/validation/basic/validateIdentityCreateTransitionBasicFactory.spec.js +422 -0
  27. package/test/integration/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory.spec.js +361 -0
  28. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/basic/validateIdentityUpdateTransitionBasicFactory.spec.js +595 -0
  29. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +299 -0
  30. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validatePublicKeysState.spec.js +66 -0
  31. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +415 -0
  32. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +134 -0
  33. package/test/integration/identity/stateTransition/assetLockProof/instant/validateInstantAssetLockProofStructureFactory.spec.js +401 -0
  34. package/test/integration/identity/stateTransition/assetLockProof/validateAssetLockTransactionFactory.spec.js +205 -0
  35. package/test/integration/identity/stateTransition/validatePublicKeySignaturesFactory.spec.js +127 -0
  36. package/test/integration/identity/validation/validateIdentityFactory.spec.js +370 -0
  37. package/test/integration/identity/validation/validatePublicKeysFactory.spec.js +497 -0
  38. package/test/integration/stateTransition/AbstractStateTransitionIdentitySigned.spec.js +507 -0
  39. package/test/integration/stateTransition/StateTransitionFacade.spec.js +418 -0
  40. package/test/integration/stateTransition/calculateStateTransitionFee.spec.js +35 -0
  41. package/test/integration/util/generateEntropy.spec.js +17 -0
  42. package/test/integration/util/serializer.spec.js +24 -0
  43. package/test/unit/DashPlatformProtocol.spec.js +79 -0
  44. package/test/unit/Identifier.spec.js +123 -0
  45. package/test/unit/Metadata.spec.js +37 -0
  46. package/test/unit/dataContract/DataContract.spec.js +407 -0
  47. package/test/unit/dataContract/DataContractFactory.spec.js +178 -0
  48. package/test/unit/dataContract/createDataContract.spec.js +57 -0
  49. package/test/unit/dataContract/errors/InvalidDataContractError.spec.js +46 -0
  50. package/test/unit/dataContract/generateDataContractId.spec.js +19 -0
  51. package/test/unit/dataContract/getBinaryPropertiesFromSchema.spec.js +103 -0
  52. package/test/unit/dataContract/getPropertyDefinitionByPath.spec.js +84 -0
  53. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +160 -0
  54. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/applyDataContractCreateTransitionFactory.spec.js +48 -0
  55. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/validation/state/validateDataContractCreateTransitionStateFactory.spec.js +85 -0
  56. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +158 -0
  57. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/applyDataContractUpdateTransitionFactory.spec.js +47 -0
  58. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/basic/validateIndicesAreBackwardCompatible.spec.js +121 -0
  59. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/validation/state/validateDataContractUpdateTransitionStateFactory.spec.js +111 -0
  60. package/test/unit/dataContract/validation/validateDataContractMaxDepthFactory.spec.js +93 -0
  61. package/test/unit/dataContract/validation/validateDataContractPatternsFactory.spec.js +64 -0
  62. package/test/unit/dataTrigger/DataTrigger.spec.js +132 -0
  63. package/test/unit/dataTrigger/DataTriggerExecutionContext.spec.js +29 -0
  64. package/test/unit/dataTrigger/dashpayDataTriggers/createContactRequestDataTrigger.spec.js +109 -0
  65. package/test/unit/dataTrigger/dpnsTriggers/createDomainDataTrigger.spec.js +382 -0
  66. package/test/unit/dataTrigger/featureFlagDataTriggers/createFeatureFlagDataTrigger.spec.js +101 -0
  67. package/test/unit/dataTrigger/getDataTriggersFactory.spec.js +113 -0
  68. package/test/unit/dataTrigger/rejectDataTrigger.spec.js +51 -0
  69. package/test/unit/dataTrigger/rewardShareDataTriggers/createMasternodeRewardSharesDataTrigger.spec.js +200 -0
  70. package/test/unit/decodeProtocolEntityFactory.spec.js +75 -0
  71. package/test/unit/document/Document.spec.js +444 -0
  72. package/test/unit/document/DocumentFactory.spec.js +376 -0
  73. package/test/unit/document/errors/InvalidDocumentError.spec.js +46 -0
  74. package/test/unit/document/fetchAndValidateDataContractFactory.spec.js +66 -0
  75. package/test/unit/document/stateTransition/DocumetsBatchTransition/DocumentsBatchTransition.spec.js +168 -0
  76. package/test/unit/document/stateTransition/DocumetsBatchTransition/applyDocumentsBatchTransitionFactory.spec.js +171 -0
  77. package/test/unit/document/stateTransition/DocumetsBatchTransition/documentTransition/DocumentCreateTransition.spec.js +25 -0
  78. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesById.spec.js +31 -0
  79. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/findDuplicatesByIndices.spec.js +122 -0
  80. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/basic/validatePartialCompoundIndices.spec.js +75 -0
  81. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/fetchDocumentsFactory.spec.js +128 -0
  82. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsBatchTransitionStateFactory.spec.js +811 -0
  83. package/test/unit/document/stateTransition/DocumetsBatchTransition/validation/state/validateDocumentsUniquenessByIndicesFactory.spec.js +279 -0
  84. package/test/unit/errors/consensus/codes.spec.js +102 -0
  85. package/test/unit/identity/Identity.spec.js +243 -0
  86. package/test/unit/identity/IdentityFactory.spec.js +274 -0
  87. package/test/unit/identity/IdentityPublicKey.spec.js +273 -0
  88. package/test/unit/identity/creditsConverter.spec.js +34 -0
  89. package/test/unit/identity/errors/InvalidIdentityError.spec.js +46 -0
  90. package/test/unit/identity/stateTransition/IdentityCreateTransition/IdentityCreateTransition.spec.js +184 -0
  91. package/test/unit/identity/stateTransition/IdentityCreateTransition/applyIdentityCreateTransitionFactory.spec.js +90 -0
  92. package/test/unit/identity/stateTransition/IdentityCreateTransition/validation/state/validateIdentityCreateTransitionStateFactory.spec.js +71 -0
  93. package/test/unit/identity/stateTransition/IdentityTopUpTransition/IdentityTopUpTransition.spec.js +137 -0
  94. package/test/unit/identity/stateTransition/IdentityTopUpTransition/applyIdentityTopUpTransitionFactory.spec.js +108 -0
  95. package/test/unit/identity/stateTransition/IdentityTopUpTransition/validation/state/validateIdentityTopUpTransitionStateFactory.spec.js +22 -0
  96. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +219 -0
  97. package/test/unit/identity/stateTransition/IdentityUpdateTransition/applyIdentityUpdateTransitionFactory.spec.js +149 -0
  98. package/test/unit/identity/stateTransition/assetLockProof/createAssetLockProofInstance.spec.js +21 -0
  99. package/test/unit/identity/stateTransition/assetLockProof/fetchAssetLockPublicKeyHashFactory.spec.js +36 -0
  100. package/test/unit/identity/validation/validateRequiredPurposeAndSecurityLevelFactory.spec.js +47 -0
  101. package/test/unit/stateTransition/StateTransitionFactory.spec.js +160 -0
  102. package/test/unit/stateTransition/createStateTransitionFactory.spec.js +72 -0
  103. package/test/unit/stateTransition/errors/InvalidStateTransitionError.spec.js +51 -0
  104. package/test/unit/stateTransition/validation/validateStateTransitionBasicFactory.spec.js +138 -0
  105. package/test/unit/stateTransition/validation/validateStateTransitionFeeFactory.spec.js +372 -0
  106. package/test/unit/stateTransition/validation/validateStateTransitionIdentitySignatureFactory.spec.js +339 -0
  107. package/test/unit/stateTransition/validation/validateStateTransitionKeySignatureFactory.spec.js +86 -0
  108. package/test/unit/stateTransition/validation/validateStateTransitionStateFactory.spec.js +89 -0
  109. package/test/unit/version/validateProtocolVersionFactory.spec.js +80 -0
  110. package/webpack.config.js +49 -0
@@ -0,0 +1,361 @@
1
+ const { getRE2Class } = require('@dashevo/wasm-re2');
2
+
3
+ const createAjv = require('../../../../../../../lib/ajv/createAjv');
4
+
5
+ const JsonSchemaValidator = require('../../../../../../../lib/validation/JsonSchemaValidator');
6
+
7
+ const getIdentityTopUpTransitionFixture = require('../../../../../../../lib/test/fixtures/getIdentityTopUpTransitionFixture');
8
+
9
+ const validateIdentityTopUpTransitionBasicFactory = require(
10
+ '../../../../../../../lib/identity/stateTransition/IdentityTopUpTransition/validation/basic/validateIdentityTopUpTransitionBasicFactory',
11
+ );
12
+
13
+ const {
14
+ expectJsonSchemaError,
15
+ expectValidationError,
16
+ } = require('../../../../../../../lib/test/expect/expectError');
17
+
18
+ const ValidationResult = require('../../../../../../../lib/validation/ValidationResult');
19
+
20
+ const ChainAssetLockProof = require('../../../../../../../lib/identity/stateTransition/assetLockProof/chain/ChainAssetLockProof');
21
+ const InstantAssetLockProof = require('../../../../../../../lib/identity/stateTransition/assetLockProof/instant/InstantAssetLockProof');
22
+ const SomeConsensusError = require('../../../../../../../lib/test/mocks/SomeConsensusError');
23
+ const IdentityPublicKey = require('../../../../../../../lib/identity/IdentityPublicKey');
24
+ const StateTransitionExecutionContext = require('../../../../../../../lib/stateTransition/StateTransitionExecutionContext');
25
+
26
+ describe('validateIdentityTopUpTransitionBasicFactory', () => {
27
+ let rawStateTransition;
28
+ 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
+
38
+ const assetLockValidationResult = new ValidationResult();
39
+ assetLockValidationResult.setData(assetLockPublicKeyHash);
40
+
41
+ proofValidationFunctionsByTypeMock = {
42
+ [InstantAssetLockProof.type]: this.sinonSandbox.stub().resolves(assetLockValidationResult),
43
+ [ChainAssetLockProof.type]: this.sinonSandbox.stub().resolves(assetLockValidationResult),
44
+ };
45
+
46
+ const RE2 = await getRE2Class();
47
+ const ajv = createAjv(RE2);
48
+
49
+ const jsonSchemaValidator = new JsonSchemaValidator(ajv);
50
+
51
+ validateProtocolVersionMock = this.sinonSandbox.stub().returns(new ValidationResult());
52
+
53
+ validateIdentityTopUpTransitionBasic = validateIdentityTopUpTransitionBasicFactory(
54
+ jsonSchemaValidator,
55
+ proofValidationFunctionsByTypeMock,
56
+ validateProtocolVersionMock,
57
+ );
58
+
59
+ executionContext = new StateTransitionExecutionContext();
60
+
61
+ stateTransition = getIdentityTopUpTransitionFixture();
62
+
63
+ const privateKey = '9b67f852093bc61cea0eeca38599dbfba0de28574d2ed9b99d10d33dc1bde7b2';
64
+
65
+ await stateTransition.signByPrivateKey(privateKey, IdentityPublicKey.TYPES.ECDSA_SECP256K1);
66
+
67
+ rawStateTransition = stateTransition.toObject();
68
+ });
69
+
70
+ describe('protocolVersion', () => {
71
+ it('should be present', async () => {
72
+ delete rawStateTransition.protocolVersion;
73
+
74
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
75
+
76
+ expectJsonSchemaError(result);
77
+
78
+ const [error] = result.getErrors();
79
+
80
+ expect(error.getInstancePath()).to.equal('');
81
+ expect(error.getKeyword()).to.equal('required');
82
+ expect(error.getParams().missingProperty).to.equal('protocolVersion');
83
+ });
84
+
85
+ it('should be an integer', async () => {
86
+ rawStateTransition.protocolVersion = '1';
87
+
88
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
89
+
90
+ expectJsonSchemaError(result);
91
+
92
+ const [error] = result.getErrors();
93
+
94
+ expect(error.getInstancePath()).to.equal('/protocolVersion');
95
+ expect(error.getKeyword()).to.equal('type');
96
+ });
97
+
98
+ it('should be valid', async () => {
99
+ rawStateTransition.protocolVersion = -1;
100
+
101
+ const protocolVersionError = new SomeConsensusError('test');
102
+ const protocolVersionResult = new ValidationResult([
103
+ protocolVersionError,
104
+ ]);
105
+
106
+ validateProtocolVersionMock.returns(protocolVersionResult);
107
+
108
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
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,
118
+ );
119
+ });
120
+ });
121
+
122
+ describe('type', () => {
123
+ it('should be present', async () => {
124
+ delete rawStateTransition.type;
125
+
126
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
127
+
128
+ expectJsonSchemaError(result);
129
+
130
+ const [error] = result.getErrors();
131
+
132
+ expect(error.getInstancePath()).to.equal('');
133
+ expect(error.getKeyword()).to.equal('required');
134
+ expect(error.getParams().missingProperty).to.equal('type');
135
+ });
136
+
137
+ it('should be equal to 3', async () => {
138
+ rawStateTransition.type = 666;
139
+
140
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
141
+
142
+ expectJsonSchemaError(result);
143
+
144
+ const [error] = result.getErrors();
145
+
146
+ expect(error.getInstancePath()).to.equal('/type');
147
+ expect(error.getKeyword()).to.equal('const');
148
+ expect(error.getParams().allowedValue).to.equal(3);
149
+ });
150
+ });
151
+
152
+ describe('assetLockProof', () => {
153
+ it('should be present', async () => {
154
+ delete rawStateTransition.assetLockProof;
155
+
156
+ const result = await validateIdentityTopUpTransitionBasic(
157
+ rawStateTransition,
158
+ );
159
+
160
+ expectJsonSchemaError(result);
161
+
162
+ const [error] = result.getErrors();
163
+
164
+ expect(error.getInstancePath()).to.equal('');
165
+ expect(error.getParams().missingProperty).to.equal('assetLockProof');
166
+ expect(error.getKeyword()).to.equal('required');
167
+ });
168
+
169
+ it('should be an object', async () => {
170
+ rawStateTransition.assetLockProof = 1;
171
+
172
+ const result = await validateIdentityTopUpTransitionBasic(rawStateTransition);
173
+
174
+ expectJsonSchemaError(result, 1);
175
+
176
+ const [error] = result.getErrors();
177
+
178
+ expect(error.getInstancePath()).to.equal('/assetLockProof');
179
+ expect(error.getKeyword()).to.equal('type');
180
+ });
181
+
182
+ it('should be valid', async () => {
183
+ const assetLockError = new SomeConsensusError('test');
184
+ const assetLockResult = new ValidationResult([
185
+ assetLockError,
186
+ ]);
187
+
188
+ proofValidationFunctionsByTypeMock[InstantAssetLockProof.type].resolves(assetLockResult);
189
+
190
+ const result = await validateIdentityTopUpTransitionBasic(
191
+ rawStateTransition,
192
+ executionContext,
193
+ );
194
+
195
+ expectValidationError(result);
196
+
197
+ const [error] = result.getErrors();
198
+
199
+ expect(error).to.equal(assetLockError);
200
+
201
+ expect(proofValidationFunctionsByTypeMock[InstantAssetLockProof.type])
202
+ .to.be.calledOnceWithExactly(
203
+ rawStateTransition.assetLockProof,
204
+ executionContext,
205
+ );
206
+ });
207
+ });
208
+
209
+ describe('identityId', () => {
210
+ it('should be present', async () => {
211
+ delete rawStateTransition.identityId;
212
+
213
+ const result = await validateIdentityTopUpTransitionBasic(
214
+ rawStateTransition,
215
+ executionContext,
216
+ );
217
+
218
+ expectJsonSchemaError(result);
219
+
220
+ const [error] = result.getErrors();
221
+
222
+ expect(error.getInstancePath()).to.equal('');
223
+ expect(error.getKeyword()).to.equal('required');
224
+ expect(error.getParams().missingProperty).to.equal('identityId');
225
+ });
226
+
227
+ it('should be a byte array', async () => {
228
+ rawStateTransition.identityId = new Array(32).fill('string');
229
+
230
+ const result = await validateIdentityTopUpTransitionBasic(
231
+ rawStateTransition,
232
+ executionContext,
233
+ );
234
+
235
+ expectJsonSchemaError(result, 2);
236
+
237
+ const [error, byteArrayError] = result.getErrors();
238
+
239
+ expect(error.getInstancePath()).to.equal('/identityId/0');
240
+ expect(error.getKeyword()).to.equal('type');
241
+
242
+ expect(byteArrayError.getKeyword()).to.equal('byteArray');
243
+ });
244
+
245
+ it('should be no less than 32 bytes', async () => {
246
+ rawStateTransition.identityId = Buffer.alloc(31);
247
+
248
+ const result = await validateIdentityTopUpTransitionBasic(
249
+ rawStateTransition,
250
+ executionContext,
251
+ );
252
+
253
+ expectJsonSchemaError(result);
254
+
255
+ const [error] = result.getErrors();
256
+
257
+ expect(error.instancePath).to.equal('/identityId');
258
+ expect(error.getKeyword()).to.equal('minItems');
259
+ });
260
+
261
+ it('should be no longer than 32 bytes', async () => {
262
+ rawStateTransition.identityId = Buffer.alloc(33);
263
+
264
+ const result = await validateIdentityTopUpTransitionBasic(
265
+ rawStateTransition,
266
+ executionContext,
267
+ );
268
+
269
+ expectJsonSchemaError(result);
270
+
271
+ const [error] = result.getErrors();
272
+
273
+ expect(error.instancePath).to.equal('/identityId');
274
+ expect(error.getKeyword()).to.equal('maxItems');
275
+ });
276
+ });
277
+
278
+ describe('signature', () => {
279
+ it('should be present', async () => {
280
+ delete rawStateTransition.signature;
281
+
282
+ const result = await validateIdentityTopUpTransitionBasic(
283
+ rawStateTransition,
284
+ executionContext,
285
+ );
286
+
287
+ expectJsonSchemaError(result);
288
+
289
+ const [error] = result.getErrors();
290
+
291
+ expect(error.instancePath).to.equal('');
292
+ expect(error.getKeyword()).to.equal('required');
293
+ expect(error.getParams().missingProperty).to.equal('signature');
294
+ });
295
+
296
+ it('should be a byte array', async () => {
297
+ rawStateTransition.signature = new Array(65).fill('string');
298
+
299
+ const result = await validateIdentityTopUpTransitionBasic(
300
+ rawStateTransition,
301
+ executionContext,
302
+ );
303
+
304
+ expectJsonSchemaError(result, 2);
305
+
306
+ const [error, byteArrayError] = result.getErrors();
307
+
308
+ expect(error.instancePath).to.equal('/signature/0');
309
+ expect(error.getKeyword()).to.equal('type');
310
+
311
+ expect(byteArrayError.getKeyword()).to.equal('byteArray');
312
+ });
313
+
314
+ it('should be not shorter than 65 bytes', async () => {
315
+ rawStateTransition.signature = Buffer.alloc(64);
316
+
317
+ const result = await validateIdentityTopUpTransitionBasic(
318
+ rawStateTransition,
319
+ executionContext,
320
+ );
321
+
322
+ expectJsonSchemaError(result);
323
+
324
+ const [error] = result.getErrors();
325
+
326
+ expect(error.instancePath).to.equal('/signature');
327
+ expect(error.getKeyword()).to.equal('minItems');
328
+ });
329
+
330
+ it('should be not longer than 65 bytes', async () => {
331
+ rawStateTransition.signature = Buffer.alloc(66);
332
+
333
+ const result = await validateIdentityTopUpTransitionBasic(
334
+ rawStateTransition,
335
+ executionContext,
336
+ );
337
+
338
+ expectJsonSchemaError(result);
339
+
340
+ const [error] = result.getErrors();
341
+
342
+ expect(error.instancePath).to.equal('/signature');
343
+ expect(error.getKeyword()).to.equal('maxItems');
344
+ });
345
+ });
346
+
347
+ it('should return valid result', async () => {
348
+ const result = await validateIdentityTopUpTransitionBasic(
349
+ rawStateTransition,
350
+ executionContext,
351
+ );
352
+
353
+ expect(result.isValid()).to.be.true();
354
+
355
+ expect(proofValidationFunctionsByTypeMock[InstantAssetLockProof.type])
356
+ .to.be.calledOnceWithExactly(
357
+ rawStateTransition.assetLockProof,
358
+ executionContext,
359
+ );
360
+ });
361
+ });