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