@dashevo/wasm-dpp 1.8.0 → 2.0.0-rc.1

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 (95) hide show
  1. package/.eslintrc +3 -0
  2. package/Cargo.toml +10 -6
  3. package/README.md +1 -1
  4. package/dist/wasm/wasm_dpp.d.ts +2045 -1114
  5. package/dist/wasm/wasm_dpp.js +740 -222
  6. package/dist/wasm/wasm_dpp_bg.js +1 -1
  7. package/lib/test/fixtures/getIdentityCreditTransferTransitionFixture.js +1 -1
  8. package/lib/test/fixtures/getIdentityFixture.js +1 -1
  9. package/lib/wasm/wasm_dpp.d.ts +2045 -1114
  10. package/package.json +6 -6
  11. package/scripts/build-wasm.sh +1 -1
  12. package/src/data_contract/data_contract.rs +17 -24
  13. package/src/data_contract/mod.rs +1 -0
  14. package/src/data_contract/state_transition/data_contract_create_transition/mod.rs +21 -0
  15. package/src/data_contract/state_transition/data_contract_update_transition/mod.rs +25 -0
  16. package/src/data_contract/tokens.rs +60 -0
  17. package/src/data_contract_factory/mod.rs +1 -1
  18. package/src/document/document_facade.rs +3 -3
  19. package/src/document/errors/document_already_exists_error.rs +1 -1
  20. package/src/document/errors/document_not_provided_error.rs +1 -1
  21. package/src/document/errors/invalid_document_action_error.rs +2 -2
  22. package/src/document/extended_document.rs +3 -5
  23. package/src/document/factory.rs +25 -10
  24. package/src/document/mod.rs +6 -8
  25. package/src/document/state_transition/batch_transition/batched_transition/mod.rs +18 -0
  26. package/src/document/state_transition/{document_batch_transition → batch_transition}/document_transition/document_create_transition.rs +45 -3
  27. package/src/document/state_transition/{document_batch_transition → batch_transition}/document_transition/document_delete_transition.rs +23 -4
  28. package/src/document/state_transition/{document_batch_transition → batch_transition}/document_transition/document_replace_transition.rs +24 -5
  29. package/src/document/state_transition/{document_batch_transition → batch_transition}/document_transition/mod.rs +97 -14
  30. package/src/document/state_transition/{document_batch_transition → batch_transition}/mod.rs +44 -29
  31. package/src/document/state_transition/batch_transition/token_transition/burn.rs +12 -0
  32. package/src/document/state_transition/batch_transition/token_transition/claim.rs +12 -0
  33. package/src/document/state_transition/batch_transition/token_transition/config.rs +12 -0
  34. package/src/document/state_transition/batch_transition/token_transition/destroy.rs +22 -0
  35. package/src/document/state_transition/batch_transition/token_transition/direct_purchase.rs +12 -0
  36. package/src/document/state_transition/batch_transition/token_transition/emergency_action.rs +12 -0
  37. package/src/document/state_transition/batch_transition/token_transition/freeze.rs +22 -0
  38. package/src/document/state_transition/batch_transition/token_transition/mint.rs +31 -0
  39. package/src/document/state_transition/batch_transition/token_transition/mod.rs +154 -0
  40. package/src/document/state_transition/batch_transition/token_transition/set_price_for_direct_purchase.rs +14 -0
  41. package/src/document/state_transition/batch_transition/token_transition/transfer.rs +22 -0
  42. package/src/document/state_transition/batch_transition/token_transition/unfreeze.rs +22 -0
  43. package/src/document/state_transition/mod.rs +1 -1
  44. package/src/errors/consensus/basic/identity/identity_insufficient_balance_error.rs +2 -2
  45. package/src/errors/consensus/basic/state_transition/missing_state_transition_type_error.rs +6 -0
  46. package/src/errors/consensus/consensus_error.rs +212 -1
  47. package/src/errors/consensus/fee/balance_is_not_enough_error.rs +4 -4
  48. package/src/errors/consensus/state/identity/invalid_identity_contract_nonce_error.rs +1 -1
  49. package/src/errors/value_error.rs +1 -0
  50. package/src/identity/identity.rs +14 -14
  51. package/src/identity/mod.rs +1 -0
  52. package/src/identity/state_transition/identity_create_transition/mod.rs +2 -2
  53. package/src/identity/state_transition/identity_create_transition/{identity_create_transition.rs → transition.rs} +10 -0
  54. package/src/identity/state_transition/identity_credit_transfer_transition/transition.rs +31 -6
  55. package/src/identity/state_transition/identity_credit_withdrawal_transition/transition.rs +15 -0
  56. package/src/identity/state_transition/identity_public_key_transitions.rs +2 -2
  57. package/src/identity/state_transition/identity_topup_transition/mod.rs +2 -2
  58. package/src/identity/state_transition/identity_topup_transition/{identity_topup_transition.rs → transition.rs} +10 -0
  59. package/src/identity/state_transition/identity_update_transition/mod.rs +2 -2
  60. package/src/identity/state_transition/identity_update_transition/to_object.rs +2 -2
  61. package/src/identity/state_transition/identity_update_transition/{identity_update_transition.rs → transition.rs} +29 -4
  62. package/src/identity/state_transition/transition_types.rs +1 -1
  63. package/src/metadata.rs +16 -27
  64. package/src/state_transition/state_transition_factory.rs +2 -4
  65. package/src/utils.rs +4 -2
  66. package/src/voting/state_transition/masternode_vote_transition/mod.rs +75 -50
  67. package/src/voting/state_transition/masternode_vote_transition/to_object.rs +1 -0
  68. package/test/integration/document/Document.spec.js +2 -7
  69. package/test/integration/document/DocumentFacade.spec.js +4 -4
  70. package/test/integration/identity/IdentityFacade.spec.js +5 -10
  71. package/test/integration/identity/stateTransition/IdentityUpdateTransition/validation/state/validateIdentityUpdateTransitionStateFactory.spec.js +4 -4
  72. package/test/integration/identity/stateTransition/assetLockProof/chain/validateChainAssetLockProofStructureFactory.spec.js +3 -3
  73. package/test/integration/identity/stateTransition/assetLockProof/fetchAssetLockTransactionOutputFactory.spec.js +1 -1
  74. package/test/integration/stateTransition/StateTransitionFacade.spec.js +3 -3
  75. package/test/unit/Metadata.spec.js +8 -23
  76. package/test/unit/dataContract/DataContract.spec.js +1 -18
  77. package/test/unit/dataContract/stateTransition/DataContractCreateTransition/DataContractCreateTransition.spec.js +1 -1
  78. package/test/unit/dataContract/stateTransition/DataContractUpdateTransition/DataContractUpdateTransition.spec.js +1 -1
  79. package/test/unit/document/Document.spec.js +4 -7
  80. package/test/unit/document/DocumentFactory.spec.js +2 -2
  81. package/test/unit/identity/Identity.spec.js +15 -35
  82. package/test/unit/identity/IdentityFactory.spec.js +3 -3
  83. package/test/unit/identity/stateTransition/IdentityUpdateTransition/IdentityUpdateTransition.spec.js +2 -2
  84. package/test/unit/identity/stateTransition/identityCreditTransferTransition/identityCreditTransferTransition.spec.js +1 -1
  85. /package/src/data_contract_factory/{data_contract_factory.rs → factory.rs} +0 -0
  86. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/basic/find_duplicates_by_id.rs +0 -0
  87. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/basic/find_duplicates_by_indices.rs +0 -0
  88. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/basic/mod.rs +0 -0
  89. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/basic/validate_documents_batch_transition_basic.rs +0 -0
  90. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/basic/validate_partial_compound_indices.rs +0 -0
  91. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/mod.rs +0 -0
  92. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/state/fetch_extended_documents.rs +0 -0
  93. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/state/mod.rs +0 -0
  94. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/state/validate_documents_batch_transitions_state.rs +0 -0
  95. /package/src/document/state_transition/{document_batch_transition → batch_transition}/validation/state/validate_documents_uniqueness_by_indices.rs +0 -0
