pshenmic-dpp 1.0.4 → 1.0.5
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/.github/workflows/build.yml +8 -0
- package/.github/workflows/publish.yml +8 -0
- package/Cargo.lock +79 -31
- package/Cargo.toml +20 -17
- package/README.md +66 -23
- package/babel.config.json +19 -0
- package/dist/wasm/pshenmic_dpp.js +2487 -355
- package/dist/wasm/pshenmic_dpp_bg.js +1 -1
- package/package.json +13 -6
- package/packages/cbor_conversation/Cargo.toml +1 -1
- package/packages/data_contract/Cargo.toml +2 -2
- package/packages/data_contract/src/lib.rs +195 -23
- package/packages/data_contract_transitions/Cargo.toml +1 -1
- package/packages/data_contract_transitions/src/create/mod.rs +23 -16
- package/packages/data_contract_transitions/src/update/mod.rs +21 -12
- package/packages/document/Cargo.toml +1 -1
- package/packages/document/src/lib.rs +1 -1
- package/packages/document/src/methods/mod.rs +370 -2
- package/packages/{document_batch → documents_batch}/Cargo.toml +6 -4
- package/packages/documents_batch/src/document_base_transition/mod.rs +92 -0
- package/packages/documents_batch/src/document_transition/mod.rs +166 -0
- package/packages/documents_batch/src/generators.rs +122 -0
- package/packages/documents_batch/src/lib.rs +188 -0
- package/packages/documents_batch/src/prefunded_voting_balance/mod.rs +45 -0
- package/packages/documents_batch/src/transitions/create/mod.rs +123 -0
- package/packages/documents_batch/src/transitions/delete/mod.rs +67 -0
- package/packages/documents_batch/src/transitions/mod.rs +6 -0
- package/packages/documents_batch/src/transitions/purchase/mod.rs +91 -0
- package/packages/documents_batch/src/transitions/replace/mod.rs +93 -0
- package/packages/documents_batch/src/transitions/transfer/mod.rs +86 -0
- package/packages/documents_batch/src/transitions/update_price/mod.rs +75 -0
- package/packages/enums/Cargo.toml +3 -3
- package/packages/enums/src/batch/batch_enum.rs +75 -10
- package/packages/enums/src/keys/key_type.rs +46 -0
- package/packages/enums/src/keys/purpose.rs +55 -0
- package/packages/enums/src/keys/security_level.rs +46 -0
- package/packages/enums/src/lib.rs +1 -0
- package/packages/enums/src/network/mod.rs +67 -0
- package/packages/enums/src/platform/mod.rs +66 -8
- package/packages/identity/Cargo.toml +3 -4
- package/packages/identity/src/lib.rs +25 -14
- package/packages/{public_key → identity_public_key}/Cargo.toml +1 -1
- package/packages/{public_key → identity_public_key}/src/lib.rs +74 -27
- package/packages/identity_transitions/Cargo.toml +2 -2
- package/packages/identity_transitions/src/create_transition/mod.rs +3 -1
- package/packages/identity_transitions/src/create_transition/public_key_in_creation/mod.rs +25 -21
- package/packages/mock_bls/Cargo.toml +1 -1
- package/packages/private_key/Cargo.toml +3 -2
- package/packages/private_key/src/lib.rs +44 -6
- package/packages/state_transition/Cargo.toml +5 -4
- package/packages/state_transition/src/lib.rs +101 -36
- package/packages/utils/Cargo.toml +1 -2
- package/packages/utils/src/lib.rs +17 -15
- package/scripts/build-js.sh +6 -5
- package/scripts/build.sh +22 -1
- package/src/lib.rs +7 -1
- package/tests/DataContract.spec.js +175 -0
- package/tests/DataContractCreateStateTransition.spec.js +109 -0
- package/tests/DataContractUpdateStateTransition.spec.js +109 -0
- package/tests/Document.spec.js +232 -0
- package/tests/DocumentBatchTransition.spec.js +109 -0
- package/tests/DocumentTransition.spec.js +97 -0
- package/tests/DocumentsTransitions.spec.js +705 -0
- package/tests/Identity.spec.js +113 -0
- package/tests/IdentityPublicKey.spec.js +132 -0
- package/tests/PrivateKey.spec.js +73 -0
- package/tests/mocks/DataContract/DataContract.json +153 -0
- package/tests/mocks/DataContract/index.js +6 -0
- package/tests/mocks/Document/DataContract.json +23 -0
- package/tests/mocks/Document/document.json +3 -0
- package/tests/mocks/Document/document2.json +3 -0
- package/tests/mocks/Document/index.js +11 -0
- package/tests/mocks/Identity/index.js +7 -0
- package/tests/mocks/PrivateKey/index.js +5 -0
- package/tests/mocks/PublicKey/index.js +14 -0
- package/tests/utils/hex.js +15 -0
- package/tests/utils/wasm.js +14 -0
- package/packages/document/src/methods/js.rs +0 -260
- package/packages/document/src/methods/rust.rs +0 -92
- package/packages/document_batch/src/generators.rs +0 -63
- package/packages/document_batch/src/lib.rs +0 -228
package/Cargo.lock
CHANGED
|
@@ -19,7 +19,7 @@ version = "0.8.11"
|
|
|
19
19
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
20
20
|
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
|
21
21
|
dependencies = [
|
|
22
|
-
"cfg-if",
|
|
22
|
+
"cfg-if 1.0.0",
|
|
23
23
|
"once_cell",
|
|
24
24
|
"version_check",
|
|
25
25
|
"zerocopy 0.7.35",
|
|
@@ -363,6 +363,12 @@ dependencies = [
|
|
|
363
363
|
"shlex",
|
|
364
364
|
]
|
|
365
365
|
|
|
366
|
+
[[package]]
|
|
367
|
+
name = "cfg-if"
|
|
368
|
+
version = "0.1.10"
|
|
369
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
370
|
+
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
|
371
|
+
|
|
366
372
|
[[package]]
|
|
367
373
|
name = "cfg-if"
|
|
368
374
|
version = "1.0.0"
|
|
@@ -741,7 +747,7 @@ version = "0.2.15"
|
|
|
741
747
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
742
748
|
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
|
|
743
749
|
dependencies = [
|
|
744
|
-
"cfg-if",
|
|
750
|
+
"cfg-if 1.0.0",
|
|
745
751
|
"js-sys",
|
|
746
752
|
"libc",
|
|
747
753
|
"wasi",
|
|
@@ -789,7 +795,7 @@ version = "2.5.0"
|
|
|
789
795
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
790
796
|
checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1"
|
|
791
797
|
dependencies = [
|
|
792
|
-
"cfg-if",
|
|
798
|
+
"cfg-if 1.0.0",
|
|
793
799
|
"crunchy",
|
|
794
800
|
]
|
|
795
801
|
|
|
@@ -1048,6 +1054,12 @@ version = "2.7.4"
|
|
|
1048
1054
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1049
1055
|
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
|
1050
1056
|
|
|
1057
|
+
[[package]]
|
|
1058
|
+
name = "memory_units"
|
|
1059
|
+
version = "0.4.0"
|
|
1060
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1061
|
+
checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3"
|
|
1062
|
+
|
|
1051
1063
|
[[package]]
|
|
1052
1064
|
name = "merlin"
|
|
1053
1065
|
version = "3.0.0"
|
|
@@ -1320,25 +1332,25 @@ dependencies = [
|
|
|
1320
1332
|
|
|
1321
1333
|
[[package]]
|
|
1322
1334
|
name = "pshenmic-dpp"
|
|
1323
|
-
version = "1.0.
|
|
1335
|
+
version = "1.0.5"
|
|
1324
1336
|
dependencies = [
|
|
1325
|
-
"bincode",
|
|
1326
|
-
"bincode_derive",
|
|
1327
1337
|
"pshenmic_dpp_data_contract",
|
|
1328
1338
|
"pshenmic_dpp_data_contract_transitions",
|
|
1329
|
-
"pshenmic_dpp_document_batch",
|
|
1330
1339
|
"pshenmic_dpp_document_search",
|
|
1340
|
+
"pshenmic_dpp_documents_batch",
|
|
1331
1341
|
"pshenmic_dpp_enums",
|
|
1332
1342
|
"pshenmic_dpp_identity",
|
|
1333
1343
|
"pshenmic_dpp_identity_transitions",
|
|
1334
1344
|
"pshenmic_dpp_state_transition",
|
|
1345
|
+
"wee_alloc",
|
|
1335
1346
|
]
|
|
1336
1347
|
|
|
1337
1348
|
[[package]]
|
|
1338
1349
|
name = "pshenmic_dpp_data_contract"
|
|
1339
|
-
version = "
|
|
1350
|
+
version = "1.0.5"
|
|
1340
1351
|
dependencies = [
|
|
1341
1352
|
"dpp",
|
|
1353
|
+
"js-sys",
|
|
1342
1354
|
"pshenmic_dpp_enums",
|
|
1343
1355
|
"pshenmic_dpp_utils",
|
|
1344
1356
|
"serde-wasm-bindgen",
|
|
@@ -1347,7 +1359,7 @@ dependencies = [
|
|
|
1347
1359
|
|
|
1348
1360
|
[[package]]
|
|
1349
1361
|
name = "pshenmic_dpp_data_contract_transitions"
|
|
1350
|
-
version = "
|
|
1362
|
+
version = "1.0.5"
|
|
1351
1363
|
dependencies = [
|
|
1352
1364
|
"dpp",
|
|
1353
1365
|
"pshenmic_dpp_data_contract",
|
|
@@ -1359,7 +1371,7 @@ dependencies = [
|
|
|
1359
1371
|
|
|
1360
1372
|
[[package]]
|
|
1361
1373
|
name = "pshenmic_dpp_document"
|
|
1362
|
-
version = "
|
|
1374
|
+
version = "1.0.5"
|
|
1363
1375
|
dependencies = [
|
|
1364
1376
|
"dpp",
|
|
1365
1377
|
"pshenmic_dpp_data_contract",
|
|
@@ -1370,24 +1382,26 @@ dependencies = [
|
|
|
1370
1382
|
]
|
|
1371
1383
|
|
|
1372
1384
|
[[package]]
|
|
1373
|
-
name = "
|
|
1374
|
-
version = "
|
|
1385
|
+
name = "pshenmic_dpp_document_search"
|
|
1386
|
+
version = "1.0.5"
|
|
1375
1387
|
dependencies = [
|
|
1388
|
+
"base64",
|
|
1389
|
+
"ciborium 0.2.2",
|
|
1376
1390
|
"dpp",
|
|
1377
|
-
"pshenmic_dpp_document",
|
|
1378
|
-
"pshenmic_dpp_enums",
|
|
1379
|
-
"pshenmic_dpp_state_transition",
|
|
1380
1391
|
"pshenmic_dpp_utils",
|
|
1392
|
+
"serde-wasm-bindgen",
|
|
1381
1393
|
"wasm-bindgen",
|
|
1382
1394
|
]
|
|
1383
1395
|
|
|
1384
1396
|
[[package]]
|
|
1385
|
-
name = "
|
|
1386
|
-
version = "
|
|
1397
|
+
name = "pshenmic_dpp_documents_batch"
|
|
1398
|
+
version = "1.0.5"
|
|
1387
1399
|
dependencies = [
|
|
1388
|
-
"base64",
|
|
1389
|
-
"ciborium 0.2.2",
|
|
1390
1400
|
"dpp",
|
|
1401
|
+
"js-sys",
|
|
1402
|
+
"pshenmic_dpp_document",
|
|
1403
|
+
"pshenmic_dpp_enums",
|
|
1404
|
+
"pshenmic_dpp_state_transition",
|
|
1391
1405
|
"pshenmic_dpp_utils",
|
|
1392
1406
|
"serde-wasm-bindgen",
|
|
1393
1407
|
"wasm-bindgen",
|
|
@@ -1395,7 +1409,7 @@ dependencies = [
|
|
|
1395
1409
|
|
|
1396
1410
|
[[package]]
|
|
1397
1411
|
name = "pshenmic_dpp_enums"
|
|
1398
|
-
version = "
|
|
1412
|
+
version = "1.0.5"
|
|
1399
1413
|
dependencies = [
|
|
1400
1414
|
"dpp",
|
|
1401
1415
|
"wasm-bindgen",
|
|
@@ -1403,18 +1417,17 @@ dependencies = [
|
|
|
1403
1417
|
|
|
1404
1418
|
[[package]]
|
|
1405
1419
|
name = "pshenmic_dpp_identity"
|
|
1406
|
-
version = "
|
|
1420
|
+
version = "1.0.5"
|
|
1407
1421
|
dependencies = [
|
|
1408
1422
|
"dpp",
|
|
1409
1423
|
"pshenmic_dpp_public_key",
|
|
1410
1424
|
"pshenmic_dpp_utils",
|
|
1411
|
-
"serde-wasm-bindgen",
|
|
1412
1425
|
"wasm-bindgen",
|
|
1413
1426
|
]
|
|
1414
1427
|
|
|
1415
1428
|
[[package]]
|
|
1416
1429
|
name = "pshenmic_dpp_identity_transitions"
|
|
1417
|
-
version = "
|
|
1430
|
+
version = "1.0.5"
|
|
1418
1431
|
dependencies = [
|
|
1419
1432
|
"dpp",
|
|
1420
1433
|
"pshenmic_dpp_enums",
|
|
@@ -1426,22 +1439,23 @@ dependencies = [
|
|
|
1426
1439
|
|
|
1427
1440
|
[[package]]
|
|
1428
1441
|
name = "pshenmic_dpp_mock_bls"
|
|
1429
|
-
version = "
|
|
1442
|
+
version = "1.0.5"
|
|
1430
1443
|
dependencies = [
|
|
1431
1444
|
"dpp",
|
|
1432
1445
|
]
|
|
1433
1446
|
|
|
1434
1447
|
[[package]]
|
|
1435
1448
|
name = "pshenmic_dpp_private_key"
|
|
1436
|
-
version = "
|
|
1449
|
+
version = "1.0.5"
|
|
1437
1450
|
dependencies = [
|
|
1438
1451
|
"dpp",
|
|
1452
|
+
"pshenmic_dpp_enums",
|
|
1439
1453
|
"wasm-bindgen",
|
|
1440
1454
|
]
|
|
1441
1455
|
|
|
1442
1456
|
[[package]]
|
|
1443
1457
|
name = "pshenmic_dpp_public_key"
|
|
1444
|
-
version = "
|
|
1458
|
+
version = "1.0.5"
|
|
1445
1459
|
dependencies = [
|
|
1446
1460
|
"dpp",
|
|
1447
1461
|
"pshenmic_dpp_enums",
|
|
@@ -1451,7 +1465,7 @@ dependencies = [
|
|
|
1451
1465
|
|
|
1452
1466
|
[[package]]
|
|
1453
1467
|
name = "pshenmic_dpp_state_transition"
|
|
1454
|
-
version = "
|
|
1468
|
+
version = "1.0.5"
|
|
1455
1469
|
dependencies = [
|
|
1456
1470
|
"dpp",
|
|
1457
1471
|
"pshenmic_dpp_enums",
|
|
@@ -1459,16 +1473,16 @@ dependencies = [
|
|
|
1459
1473
|
"pshenmic_dpp_private_key",
|
|
1460
1474
|
"pshenmic_dpp_public_key",
|
|
1461
1475
|
"pshenmic_dpp_utils",
|
|
1476
|
+
"sha2",
|
|
1462
1477
|
"wasm-bindgen",
|
|
1463
1478
|
]
|
|
1464
1479
|
|
|
1465
1480
|
[[package]]
|
|
1466
1481
|
name = "pshenmic_dpp_utils"
|
|
1467
|
-
version = "
|
|
1482
|
+
version = "1.0.5"
|
|
1468
1483
|
dependencies = [
|
|
1469
1484
|
"anyhow",
|
|
1470
1485
|
"dpp",
|
|
1471
|
-
"itertools",
|
|
1472
1486
|
"js-sys",
|
|
1473
1487
|
"serde",
|
|
1474
1488
|
"serde-wasm-bindgen",
|
|
@@ -1781,7 +1795,7 @@ version = "0.10.8"
|
|
|
1781
1795
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1782
1796
|
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
|
1783
1797
|
dependencies = [
|
|
1784
|
-
"cfg-if",
|
|
1798
|
+
"cfg-if 1.0.0",
|
|
1785
1799
|
"cpufeatures",
|
|
1786
1800
|
"digest",
|
|
1787
1801
|
]
|
|
@@ -2085,7 +2099,7 @@ version = "0.2.100"
|
|
|
2085
2099
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2086
2100
|
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
|
|
2087
2101
|
dependencies = [
|
|
2088
|
-
"cfg-if",
|
|
2102
|
+
"cfg-if 1.0.0",
|
|
2089
2103
|
"once_cell",
|
|
2090
2104
|
"rustversion",
|
|
2091
2105
|
"serde",
|
|
@@ -2139,6 +2153,40 @@ dependencies = [
|
|
|
2139
2153
|
"unicode-ident",
|
|
2140
2154
|
]
|
|
2141
2155
|
|
|
2156
|
+
[[package]]
|
|
2157
|
+
name = "wee_alloc"
|
|
2158
|
+
version = "0.4.5"
|
|
2159
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2160
|
+
checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e"
|
|
2161
|
+
dependencies = [
|
|
2162
|
+
"cfg-if 0.1.10",
|
|
2163
|
+
"libc",
|
|
2164
|
+
"memory_units",
|
|
2165
|
+
"winapi",
|
|
2166
|
+
]
|
|
2167
|
+
|
|
2168
|
+
[[package]]
|
|
2169
|
+
name = "winapi"
|
|
2170
|
+
version = "0.3.9"
|
|
2171
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2172
|
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
|
2173
|
+
dependencies = [
|
|
2174
|
+
"winapi-i686-pc-windows-gnu",
|
|
2175
|
+
"winapi-x86_64-pc-windows-gnu",
|
|
2176
|
+
]
|
|
2177
|
+
|
|
2178
|
+
[[package]]
|
|
2179
|
+
name = "winapi-i686-pc-windows-gnu"
|
|
2180
|
+
version = "0.4.0"
|
|
2181
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2182
|
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
|
2183
|
+
|
|
2184
|
+
[[package]]
|
|
2185
|
+
name = "winapi-x86_64-pc-windows-gnu"
|
|
2186
|
+
version = "0.4.0"
|
|
2187
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2188
|
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
2189
|
+
|
|
2142
2190
|
[[package]]
|
|
2143
2191
|
name = "windows-core"
|
|
2144
2192
|
version = "0.52.0"
|
package/Cargo.toml
CHANGED
|
@@ -1,43 +1,46 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "pshenmic-dpp"
|
|
3
|
+
version = "1.0.5"
|
|
4
|
+
edition = "2024"
|
|
5
|
+
rust-version = "1.85"
|
|
6
|
+
|
|
1
7
|
[workspace]
|
|
2
8
|
resolver = "2"
|
|
3
9
|
members = [
|
|
4
10
|
"packages/document",
|
|
5
|
-
"packages/
|
|
11
|
+
"packages/documents_batch",
|
|
6
12
|
"packages/cbor_conversation",
|
|
7
13
|
"packages/enums",
|
|
8
14
|
"packages/mock_bls",
|
|
9
15
|
"packages/private_key",
|
|
10
|
-
"packages/
|
|
16
|
+
"packages/identity_public_key",
|
|
11
17
|
"packages/utils",
|
|
12
18
|
"packages/identity",
|
|
13
19
|
"packages/identity_transitions",
|
|
14
20
|
"packages/state_transition",
|
|
15
21
|
"packages/data_contract"
|
|
16
|
-
, "packages/data_contract_transitions"]
|
|
22
|
+
, "packages/data_contract_transitions"]
|
|
23
|
+
|
|
24
|
+
[workspace.package]
|
|
25
|
+
version = "1.0.5"
|
|
17
26
|
|
|
18
27
|
[lib]
|
|
19
28
|
crate-type = ["cdylib", "lib"]
|
|
20
29
|
|
|
21
|
-
[package]
|
|
22
|
-
name = "pshenmic-dpp"
|
|
23
|
-
version = "1.0.4"
|
|
24
|
-
edition = "2024"
|
|
25
|
-
rust-version = "1.85"
|
|
26
|
-
|
|
27
30
|
[dependencies]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
pshenmic_dpp_document_batch = { path = "packages/document_batch" }
|
|
31
|
+
wee_alloc = { version = "0.4.5", default-features = false }
|
|
32
|
+
pshenmic_dpp_documents_batch = { path = "packages/documents_batch" }
|
|
31
33
|
pshenmic_dpp_document_search = { path = "packages/cbor_conversation" }
|
|
32
34
|
pshenmic_dpp_identity = { path = "packages/identity" }
|
|
33
35
|
pshenmic_dpp_state_transition = { path = "packages/state_transition" }
|
|
34
36
|
pshenmic_dpp_identity_transitions = { path = "packages/identity_transitions" }
|
|
35
|
-
pshenmic_dpp_data_contract = {path = "packages/data_contract"}
|
|
36
|
-
pshenmic_dpp_data_contract_transitions = {path = "packages/data_contract_transitions"}
|
|
37
|
-
pshenmic_dpp_enums = {path = "packages/enums"}
|
|
37
|
+
pshenmic_dpp_data_contract = { path = "packages/data_contract" }
|
|
38
|
+
pshenmic_dpp_data_contract_transitions = { path = "packages/data_contract_transitions" }
|
|
39
|
+
pshenmic_dpp_enums = { path = "packages/enums" }
|
|
38
40
|
|
|
39
41
|
[profile.release]
|
|
40
|
-
lto =
|
|
42
|
+
lto = "fat"
|
|
41
43
|
opt-level = 'z'
|
|
42
|
-
strip =
|
|
44
|
+
strip = "symbols"
|
|
43
45
|
codegen-units = 1
|
|
46
|
+
panic = "abort"
|
package/README.md
CHANGED
|
@@ -1,26 +1,72 @@
|
|
|
1
1
|
# PSHENMIC-DPP
|
|
2
|
+
### **AT THIS MOMENT MODULE UNDER DEVELOPMENT**
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
## General
|
|
5
|
+
Pshenmic-dpp is package with rust bindings for JS
|
|
4
6
|
|
|
5
7
|
That module uses [rs-dpp](https://github.com/dashpay/platform) and creates bindings for JavaScript.
|
|
6
|
-
Each structure from rs-dpp is represented by a separate package, so you can build not the whole module, but only a part of it
|
|
8
|
+
Each structure from rs-dpp is represented by a separate package, so you can build not the whole module, but only a part of it.
|
|
9
|
+
|
|
10
|
+
One of the advantages of this module is that you can build `.wasm` file not with all modules, but only with the ones you are interested in + minimal dependencies for them
|
|
11
|
+
___
|
|
12
|
+
## How To Install
|
|
13
|
+
`yarn add pshenmic-dpp`
|
|
14
|
+
___
|
|
15
|
+
## Manual Building
|
|
16
|
+
### Install dependencies
|
|
17
|
+
`yarn`
|
|
18
|
+
|
|
19
|
+
### Build JS
|
|
20
|
+
`yarn build:full`
|
|
21
|
+
|
|
22
|
+
**NOTE. If you want to use ES6 module without CJS, you need to run `yarn babel`**
|
|
23
|
+
|
|
24
|
+
### Build with binary instead base64
|
|
25
|
+
`yarn build:raw`
|
|
26
|
+
Now you can import `.js` with base64 buffer for WebAssembly module, or binary which smaller
|
|
27
|
+
___
|
|
28
|
+
## Why you need to use `pshenmic-dpp` instead `wasm-dpp`
|
|
29
|
+
|
|
30
|
+
- `pshenmic-dpp` weighs much less, currently taking up only 2.8 mb in base64 format
|
|
31
|
+
- You can build only necessary modules by removing imports from `lib.rs` before building
|
|
32
|
+
- More accurately replicates `rs-dpp`
|
|
33
|
+
- Some sugar, like enums, which you can pass in string with any case or just use numbers
|
|
34
|
+
___
|
|
35
|
+
|
|
36
|
+
## Current features
|
|
7
37
|
|
|
8
38
|
**At this moment available structs:**
|
|
9
39
|
- `Document`
|
|
10
40
|
- `DocumentsBatch`
|
|
41
|
+
- `DocumentsBaseTransition`
|
|
42
|
+
- `DocumentsTransition`
|
|
43
|
+
- `PrefundedVotingBalance`
|
|
44
|
+
- DocumentsTransitions:
|
|
45
|
+
- `DocuemntCreateTransition`
|
|
46
|
+
- `DocuemntDeleteTransition`
|
|
47
|
+
- `DocuemntPurchaseTransition`
|
|
48
|
+
- `DocuemntReplaceTransition`
|
|
49
|
+
- `DocumentTransferTransition`
|
|
50
|
+
- `DocumentUpdatePriceTransition`
|
|
11
51
|
- `IdentityPublicKey`
|
|
52
|
+
- `IdentityCreateTransition`
|
|
53
|
+
- `IdentityPublicKeyInCreationWASM`
|
|
12
54
|
- `PrivateKey`
|
|
13
55
|
- `Identity`
|
|
14
56
|
- `StateTransition`
|
|
15
|
-
- `IdentityTransitions`
|
|
16
57
|
- `DataContract`
|
|
17
58
|
- `Enums`
|
|
18
59
|
|
|
19
|
-
|
|
20
|
-
|
|
60
|
+
**At this moment available static methods**
|
|
61
|
+
- `objectToCbor`
|
|
62
|
+
- `cborToObject`
|
|
63
|
+
- `generateId` for data contract class
|
|
64
|
+
- `generateId` for document class
|
|
65
|
+
-
|
|
66
|
+
|
|
67
|
+
## How to run unit tests
|
|
21
68
|
```
|
|
22
|
-
yarn
|
|
23
|
-
yarn build:full
|
|
69
|
+
yarn tests
|
|
24
70
|
```
|
|
25
71
|
|
|
26
72
|
## Example
|
|
@@ -29,12 +75,6 @@ yarn build:full
|
|
|
29
75
|
import * as wasm from '../wasm/pshenmic_dpp';
|
|
30
76
|
import wasmBytes from "../wasm/pshenmic_dpp_bg"
|
|
31
77
|
|
|
32
|
-
function toHexString(byteArray) {
|
|
33
|
-
return Array.prototype.map.call(byteArray, function(byte) {
|
|
34
|
-
return ('0' + (byte & 0xFF).toString(16)).slice(-2);
|
|
35
|
-
}).join('');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
78
|
let binaryString = atob(wasmBytes);
|
|
39
79
|
let bytes = new Uint8Array(binaryString.length);
|
|
40
80
|
for (let i = 0; i < binaryString.length; i++) {
|
|
@@ -43,7 +83,7 @@ for (let i = 0; i < binaryString.length; i++) {
|
|
|
43
83
|
|
|
44
84
|
wasm.initSync({module: bytes.buffer})
|
|
45
85
|
|
|
46
|
-
const document = wasm.DocumentWASM
|
|
86
|
+
const document = new wasm.DocumentWASM(
|
|
47
87
|
{
|
|
48
88
|
"name": "MyPool",
|
|
49
89
|
"type": "EVONODE",
|
|
@@ -56,7 +96,7 @@ const document = wasm.DocumentWASM.new(
|
|
|
56
96
|
"B7kcE1juMBWEWkuYRJhVdAE2e6RaevrGxRsa1DrLCpQH"
|
|
57
97
|
)
|
|
58
98
|
|
|
59
|
-
const pubKey = wasm.IdentityPublicKeyWASM
|
|
99
|
+
const pubKey = new wasm.IdentityPublicKeyWASM(
|
|
60
100
|
1,
|
|
61
101
|
wasm.Purpose.AUTHENTICATION,
|
|
62
102
|
wasm.SecurityLevel.HIGH,
|
|
@@ -65,15 +105,18 @@ const pubKey = wasm.IdentityPublicKeyWASM.new(
|
|
|
65
105
|
'your_binary_data_in_hex'
|
|
66
106
|
)
|
|
67
107
|
|
|
68
|
-
const privKey = wasm.PrivateKeyWASM
|
|
108
|
+
const privKey = new wasm.PrivateKeyWASM('your_wif_key')
|
|
69
109
|
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
)
|
|
110
|
+
const createTransition = new wasm.DocumentCreateTransitionWASM(document, BigInt(1), 'preorder')
|
|
111
|
+
|
|
112
|
+
const documentTransition = createTransition.toDocumentTransition()
|
|
113
|
+
|
|
114
|
+
const batchTransition = new wasm.DocumentsBatchWASM([documentTransition, documentTransition], Array.from(documentInstance.getOwnerId()), 1)
|
|
115
|
+
|
|
116
|
+
const st = batchTransition.toStateTransition()
|
|
75
117
|
|
|
76
|
-
|
|
118
|
+
st.sign(privKey, pubKey)
|
|
77
119
|
|
|
78
|
-
console.log(
|
|
120
|
+
console.log(st.toBytes())
|
|
121
|
+
console.log(st.hash(false))
|
|
79
122
|
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"presets": [
|
|
3
|
+
[
|
|
4
|
+
"@babel/preset-env",
|
|
5
|
+
{
|
|
6
|
+
"targets": {
|
|
7
|
+
"edge": "17",
|
|
8
|
+
"firefox": "60",
|
|
9
|
+
"chrome": "67",
|
|
10
|
+
"safari": "11.1",
|
|
11
|
+
"node": "18"
|
|
12
|
+
},
|
|
13
|
+
"useBuiltIns": "usage",
|
|
14
|
+
"corejs": "3.6.5"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
],
|
|
18
|
+
"plugins": ["@babel/plugin-transform-modules-commonjs"]
|
|
19
|
+
}
|