pshenmic-dpp 1.0.3 → 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 +89 -28
- package/Cargo.toml +22 -18
- package/README.md +66 -23
- package/babel.config.json +19 -0
- package/dist/wasm/pshenmic_dpp.js +2992 -402
- package/dist/wasm/pshenmic_dpp_bg.js +1 -1
- package/package.json +13 -6
- package/packages/{cbor-conversation → cbor_conversation}/Cargo.toml +1 -5
- package/packages/data_contract/Cargo.toml +3 -7
- package/packages/data_contract/src/lib.rs +234 -47
- package/packages/{document_batch → data_contract_transitions}/Cargo.toml +6 -14
- package/packages/data_contract_transitions/src/create/mod.rs +161 -0
- package/packages/data_contract_transitions/src/lib.rs +2 -0
- package/packages/data_contract_transitions/src/update/mod.rs +144 -0
- package/packages/document/Cargo.toml +2 -7
- package/packages/document/src/lib.rs +1 -1
- package/packages/document/src/methods/mod.rs +370 -2
- package/packages/documents_batch/Cargo.toml +19 -0
- 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 +2 -5
- 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 +2 -7
- package/packages/identity/src/lib.rs +25 -14
- package/packages/{public_key → identity_public_key}/Cargo.toml +2 -6
- package/packages/{public_key → identity_public_key}/src/lib.rs +74 -27
- package/packages/identity_transitions/Cargo.toml +3 -7
- package/packages/identity_transitions/src/create_transition/mod.rs +5 -3
- package/packages/identity_transitions/src/create_transition/public_key_in_creation/mod.rs +25 -21
- package/packages/mock_bls/Cargo.toml +2 -6
- package/packages/private_key/Cargo.toml +2 -5
- package/packages/private_key/src/lib.rs +44 -6
- package/packages/state_transition/Cargo.toml +4 -7
- package/packages/state_transition/src/lib.rs +106 -40
- package/packages/utils/Cargo.toml +1 -6
- package/packages/utils/src/lib.rs +17 -15
- package/scripts/build-js.sh +8 -6
- package/scripts/build.sh +22 -1
- package/src/lib.rs +8 -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/packages/{cbor-conversation → cbor_conversation}/src/lib.rs +0 -0
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,24 +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
1339
|
"pshenmic_dpp_document_search",
|
|
1340
|
+
"pshenmic_dpp_documents_batch",
|
|
1330
1341
|
"pshenmic_dpp_enums",
|
|
1331
1342
|
"pshenmic_dpp_identity",
|
|
1332
1343
|
"pshenmic_dpp_identity_transitions",
|
|
1333
1344
|
"pshenmic_dpp_state_transition",
|
|
1345
|
+
"wee_alloc",
|
|
1334
1346
|
]
|
|
1335
1347
|
|
|
1336
1348
|
[[package]]
|
|
1337
1349
|
name = "pshenmic_dpp_data_contract"
|
|
1338
|
-
version = "
|
|
1350
|
+
version = "1.0.5"
|
|
1339
1351
|
dependencies = [
|
|
1340
1352
|
"dpp",
|
|
1353
|
+
"js-sys",
|
|
1341
1354
|
"pshenmic_dpp_enums",
|
|
1342
1355
|
"pshenmic_dpp_utils",
|
|
1343
1356
|
"serde-wasm-bindgen",
|
|
@@ -1345,32 +1358,32 @@ dependencies = [
|
|
|
1345
1358
|
]
|
|
1346
1359
|
|
|
1347
1360
|
[[package]]
|
|
1348
|
-
name = "
|
|
1349
|
-
version = "
|
|
1361
|
+
name = "pshenmic_dpp_data_contract_transitions"
|
|
1362
|
+
version = "1.0.5"
|
|
1350
1363
|
dependencies = [
|
|
1351
1364
|
"dpp",
|
|
1352
1365
|
"pshenmic_dpp_data_contract",
|
|
1353
1366
|
"pshenmic_dpp_enums",
|
|
1367
|
+
"pshenmic_dpp_state_transition",
|
|
1354
1368
|
"pshenmic_dpp_utils",
|
|
1355
|
-
"serde-wasm-bindgen",
|
|
1356
1369
|
"wasm-bindgen",
|
|
1357
1370
|
]
|
|
1358
1371
|
|
|
1359
1372
|
[[package]]
|
|
1360
|
-
name = "
|
|
1361
|
-
version = "
|
|
1373
|
+
name = "pshenmic_dpp_document"
|
|
1374
|
+
version = "1.0.5"
|
|
1362
1375
|
dependencies = [
|
|
1363
1376
|
"dpp",
|
|
1364
|
-
"
|
|
1377
|
+
"pshenmic_dpp_data_contract",
|
|
1365
1378
|
"pshenmic_dpp_enums",
|
|
1366
|
-
"pshenmic_dpp_state_transition",
|
|
1367
1379
|
"pshenmic_dpp_utils",
|
|
1380
|
+
"serde-wasm-bindgen",
|
|
1368
1381
|
"wasm-bindgen",
|
|
1369
1382
|
]
|
|
1370
1383
|
|
|
1371
1384
|
[[package]]
|
|
1372
1385
|
name = "pshenmic_dpp_document_search"
|
|
1373
|
-
version = "
|
|
1386
|
+
version = "1.0.5"
|
|
1374
1387
|
dependencies = [
|
|
1375
1388
|
"base64",
|
|
1376
1389
|
"ciborium 0.2.2",
|
|
@@ -1380,9 +1393,23 @@ dependencies = [
|
|
|
1380
1393
|
"wasm-bindgen",
|
|
1381
1394
|
]
|
|
1382
1395
|
|
|
1396
|
+
[[package]]
|
|
1397
|
+
name = "pshenmic_dpp_documents_batch"
|
|
1398
|
+
version = "1.0.5"
|
|
1399
|
+
dependencies = [
|
|
1400
|
+
"dpp",
|
|
1401
|
+
"js-sys",
|
|
1402
|
+
"pshenmic_dpp_document",
|
|
1403
|
+
"pshenmic_dpp_enums",
|
|
1404
|
+
"pshenmic_dpp_state_transition",
|
|
1405
|
+
"pshenmic_dpp_utils",
|
|
1406
|
+
"serde-wasm-bindgen",
|
|
1407
|
+
"wasm-bindgen",
|
|
1408
|
+
]
|
|
1409
|
+
|
|
1383
1410
|
[[package]]
|
|
1384
1411
|
name = "pshenmic_dpp_enums"
|
|
1385
|
-
version = "
|
|
1412
|
+
version = "1.0.5"
|
|
1386
1413
|
dependencies = [
|
|
1387
1414
|
"dpp",
|
|
1388
1415
|
"wasm-bindgen",
|
|
@@ -1390,18 +1417,17 @@ dependencies = [
|
|
|
1390
1417
|
|
|
1391
1418
|
[[package]]
|
|
1392
1419
|
name = "pshenmic_dpp_identity"
|
|
1393
|
-
version = "
|
|
1420
|
+
version = "1.0.5"
|
|
1394
1421
|
dependencies = [
|
|
1395
1422
|
"dpp",
|
|
1396
1423
|
"pshenmic_dpp_public_key",
|
|
1397
1424
|
"pshenmic_dpp_utils",
|
|
1398
|
-
"serde-wasm-bindgen",
|
|
1399
1425
|
"wasm-bindgen",
|
|
1400
1426
|
]
|
|
1401
1427
|
|
|
1402
1428
|
[[package]]
|
|
1403
1429
|
name = "pshenmic_dpp_identity_transitions"
|
|
1404
|
-
version = "
|
|
1430
|
+
version = "1.0.5"
|
|
1405
1431
|
dependencies = [
|
|
1406
1432
|
"dpp",
|
|
1407
1433
|
"pshenmic_dpp_enums",
|
|
@@ -1413,22 +1439,23 @@ dependencies = [
|
|
|
1413
1439
|
|
|
1414
1440
|
[[package]]
|
|
1415
1441
|
name = "pshenmic_dpp_mock_bls"
|
|
1416
|
-
version = "
|
|
1442
|
+
version = "1.0.5"
|
|
1417
1443
|
dependencies = [
|
|
1418
1444
|
"dpp",
|
|
1419
1445
|
]
|
|
1420
1446
|
|
|
1421
1447
|
[[package]]
|
|
1422
1448
|
name = "pshenmic_dpp_private_key"
|
|
1423
|
-
version = "
|
|
1449
|
+
version = "1.0.5"
|
|
1424
1450
|
dependencies = [
|
|
1425
1451
|
"dpp",
|
|
1452
|
+
"pshenmic_dpp_enums",
|
|
1426
1453
|
"wasm-bindgen",
|
|
1427
1454
|
]
|
|
1428
1455
|
|
|
1429
1456
|
[[package]]
|
|
1430
1457
|
name = "pshenmic_dpp_public_key"
|
|
1431
|
-
version = "
|
|
1458
|
+
version = "1.0.5"
|
|
1432
1459
|
dependencies = [
|
|
1433
1460
|
"dpp",
|
|
1434
1461
|
"pshenmic_dpp_enums",
|
|
@@ -1438,7 +1465,7 @@ dependencies = [
|
|
|
1438
1465
|
|
|
1439
1466
|
[[package]]
|
|
1440
1467
|
name = "pshenmic_dpp_state_transition"
|
|
1441
|
-
version = "
|
|
1468
|
+
version = "1.0.5"
|
|
1442
1469
|
dependencies = [
|
|
1443
1470
|
"dpp",
|
|
1444
1471
|
"pshenmic_dpp_enums",
|
|
@@ -1446,16 +1473,16 @@ dependencies = [
|
|
|
1446
1473
|
"pshenmic_dpp_private_key",
|
|
1447
1474
|
"pshenmic_dpp_public_key",
|
|
1448
1475
|
"pshenmic_dpp_utils",
|
|
1476
|
+
"sha2",
|
|
1449
1477
|
"wasm-bindgen",
|
|
1450
1478
|
]
|
|
1451
1479
|
|
|
1452
1480
|
[[package]]
|
|
1453
1481
|
name = "pshenmic_dpp_utils"
|
|
1454
|
-
version = "
|
|
1482
|
+
version = "1.0.5"
|
|
1455
1483
|
dependencies = [
|
|
1456
1484
|
"anyhow",
|
|
1457
1485
|
"dpp",
|
|
1458
|
-
"itertools",
|
|
1459
1486
|
"js-sys",
|
|
1460
1487
|
"serde",
|
|
1461
1488
|
"serde-wasm-bindgen",
|
|
@@ -1768,7 +1795,7 @@ version = "0.10.8"
|
|
|
1768
1795
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1769
1796
|
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
|
1770
1797
|
dependencies = [
|
|
1771
|
-
"cfg-if",
|
|
1798
|
+
"cfg-if 1.0.0",
|
|
1772
1799
|
"cpufeatures",
|
|
1773
1800
|
"digest",
|
|
1774
1801
|
]
|
|
@@ -2072,7 +2099,7 @@ version = "0.2.100"
|
|
|
2072
2099
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2073
2100
|
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
|
|
2074
2101
|
dependencies = [
|
|
2075
|
-
"cfg-if",
|
|
2102
|
+
"cfg-if 1.0.0",
|
|
2076
2103
|
"once_cell",
|
|
2077
2104
|
"rustversion",
|
|
2078
2105
|
"serde",
|
|
@@ -2126,6 +2153,40 @@ dependencies = [
|
|
|
2126
2153
|
"unicode-ident",
|
|
2127
2154
|
]
|
|
2128
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
|
+
|
|
2129
2190
|
[[package]]
|
|
2130
2191
|
name = "windows-core"
|
|
2131
2192
|
version = "0.52.0"
|
package/Cargo.toml
CHANGED
|
@@ -1,42 +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/
|
|
6
|
-
"packages/
|
|
11
|
+
"packages/documents_batch",
|
|
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
|
-
]
|
|
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.3"
|
|
24
|
-
edition = "2024"
|
|
25
|
-
rust-version = "1.85"
|
|
26
|
-
|
|
27
30
|
[dependencies]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
pshenmic_dpp_document_search = { path = "packages/cbor-conversation" }
|
|
31
|
+
wee_alloc = { version = "0.4.5", default-features = false }
|
|
32
|
+
pshenmic_dpp_documents_batch = { path = "packages/documents_batch" }
|
|
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
|
-
|
|
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" }
|
|
37
40
|
|
|
38
41
|
[profile.release]
|
|
39
|
-
lto =
|
|
42
|
+
lto = "fat"
|
|
40
43
|
opt-level = 'z'
|
|
41
|
-
strip =
|
|
44
|
+
strip = "symbols"
|
|
42
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
|
+
}
|