@@ -7,17 +7,23 @@ mod document_create_transition;
7
7
  // pub use document_replace_transition::*;
8
8
 
9
9
  use dpp::platform_value::Value;
10
- use dpp::state_transition::documents_batch_transition::document_create_transition::v0::v0_methods::DocumentCreateTransitionV0Methods;
11
- use dpp::state_transition::documents_batch_transition::document_transition::action_type::TransitionActionTypeGetter;
12
- use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransitionV0Methods;
13
- use dpp::{
14
- state_transition::documents_batch_transition::document_transition::DocumentTransition,
15
- util::json_value::JsonValueExt, ProtocolError,
10
+ use dpp::state_transition::batch_transition::batched_transition::document_transition::{
11
+ DocumentTransition, DocumentTransitionV0Methods,
16
12
  };
13
+ use dpp::state_transition::batch_transition::batched_transition::document_transition_action_type::DocumentTransitionActionTypeGetter;
14
+ use dpp::state_transition::batch_transition::document_create_transition::v0::v0_methods::DocumentCreateTransitionV0Methods;
15
+ use dpp::{util::json_value::JsonValueExt, ProtocolError};
17
16
  use serde::Serialize;
18
17
  use serde_json::Value as JsonValue;
19
18
  use wasm_bindgen::prelude::*;
20
-
19
+ use dpp::fee::Credits;
20
+ use dpp::platform_value::converter::serde_json::BTreeValueJsonConverter;
21
+ use dpp::prelude::Revision;
22
+ use dpp::state_transition::batch_transition::document_replace_transition::v0::v0_methods::DocumentReplaceTransitionV0Methods;
23
+ use dpp::state_transition::batch_transition::batched_transition::document_purchase_transition::v0::v0_methods::DocumentPurchaseTransitionV0Methods;
24
+ use dpp::state_transition::batch_transition::batched_transition::document_transfer_transition::v0::v0_methods::DocumentTransferTransitionV0Methods;
25
+ use dpp::state_transition::batch_transition::batched_transition::document_update_price_transition::v0::v0_methods::DocumentUpdatePriceTransitionV0Methods;
26
+ use dpp::state_transition::batch_transition::document_base_transition::v0::v0_methods::DocumentBaseTransitionV0Methods;
21
27
  use crate::{
22
28
  buffer::Buffer,
23
29
  identifier::{identifier_from_js_value, IdentifierWrapper},
@@ -42,6 +48,28 @@ impl DocumentTransitionWasm {
42
48
  self.0.document_type_name().to_owned()
43
49
  }
44
50
 
51
+ #[wasm_bindgen(js_name=getData)]
52
+ pub fn get_data(&self) -> JsValue {
53
+ match &self.0 {
54
+ DocumentTransition::Create(document_create_transition) => {
55
+ let json_value = document_create_transition.data().to_json_value().unwrap();
56
+ json_value
57
+ .serialize(&serde_wasm_bindgen::Serializer::json_compatible())
58
+ .unwrap()
59
+ }
60
+ DocumentTransition::Replace(document_replace_transition) => {
61
+ let json_value = document_replace_transition.data().to_json_value().unwrap();
62
+ json_value
63
+ .serialize(&serde_wasm_bindgen::Serializer::json_compatible())
64
+ .unwrap()
65
+ }
66
+ DocumentTransition::Delete(_) => JsValue::null(),
67
+ DocumentTransition::Transfer(_) => JsValue::null(),
68
+ DocumentTransition::UpdatePrice(_) => JsValue::null(),
69
+ DocumentTransition::Purchase(_) => JsValue::null(),
70
+ }
71
+ }
72
+
45
73
  #[wasm_bindgen(js_name=getAction)]
46
74
  pub fn get_action(&self) -> u8 {
47
75
  self.0.action_type() as u8
@@ -59,18 +87,47 @@ impl DocumentTransitionWasm {
59
87
  Ok(())
60
88
  }
61
89
 
90
+ #[wasm_bindgen(js_name=getIdentityContractNonce)]
91
+ pub fn get_identity_contract_nonce(&self) -> JsValue {
92
+ JsValue::from(self.0.base().identity_contract_nonce())
93
+ }
94
+
62
95
  #[wasm_bindgen(js_name=getRevision)]
63
- pub fn get_revision(&self) -> JsValue {
64
- if let Some(revision) = self.0.revision() {
65
- (revision as f64).into()
66
- } else {
67
- JsValue::NULL
96
+ pub fn get_revision(&self) -> Option<Revision> {
97
+ self.0.revision()
98
+ }
99
+ #[wasm_bindgen(js_name=getEntropy)]
100
+ pub fn get_entropy(&self) -> Option<Vec<u8>> {
101
+ self.0.entropy()
102
+ }
103
+
104
+ #[wasm_bindgen(js_name=get_price)]
105
+ pub fn get_price(&self) -> Option<Credits> {
106
+ match &self.0 {
107
+ DocumentTransition::Create(_) => None,
108
+ DocumentTransition::Replace(_) => None,
109
+ DocumentTransition::Delete(_) => None,
110
+ DocumentTransition::Transfer(_) => None,
111
+ DocumentTransition::UpdatePrice(update_price) => Some(update_price.price()),
112
+ DocumentTransition::Purchase(purchase) => Some(purchase.price()),
113
+ }
114
+ }
115
+
116
+ #[wasm_bindgen(js_name=getReceiverId)]
117
+ pub fn get_receiver_id(&self) -> Option<IdentifierWrapper> {
118
+ match &self.0 {
119
+ DocumentTransition::Create(_) => None,
120
+ DocumentTransition::Replace(_) => None,
121
+ DocumentTransition::Delete(_) => None,
122
+ DocumentTransition::Transfer(transfer) => Some(transfer.recipient_owner_id().into()),
123
+ DocumentTransition::UpdatePrice(_) => None,
124
+ DocumentTransition::Purchase(_) => None,
68
125
  }
69
126
  }
70
127
 
71
128
  #[wasm_bindgen(js_name=setRevision)]
72
- pub fn set_revision(&mut self, revision: u32) {
73
- self.0.set_revision(revision as u64);
129
+ pub fn set_revision(&mut self, revision: u64) {
130
+ self.0.set_revision(revision);
74
131
  }
75
132
 
76
133
  #[wasm_bindgen(js_name=hasPrefundedBalance)]
@@ -82,6 +139,32 @@ impl DocumentTransitionWasm {
82
139
  _ => false,
83
140
  }
84
141
  }
142
+
143
+ #[wasm_bindgen(js_name=getPrefundedVotingBalance)]
144
+ pub fn get_prefunded_voting_balance(&self) -> Result<JsValue, JsValue> {
145
+ match &self.0 {
146
+ DocumentTransition::Create(create_transition) => {
147
+ let prefunded_voting_balance = create_transition.prefunded_voting_balance().clone();
148
+
149
+ if prefunded_voting_balance.is_none() {
150
+ return Ok(JsValue::null());
151
+ }
152
+
153
+ let (index_name, credits) = prefunded_voting_balance.unwrap();
154
+
155
+ let js_object = js_sys::Object::new();
156
+
157
+ js_sys::Reflect::set(
158
+ &js_object,
159
+ &JsValue::from_str(&index_name),
160
+ &JsValue::from(credits),
161
+ )?;
162
+
163
+ Ok(JsValue::from(js_object))
164
+ }
165
+ _ => Ok(JsValue::null()),
166
+ }
167
+ }
85
168
  }
86
169
 
87
170
  impl From<DocumentTransition> for DocumentTransitionWasm {
@@ -12,9 +12,8 @@ use dpp::consensus::signature::SignatureError;
12
12
  use dpp::consensus::ConsensusError;
13
13
  use dpp::platform_value::BinaryData;
14
14
  use dpp::serialization::PlatformSerializable;
15
- use dpp::state_transition::documents_batch_transition::accessors::DocumentsBatchTransitionAccessorsV0;
16
- use dpp::state_transition::documents_batch_transition::document_transition::DocumentTransition;
17
- use dpp::state_transition::documents_batch_transition::DocumentsBatchTransition;
15
+ use dpp::state_transition::batch_transition::accessors::DocumentsBatchTransitionAccessorsV0;
16
+ use dpp::state_transition::batch_transition::BatchTransition;
18
17
  use dpp::state_transition::StateTransition;
19
18
  use wasm_bindgen::prelude::*;
20
19
 
@@ -26,17 +25,22 @@ use crate::{
26
25
  IdentityPublicKeyWasm,
27
26
  };
28
27
 
29
- use document_transition::DocumentTransitionWasm;
30
- use dpp::state_transition::documents_batch_transition::methods::v0::DocumentsBatchTransitionMethodsV0;
28
+ use dpp::state_transition::batch_transition::batched_transition::BatchedTransition;
29
+ use dpp::state_transition::batch_transition::methods::v0::DocumentsBatchTransitionMethodsV0;
31
30
 
31
+ use crate::batch_transition::batched_transition::BatchedTransitionWasm;
32
+ use crate::batch_transition::document_transition::DocumentTransitionWasm;
33
+ use crate::batch_transition::token_transition::TokenTransitionWasm;
32
34
  use dpp::state_transition::StateTransitionIdentitySigned;
33
35
 
36
+ pub mod batched_transition;
34
37
  pub mod document_transition;
38
+ pub mod token_transition;
35
39
  // pub mod validation;
36
40
 
37
41
  #[derive(Clone, Debug)]
38
- #[wasm_bindgen(js_name = DocumentsBatchTransition)]
39
- pub struct DocumentsBatchTransitionWasm(DocumentsBatchTransition);
42
+ #[wasm_bindgen(js_name = BatchTransition)]
43
+ pub struct BatchTransitionWasm(BatchTransition);
40
44
 
41
45
  #[derive(Debug, Serialize, Deserialize, Default, Clone, Copy)]
42
46
  #[serde(rename_all = "camelCase")]
@@ -47,8 +51,8 @@ pub struct ToObjectOptions {
47
51
  skip_identifiers_conversion: bool,
48
52
  }
49
53
 
50
- #[wasm_bindgen(js_class=DocumentsBatchTransition)]
51
- impl DocumentsBatchTransitionWasm {
54
+ #[wasm_bindgen(js_class=BatchTransition)]
55
+ impl BatchTransitionWasm {
52
56
  // #[wasm_bindgen(constructor)]
53
57
  // pub fn from_object(
54
58
  // js_raw_transition: JsValue,
@@ -90,7 +94,7 @@ impl DocumentsBatchTransitionWasm {
90
94
 
91
95
  #[wasm_bindgen(js_name=getType)]
92
96
  pub fn get_type(&self) -> u8 {
93
- StateTransitionType::DocumentsBatch.into()
97
+ StateTransitionType::Batch.into()
94
98
  }
95
99
 
96
100
  #[wasm_bindgen(js_name=getOwnerId)]
@@ -98,14 +102,26 @@ impl DocumentsBatchTransitionWasm {
98
102
  self.0.owner_id().to_owned().into()
99
103
  }
100
104
 
105
+ #[wasm_bindgen(js_name=getUserFeeIncrease)]
106
+ pub fn get_user_fee_increase(&self) -> u16 {
107
+ self.0.user_fee_increase()
108
+ }
109
+
110
+ #[wasm_bindgen(js_name=setUserFeeIncrease)]
111
+ pub fn set_user_fee_increase(&mut self, user_fee_increase: u16) {
112
+ self.0.set_user_fee_increase(user_fee_increase);
113
+ }
114
+
101
115
  #[wasm_bindgen(js_name=getTransitions)]
102
116
  pub fn get_transitions(&self) -> js_sys::Array {
103
117
  let array = js_sys::Array::new();
104
- let transitions = self.0.transitions();
105
118
 
106
- for tr in transitions.iter().cloned() {
107
- let transition: DocumentTransitionWasm = tr.into();
108
- array.push(&transition.into());
119
+ for tr in self.0.transitions_iter() {
120
+ let js_value = match tr.to_owned_transition() {
121
+ BatchedTransition::Token(doc) => TokenTransitionWasm::from(doc).into(),
122
+ BatchedTransition::Document(tok) => DocumentTransitionWasm::from(tok).into(),
123
+ };
124
+ array.push(&js_value);
109
125
  }
110
126
 
111
127
  array
@@ -115,8 +131,8 @@ impl DocumentsBatchTransitionWasm {
115
131
  pub fn set_transitions(&mut self, js_transitions: Array) -> Result<(), JsValue> {
116
132
  let mut transitions = vec![];
117
133
  for js_transition in js_transitions.iter() {
118
- let transition: DocumentTransition = js_transition
119
- .to_wasm::<DocumentTransitionWasm>("DocumentTransition")?
134
+ let transition: BatchedTransition = js_transition
135
+ .to_wasm::<BatchedTransitionWasm>("BatchedTransition")?
120
136
  .to_owned()
121
137
  .into();
122
138
  transitions.push(transition)
@@ -128,8 +144,8 @@ impl DocumentsBatchTransitionWasm {
128
144
  }
129
145
 
130
146
  #[wasm_bindgen(js_name=setIdentityContractNonce)]
131
- pub fn set_identity_contract_nonce(&mut self, nonce: u32) {
132
- self.0.set_identity_contract_nonce(nonce as u64);
147
+ pub fn set_identity_contract_nonce(&mut self, nonce: u64) {
148
+ self.0.set_identity_contract_nonce(nonce);
133
149
  }
134
150
 
135
151
  // #[wasm_bindgen(js_name=toJSON)]
@@ -276,7 +292,7 @@ impl DocumentsBatchTransitionWasm {
276
292
  let bls_adapter = BlsAdapter(bls);
277
293
 
278
294
  // TODO: come up with a better way to set signature to the binding.
279
- let mut state_transition = StateTransition::DocumentsBatch(self.0.clone());
295
+ let mut state_transition = StateTransition::Batch(self.0.clone());
280
296
  state_transition
281
297
  .sign(
282
298
  &identity_public_key.to_owned().into(),
@@ -322,7 +338,7 @@ impl DocumentsBatchTransitionWasm {
322
338
  ) -> Result<bool, JsValue> {
323
339
  let bls_adapter = BlsAdapter(bls);
324
340
 
325
- let verification_result = StateTransition::DocumentsBatch(self.0.clone())
341
+ let verification_result = StateTransition::Batch(self.0.clone())
326
342
  .verify_signature(&identity_public_key.to_owned().into(), &bls_adapter);
327
343
 
328
344
  match verification_result {
@@ -402,10 +418,9 @@ impl DocumentsBatchTransitionWasm {
402
418
 
403
419
  #[wasm_bindgen(js_name=toBuffer)]
404
420
  pub fn to_buffer(&self) -> Result<Buffer, JsValue> {
405
- let bytes = PlatformSerializable::serialize_to_bytes(&StateTransition::DocumentsBatch(
406
- self.0.clone(),
407
- ))
408
- .with_js_error()?;
421
+ let bytes =
422
+ PlatformSerializable::serialize_to_bytes(&StateTransition::Batch(self.0.clone()))
423
+ .with_js_error()?;
409
424
  Ok(Buffer::from_bytes(&bytes))
410
425
  }
411
426
 
@@ -423,14 +438,14 @@ impl DocumentsBatchTransitionWasm {
423
438
  // }
424
439
  }
425
440
 
426
- impl From<DocumentsBatchTransition> for DocumentsBatchTransitionWasm {
427
- fn from(t: DocumentsBatchTransition) -> Self {
428
- DocumentsBatchTransitionWasm(t)
441
+ impl From<BatchTransition> for BatchTransitionWasm {
442
+ fn from(t: BatchTransition) -> Self {
443
+ BatchTransitionWasm(t)
429
444
  }
430
445
  }
431
446
 
432
- impl From<DocumentsBatchTransitionWasm> for DocumentsBatchTransition {
433
- fn from(t: DocumentsBatchTransitionWasm) -> Self {
447
+ impl From<BatchTransitionWasm> for BatchTransition {
448
+ fn from(t: BatchTransitionWasm) -> Self {
434
449
  t.0
435
450
  }
436
451
  }
@@ -0,0 +1,12 @@
1
+ use dpp::state_transition::batch_transition::TokenBurnTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenBurnTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenBurnTransitionWasm(TokenBurnTransition);
7
+
8
+ impl From<TokenBurnTransition> for TokenBurnTransitionWasm {
9
+ fn from(value: TokenBurnTransition) -> Self {
10
+ Self(value)
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ use dpp::state_transition::batch_transition::TokenClaimTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenClaimTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenClaimTransitionWasm(TokenClaimTransition);
7
+
8
+ impl From<TokenClaimTransition> for TokenClaimTransitionWasm {
9
+ fn from(value: TokenClaimTransition) -> Self {
10
+ Self(value)
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ use dpp::state_transition::batch_transition::TokenConfigUpdateTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenConfigUpdateTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenConfigUpdateTransitionWasm(TokenConfigUpdateTransition);
7
+
8
+ impl From<TokenConfigUpdateTransition> for TokenConfigUpdateTransitionWasm {
9
+ fn from(value: TokenConfigUpdateTransition) -> Self {
10
+ Self(value)
11
+ }
12
+ }
@@ -0,0 +1,22 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+ use dpp::state_transition::batch_transition::token_destroy_frozen_funds_transition::v0::v0_methods::TokenDestroyFrozenFundsTransitionV0Methods;
4
+ use dpp::state_transition::batch_transition::TokenDestroyFrozenFundsTransition;
5
+
6
+ #[wasm_bindgen(js_name=TokenDestroyFrozenFundsTransition)]
7
+ #[derive(Debug, Clone)]
8
+ pub struct TokenDestroyFrozenFundsTransitionWasm(TokenDestroyFrozenFundsTransition);
9
+
10
+ impl From<TokenDestroyFrozenFundsTransition> for TokenDestroyFrozenFundsTransitionWasm {
11
+ fn from(value: TokenDestroyFrozenFundsTransition) -> Self {
12
+ Self(value)
13
+ }
14
+ }
15
+
16
+ #[wasm_bindgen(js_class = TokenDestroyFrozenFundsTransition)]
17
+ impl TokenDestroyFrozenFundsTransitionWasm {
18
+ #[wasm_bindgen(js_name=getFrozenIdentityId)]
19
+ pub fn frozen_identity_id(&self) -> IdentifierWrapper {
20
+ self.0.frozen_identity_id().into()
21
+ }
22
+ }
@@ -0,0 +1,12 @@
1
+ use dpp::state_transition::batch_transition::TokenDirectPurchaseTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenDirectPurchaseTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenDirectPurchaseTransitionWasm(TokenDirectPurchaseTransition);
7
+
8
+ impl From<TokenDirectPurchaseTransition> for TokenDirectPurchaseTransitionWasm {
9
+ fn from(value: TokenDirectPurchaseTransition) -> Self {
10
+ Self(value)
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ use dpp::state_transition::batch_transition::TokenEmergencyActionTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenEmergencyActionTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenEmergencyActionTransitionWasm(TokenEmergencyActionTransition);
7
+
8
+ impl From<TokenEmergencyActionTransition> for TokenEmergencyActionTransitionWasm {
9
+ fn from(value: TokenEmergencyActionTransition) -> Self {
10
+ Self(value)
11
+ }
12
+ }
@@ -0,0 +1,22 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use dpp::state_transition::batch_transition::token_freeze_transition::v0::v0_methods::TokenFreezeTransitionV0Methods;
3
+ use dpp::state_transition::batch_transition::TokenFreezeTransition;
4
+ use wasm_bindgen::prelude::wasm_bindgen;
5
+
6
+ #[wasm_bindgen(js_name=TokenFreezeTransition)]
7
+ #[derive(Debug, Clone)]
8
+ pub struct TokenFreezeTransitionWasm(TokenFreezeTransition);
9
+
10
+ impl From<TokenFreezeTransition> for TokenFreezeTransitionWasm {
11
+ fn from(value: TokenFreezeTransition) -> Self {
12
+ Self(value)
13
+ }
14
+ }
15
+
16
+ #[wasm_bindgen(js_class = TokenFreezeTransition)]
17
+ impl TokenFreezeTransitionWasm {
18
+ #[wasm_bindgen(js_name=getFrozenIdentityId)]
19
+ pub fn frozen_identity_id(&self) -> IdentifierWrapper {
20
+ self.0.frozen_identity_id().into()
21
+ }
22
+ }
@@ -0,0 +1,31 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use crate::tokens::TokenConfigurationWasm;
3
+ use crate::utils::WithJsError;
4
+ use dpp::state_transition::batch_transition::token_mint_transition::v0::v0_methods::TokenMintTransitionV0Methods;
5
+ use dpp::state_transition::batch_transition::TokenMintTransition;
6
+ use wasm_bindgen::prelude::wasm_bindgen;
7
+ use wasm_bindgen::JsValue;
8
+
9
+ #[wasm_bindgen(js_name=TokenMintTransition)]
10
+ #[derive(Debug, Clone)]
11
+ pub struct TokenMintTransitionWasm(TokenMintTransition);
12
+
13
+ impl From<TokenMintTransition> for TokenMintTransitionWasm {
14
+ fn from(value: TokenMintTransition) -> Self {
15
+ Self(value)
16
+ }
17
+ }
18
+
19
+ #[wasm_bindgen(js_class=TokenMintTransition)]
20
+ impl TokenMintTransitionWasm {
21
+ #[wasm_bindgen(js_name=getRecipientId)]
22
+ pub fn recipient_id(
23
+ &self,
24
+ token_configuration: TokenConfigurationWasm,
25
+ ) -> Result<IdentifierWrapper, JsValue> {
26
+ self.0
27
+ .recipient_id(&token_configuration.into())
28
+ .with_js_error()
29
+ .map(Into::into)
30
+ }
31
+ }
@@ -0,0 +1,154 @@
1
+ pub mod burn;
2
+ mod claim;
3
+ pub mod config;
4
+ pub mod destroy;
5
+ pub mod direct_purchase;
6
+ pub mod emergency_action;
7
+ pub mod freeze;
8
+ pub mod mint;
9
+ pub mod set_price_for_direct_purchase;
10
+ pub mod transfer;
11
+ pub mod unfreeze;
12
+
13
+ use crate::batch_transition::token_transition::burn::TokenBurnTransitionWasm;
14
+ use crate::batch_transition::token_transition::claim::TokenClaimTransitionWasm;
15
+ use crate::batch_transition::token_transition::config::TokenConfigUpdateTransitionWasm;
16
+ use crate::batch_transition::token_transition::destroy::TokenDestroyFrozenFundsTransitionWasm;
17
+ use crate::batch_transition::token_transition::direct_purchase::TokenDirectPurchaseTransitionWasm;
18
+ use crate::batch_transition::token_transition::emergency_action::TokenEmergencyActionTransitionWasm;
19
+ use crate::batch_transition::token_transition::freeze::TokenFreezeTransitionWasm;
20
+ use crate::batch_transition::token_transition::mint::TokenMintTransitionWasm;
21
+ use crate::batch_transition::token_transition::set_price_for_direct_purchase::TokenSetPriceForDirectPurchaseTransitionWasm;
22
+ use crate::batch_transition::token_transition::transfer::TokenTransferTransitionWasm;
23
+ use crate::batch_transition::token_transition::unfreeze::TokenUnfreezeTransitionWasm;
24
+ use crate::identifier::IdentifierWrapper;
25
+ use dpp::prelude::IdentityNonce;
26
+ use dpp::state_transition::batch_transition::batched_transition::token_transition::{
27
+ TokenTransition, TokenTransitionV0Methods,
28
+ };
29
+ use dpp::state_transition::batch_transition::token_base_transition::v0::v0_methods::TokenBaseTransitionV0Methods;
30
+ use js_sys::Number;
31
+ use wasm_bindgen::prelude::wasm_bindgen;
32
+ use wasm_bindgen::JsValue;
33
+
34
+ #[wasm_bindgen]
35
+ pub enum TokenTransitionType {
36
+ Burn,
37
+ Mint,
38
+ Transfer,
39
+ Freeze,
40
+ Unfreeze,
41
+ DestroyFrozenFunds,
42
+ Claim,
43
+ EmergencyAction,
44
+ ConfigUpdate,
45
+ DirectPurchase,
46
+ SetPriceForDirectPurchase,
47
+ }
48
+
49
+ impl From<&TokenTransition> for TokenTransitionType {
50
+ fn from(t: &TokenTransition) -> Self {
51
+ match t {
52
+ TokenTransition::Burn(_) => TokenTransitionType::Burn,
53
+ TokenTransition::Mint(_) => TokenTransitionType::Mint,
54
+ TokenTransition::Transfer(_) => TokenTransitionType::Transfer,
55
+ TokenTransition::Freeze(_) => TokenTransitionType::Freeze,
56
+ TokenTransition::Unfreeze(_) => TokenTransitionType::Unfreeze,
57
+ TokenTransition::DestroyFrozenFunds(_) => TokenTransitionType::DestroyFrozenFunds,
58
+ TokenTransition::EmergencyAction(_) => TokenTransitionType::EmergencyAction,
59
+ TokenTransition::ConfigUpdate(_) => TokenTransitionType::ConfigUpdate,
60
+ TokenTransition::Claim(_) => TokenTransitionType::Claim,
61
+ TokenTransition::DirectPurchase(_) => TokenTransitionType::DirectPurchase,
62
+ TokenTransition::SetPriceForDirectPurchase(_) => {
63
+ TokenTransitionType::SetPriceForDirectPurchase
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ #[wasm_bindgen(js_name=TokenTransition)]
70
+ #[derive(Debug, Clone)]
71
+ pub struct TokenTransitionWasm(TokenTransition);
72
+
73
+ impl From<TokenTransition> for TokenTransitionWasm {
74
+ fn from(t: TokenTransition) -> Self {
75
+ TokenTransitionWasm(t)
76
+ }
77
+ }
78
+
79
+ impl From<TokenTransitionWasm> for TokenTransition {
80
+ fn from(t: TokenTransitionWasm) -> Self {
81
+ t.0
82
+ }
83
+ }
84
+
85
+ #[wasm_bindgen(js_class = TokenTransition)]
86
+ impl TokenTransitionWasm {
87
+ #[wasm_bindgen(js_name=getTransitionType)]
88
+ pub fn transition_type(&self) -> TokenTransitionType {
89
+ TokenTransitionType::from(&self.0)
90
+ }
91
+
92
+ #[wasm_bindgen(js_name=getTokenId)]
93
+ pub fn token_id(&self) -> IdentifierWrapper {
94
+ self.0.base().token_id().into()
95
+ }
96
+
97
+ #[wasm_bindgen(js_name=getTokenContractPosition)]
98
+ pub fn token_contract_position(&self) -> Number {
99
+ self.0.base().token_contract_position().into()
100
+ }
101
+
102
+ #[wasm_bindgen(js_name=getDataContractId)]
103
+ pub fn data_contract_id(&self) -> IdentifierWrapper {
104
+ self.0.base().data_contract_id().into()
105
+ }
106
+
107
+ #[wasm_bindgen(js_name=getHistoricalDocumentTypeName)]
108
+ pub fn historical_document_type_name(&self) -> String {
109
+ self.0.historical_document_type_name().to_string()
110
+ }
111
+
112
+ #[wasm_bindgen(js_name=getHistoricalDocumentId)]
113
+ pub fn historical_document_id(&self, owner_id: IdentifierWrapper) -> IdentifierWrapper {
114
+ self.0.historical_document_id(owner_id.into()).into()
115
+ }
116
+
117
+ #[wasm_bindgen(js_name=getIdentityContractNonce)]
118
+ pub fn identity_contract_nonce(&self) -> IdentityNonce {
119
+ self.0.base().identity_contract_nonce()
120
+ }
121
+
122
+ #[wasm_bindgen(js_name=toTransition)]
123
+ pub fn to_transition(&self) -> JsValue {
124
+ match &self.0 {
125
+ TokenTransition::Burn(burn) => TokenBurnTransitionWasm::from(burn.clone()).into(),
126
+ TokenTransition::Mint(mint) => TokenMintTransitionWasm::from(mint.clone()).into(),
127
+ TokenTransition::Transfer(transfer) => {
128
+ TokenTransferTransitionWasm::from(transfer.clone()).into()
129
+ }
130
+ TokenTransition::Freeze(freeze) => {
131
+ TokenFreezeTransitionWasm::from(freeze.clone()).into()
132
+ }
133
+ TokenTransition::Unfreeze(unfreeze) => {
134
+ TokenUnfreezeTransitionWasm::from(unfreeze.clone()).into()
135
+ }
136
+ TokenTransition::DestroyFrozenFunds(destroy_frozen_funds) => {
137
+ TokenDestroyFrozenFundsTransitionWasm::from(destroy_frozen_funds.clone()).into()
138
+ }
139
+ TokenTransition::EmergencyAction(emergency_action) => {
140
+ TokenEmergencyActionTransitionWasm::from(emergency_action.clone()).into()
141
+ }
142
+ TokenTransition::ConfigUpdate(config_update) => {
143
+ TokenConfigUpdateTransitionWasm::from(config_update.clone()).into()
144
+ }
145
+ TokenTransition::Claim(claim) => TokenClaimTransitionWasm::from(claim.clone()).into(),
146
+ TokenTransition::DirectPurchase(direct_purchase) => {
147
+ TokenDirectPurchaseTransitionWasm::from(direct_purchase.clone()).into()
148
+ }
149
+ TokenTransition::SetPriceForDirectPurchase(set_price) => {
150
+ TokenSetPriceForDirectPurchaseTransitionWasm::from(set_price.clone()).into()
151
+ }
152
+ }
153
+ }
154
+ }
@@ -0,0 +1,14 @@
1
+ use dpp::state_transition::batch_transition::TokenSetPriceForDirectPurchaseTransition;
2
+ use wasm_bindgen::prelude::wasm_bindgen;
3
+
4
+ #[wasm_bindgen(js_name=TokenSetPriceForDirectPurchaseTransition)]
5
+ #[derive(Debug, Clone)]
6
+ pub struct TokenSetPriceForDirectPurchaseTransitionWasm(TokenSetPriceForDirectPurchaseTransition);
7
+
8
+ impl From<TokenSetPriceForDirectPurchaseTransition>
9
+ for TokenSetPriceForDirectPurchaseTransitionWasm
10
+ {
11
+ fn from(value: TokenSetPriceForDirectPurchaseTransition) -> Self {
12
+ Self(value)
13
+ }
14
+ }
@@ -0,0 +1,22 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use dpp::state_transition::batch_transition::token_transfer_transition::v0::v0_methods::TokenTransferTransitionV0Methods;
3
+ use dpp::state_transition::batch_transition::TokenTransferTransition;
4
+ use wasm_bindgen::prelude::wasm_bindgen;
5
+
6
+ #[wasm_bindgen(js_name=TokenTransferTransition)]
7
+ #[derive(Debug, Clone)]
8
+ pub struct TokenTransferTransitionWasm(TokenTransferTransition);
9
+
10
+ impl From<TokenTransferTransition> for TokenTransferTransitionWasm {
11
+ fn from(value: TokenTransferTransition) -> Self {
12
+ Self(value)
13
+ }
14
+ }
15
+
16
+ #[wasm_bindgen(js_class = TokenTransferTransition)]
17
+ impl TokenTransferTransitionWasm {
18
+ #[wasm_bindgen(js_name=getRecipientId)]
19
+ pub fn recipient_id(&self) -> IdentifierWrapper {
20
+ self.0.recipient_id().into()
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ use crate::identifier::IdentifierWrapper;
2
+ use dpp::state_transition::batch_transition::token_unfreeze_transition::v0::v0_methods::TokenUnfreezeTransitionV0Methods;
3
+ use dpp::state_transition::batch_transition::TokenUnfreezeTransition;
4
+ use wasm_bindgen::prelude::wasm_bindgen;
5
+
6
+ #[wasm_bindgen(js_name=TokenUnfreezeTransition)]
7
+ #[derive(Debug, Clone)]
8
+ pub struct TokenUnfreezeTransitionWasm(TokenUnfreezeTransition);
9
+
10
+ impl From<TokenUnfreezeTransition> for TokenUnfreezeTransitionWasm {
11
+ fn from(value: TokenUnfreezeTransition) -> Self {
12
+ Self(value)
13
+ }
14
+ }
15
+
16
+ #[wasm_bindgen(js_class = TokenUnfreezeTransition)]
17
+ impl TokenUnfreezeTransitionWasm {
18
+ #[wasm_bindgen(js_name=getFrozenIdentityId)]
19
+ pub fn frozen_identity_id(&self) -> IdentifierWrapper {
20
+ self.0.frozen_identity_id().into()
21
+ }
22
+ }
@@ -1 +1 @@
1
- pub mod document_batch_transition;
1
+ pub mod batch_transition;