@dashevo/wasm-dpp 5.0.0-beta.1 → 5.0.0-beta.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dashevo/wasm-dpp",
3
- "version": "5.0.0-beta.1",
3
+ "version": "5.0.0-beta.2",
4
4
  "description": "The JavaScript implementation of the Dash Platform Protocol",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,7 +44,7 @@
44
44
  "@babel/core": "^7.26.10",
45
45
  "@babel/preset-env": "^7.26.9",
46
46
  "@dashevo/dashcore-lib": "~0.22.0",
47
- "@dashevo/dpns-contract": "5.0.0-beta.1",
47
+ "@dashevo/dpns-contract": "5.0.0-beta.2",
48
48
  "@types/bs58": "^4.0.1",
49
49
  "@types/node": "^20.10.0",
50
50
  "@yarnpkg/pnpify": "^4.0.0-rc.42",
@@ -261,7 +261,11 @@ impl DataContractCreateTransitionWasm {
261
261
  let bls_adapter = BlsAdapter(bls);
262
262
 
263
263
  let verification_result = StateTransition::DataContractCreate(self.0.clone())
264
- .verify_identity_signed_signature(&identity_public_key.to_owned().into(), &bls_adapter);
264
+ .verify_identity_signed_signature(
265
+ &identity_public_key.to_owned().into(),
266
+ &bls_adapter,
267
+ PlatformVersion::latest(),
268
+ );
265
269
 
266
270
  match verification_result {
267
271
  Ok(()) => Ok(true),
@@ -265,7 +265,11 @@ impl DataContractUpdateTransitionWasm {
265
265
  let bls_adapter = BlsAdapter(bls);
266
266
 
267
267
  let verification_result = StateTransition::DataContractUpdate(self.0.clone())
268
- .verify_identity_signed_signature(&identity_public_key.to_owned().into(), &bls_adapter);
268
+ .verify_identity_signed_signature(
269
+ &identity_public_key.to_owned().into(),
270
+ &bls_adapter,
271
+ PlatformVersion::latest(),
272
+ );
269
273
 
270
274
  match verification_result {
271
275
  Ok(()) => Ok(true),
@@ -178,7 +178,7 @@ impl DocumentFactoryWASM {
178
178
  .document_type_for_name(extended_document.document_type_name())
179
179
  .expect("should be able to get document type"),
180
180
  extended_document.entropy().to_owned(),
181
- extended_document.token_payment_info(),
181
+ extended_document.token_payment_info_ref().clone(),
182
182
  )
183
183
  })
184
184
  .collect();
@@ -33,6 +33,7 @@ use crate::batch_transition::batched_transition::BatchedTransitionWasm;
33
33
  use crate::batch_transition::document_transition::DocumentTransitionWasm;
34
34
  use crate::batch_transition::token_transition::TokenTransitionWasm;
35
35
  use dpp::state_transition::StateTransitionIdentitySigned;
36
+ use dpp::version::PlatformVersion;
36
37
 
37
38
  pub mod batched_transition;
38
39
  pub mod document_transition;
@@ -340,7 +341,11 @@ impl BatchTransitionWasm {
340
341
  let bls_adapter = BlsAdapter(bls);
341
342
 
342
343
  let verification_result = StateTransition::Batch(self.0.clone())
343
- .verify_identity_signed_signature(&identity_public_key.to_owned().into(), &bls_adapter);
344
+ .verify_identity_signed_signature(
345
+ &identity_public_key.to_owned().into(),
346
+ &bls_adapter,
347
+ PlatformVersion::latest(),
348
+ );
344
349
 
345
350
  match verification_result {
346
351
  Ok(()) => Ok(true),
@@ -44,6 +44,13 @@ pub enum TokenTransitionType {
44
44
  ConfigUpdate,
45
45
  DirectPurchase,
46
46
  SetPriceForDirectPurchase,
47
+ Shield,
48
+ Unshield,
49
+ ShieldedTransfer,
50
+ MintToPool,
51
+ BurnFromPool,
52
+ ClaimToPool,
53
+ DirectPurchaseToPool,
47
54
  }
48
55
 
49
56
  impl From<&TokenTransition> for TokenTransitionType {
@@ -62,6 +69,13 @@ impl From<&TokenTransition> for TokenTransitionType {
62
69
  TokenTransition::SetPriceForDirectPurchase(_) => {
63
70
  TokenTransitionType::SetPriceForDirectPurchase
64
71
  }
72
+ TokenTransition::Shield(_) => TokenTransitionType::Shield,
73
+ TokenTransition::Unshield(_) => TokenTransitionType::Unshield,
74
+ TokenTransition::ShieldedTransfer(_) => TokenTransitionType::ShieldedTransfer,
75
+ TokenTransition::MintToPool(_) => TokenTransitionType::MintToPool,
76
+ TokenTransition::BurnFromPool(_) => TokenTransitionType::BurnFromPool,
77
+ TokenTransition::ClaimToPool(_) => TokenTransitionType::ClaimToPool,
78
+ TokenTransition::DirectPurchaseToPool(_) => TokenTransitionType::DirectPurchaseToPool,
65
79
  }
66
80
  }
67
81
  }
@@ -120,35 +134,48 @@ impl TokenTransitionWasm {
120
134
  }
121
135
 
122
136
  #[wasm_bindgen(js_name=toTransition)]
123
- pub fn to_transition(&self) -> JsValue {
137
+ pub fn to_transition(&self) -> Result<JsValue, JsValue> {
124
138
  match &self.0 {
125
- TokenTransition::Burn(burn) => TokenBurnTransitionWasm::from(burn.clone()).into(),
126
- TokenTransition::Mint(mint) => TokenMintTransitionWasm::from(mint.clone()).into(),
139
+ TokenTransition::Burn(burn) => Ok(TokenBurnTransitionWasm::from(burn.clone()).into()),
140
+ TokenTransition::Mint(mint) => Ok(TokenMintTransitionWasm::from(mint.clone()).into()),
127
141
  TokenTransition::Transfer(transfer) => {
128
- TokenTransferTransitionWasm::from(transfer.clone()).into()
142
+ Ok(TokenTransferTransitionWasm::from(transfer.clone()).into())
129
143
  }
130
144
  TokenTransition::Freeze(freeze) => {
131
- TokenFreezeTransitionWasm::from(freeze.clone()).into()
145
+ Ok(TokenFreezeTransitionWasm::from(freeze.clone()).into())
132
146
  }
133
147
  TokenTransition::Unfreeze(unfreeze) => {
134
- TokenUnfreezeTransitionWasm::from(unfreeze.clone()).into()
135
- }
136
- TokenTransition::DestroyFrozenFunds(destroy_frozen_funds) => {
137
- TokenDestroyFrozenFundsTransitionWasm::from(destroy_frozen_funds.clone()).into()
148
+ Ok(TokenUnfreezeTransitionWasm::from(unfreeze.clone()).into())
138
149
  }
150
+ TokenTransition::DestroyFrozenFunds(destroy_frozen_funds) => Ok(
151
+ TokenDestroyFrozenFundsTransitionWasm::from(destroy_frozen_funds.clone()).into(),
152
+ ),
139
153
  TokenTransition::EmergencyAction(emergency_action) => {
140
- TokenEmergencyActionTransitionWasm::from(emergency_action.clone()).into()
154
+ Ok(TokenEmergencyActionTransitionWasm::from(emergency_action.clone()).into())
141
155
  }
142
156
  TokenTransition::ConfigUpdate(config_update) => {
143
- TokenConfigUpdateTransitionWasm::from(config_update.clone()).into()
157
+ Ok(TokenConfigUpdateTransitionWasm::from(config_update.clone()).into())
158
+ }
159
+ TokenTransition::Claim(claim) => {
160
+ Ok(TokenClaimTransitionWasm::from(claim.clone()).into())
144
161
  }
145
- TokenTransition::Claim(claim) => TokenClaimTransitionWasm::from(claim.clone()).into(),
146
162
  TokenTransition::DirectPurchase(direct_purchase) => {
147
- TokenDirectPurchaseTransitionWasm::from(direct_purchase.clone()).into()
163
+ Ok(TokenDirectPurchaseTransitionWasm::from(direct_purchase.clone()).into())
148
164
  }
149
165
  TokenTransition::SetPriceForDirectPurchase(set_price) => {
150
- TokenSetPriceForDirectPurchaseTransitionWasm::from(set_price.clone()).into()
166
+ Ok(TokenSetPriceForDirectPurchaseTransitionWasm::from(set_price.clone()).into())
151
167
  }
168
+ // The shielded-pool token transition kinds have no wrapper class here, so there is
169
+ // nothing to hand back; wasm-dpp2 is the binding that exposes them.
170
+ TokenTransition::Shield(_)
171
+ | TokenTransition::Unshield(_)
172
+ | TokenTransition::ShieldedTransfer(_)
173
+ | TokenTransition::MintToPool(_)
174
+ | TokenTransition::BurnFromPool(_)
175
+ | TokenTransition::ClaimToPool(_)
176
+ | TokenTransition::DirectPurchaseToPool(_) => Err(JsValue::from_str(
177
+ "shielded and pool-backed token transitions are not supported in wasm-dpp TokenTransition; use wasm-dpp2",
178
+ )),
152
179
  }
153
180
  }
154
181
  }
@@ -66,7 +66,7 @@ use dpp::consensus::state::data_trigger::DataTriggerError::{
66
66
  DataTriggerConditionError, DataTriggerExecutionError, DataTriggerInvalidResultError,
67
67
  };
68
68
  use wasm_bindgen::{JsError, JsValue};
69
- use dpp::consensus::basic::data_contract::{ContestedUniqueIndexOnMutableDocumentTypeError, DataContractInvalidRequiredFieldsUpdateError, ContestedUniqueIndexWithUniqueIndexError, DataContractTokenConfigurationUpdateError, DecimalsOverLimitError, DuplicateKeywordsError, GroupExceedsMaxMembersError, GroupHasTooFewMembersError, GroupMemberHasPowerOfZeroError, GroupMemberHasPowerOverLimitError, GroupNonUnilateralMemberPowerHasLessThanRequiredPowerError, GroupPositionDoesNotExistError, GroupRequiredPowerIsInvalidError, GroupTotalPowerLessThanRequiredError, InvalidDescriptionLengthError, InvalidDocumentTypeRequiredSecurityLevelError, InvalidKeywordCharacterError, InvalidKeywordLengthError, InvalidTokenBaseSupplyError, InvalidTokenDistributionFunctionDivideByZeroError, InvalidTokenDistributionFunctionIncoherenceError, InvalidTokenDistributionFunctionInvalidParameterError, InvalidTokenDistributionFunctionInvalidParameterTupleError, InvalidTokenLanguageCodeError, InvalidTokenNameCharacterError, InvalidTokenNameLengthError, MainGroupIsNotDefinedError, NewTokensDestinationIdentityOptionRequiredError, NonContiguousContractGroupPositionsError, NonContiguousContractTokenPositionsError, PreProgrammedDistributionAmountOverLimitError, RedundantDocumentPaidForByTokenWithContractId, TokenPaymentByBurningOnlyAllowedOnInternalTokenError, TooManyKeywordsError, UnknownDocumentActionTokenEffectError, UnknownDocumentCreationRestrictionModeError, UnknownGasFeesPaidByError, UnknownSecurityLevelError, UnknownStorageKeyRequirementsError, UnknownTradeModeError, UnknownTransferableTypeError};
69
+ use dpp::consensus::basic::data_contract::{ContestedUniqueIndexOnMutableDocumentTypeError, ContestedUniqueIndexWithUniqueIndexError, DataContractInvalidRequiredFieldsUpdateError, DataContractTokenConfigurationUpdateError, DecimalsOverLimitError, DuplicateKeywordsError, GroupExceedsMaxMembersError, GroupHasTooFewMembersError, GroupMemberHasPowerOfZeroError, GroupMemberHasPowerOverLimitError, GroupNonUnilateralMemberPowerHasLessThanRequiredPowerError, GroupPositionDoesNotExistError, GroupRequiredPowerIsInvalidError, GroupTotalPowerLessThanRequiredError, InvalidDescriptionLengthError, InvalidDocumentTypeRequiredSecurityLevelError, InvalidKeywordCharacterError, InvalidKeywordLengthError, InvalidTokenBaseSupplyError, InvalidTokenDistributionFunctionDivideByZeroError, InvalidTokenDistributionFunctionIncoherenceError, InvalidTokenDistributionFunctionInvalidParameterError, InvalidTokenDistributionFunctionInvalidParameterTupleError, InvalidTokenLanguageCodeError, InvalidTokenNameCharacterError, InvalidTokenNameLengthError, MainGroupIsNotDefinedError, NewTokensDestinationIdentityOptionRequiredError, NonContiguousContractGroupPositionsError, NonContiguousContractTokenPositionsError, PreProgrammedDistributionAmountOverLimitError, RedundantDocumentPaidForByTokenWithContractId, TokenPaymentByBurningOnlyAllowedOnInternalTokenError, TokenShieldedPoolIncompatibleRulesError, TooManyKeywordsError, UnknownDocumentActionTokenEffectError, UnknownDocumentCreationRestrictionModeError, UnknownGasFeesPaidByError, UnknownSecurityLevelError, UnknownStorageKeyRequirementsError, UnknownTradeModeError, UnknownTransferableTypeError};
70
70
  use dpp::consensus::basic::document::{ContestedDocumentsTemporarilyNotAllowedError, DocumentCreationNotAllowedError, DocumentFieldMaxSizeExceededError, DocumentPropertyConstraintViolatedError, DocumentPropertyMaxBytesExceededError, DocumentPropertyNotDistinctError, DocumentPropertyNotGeneratedError, DocumentReferencePreimageInvalidError, InvalidEncryptedPropertyShapeError, MaxDocumentsTransitionsExceededError, MissingPositionsInDocumentTypePropertiesError};
71
71
  use dpp::consensus::basic::group::GroupActionNotAllowedOnTransitionError;
72
72
  use dpp::consensus::basic::identity::{DataContractBoundsNotPresentError, DisablingKeyIdAlsoBeingAddedInSameTransitionError, InvalidIdentityCreditWithdrawalTransitionAmountError, InvalidIdentityUpdateTransitionDisableKeysError, InvalidIdentityUpdateTransitionEmptyError, InvalidKeyPurposeForContractBoundsError, TooManyMasterPublicKeyError, WithdrawalOutputScriptNotAllowedWhenSigningWithOwnerKeyError};
@@ -82,6 +82,7 @@ use dpp::consensus::state::document::document_contest_maximum_contenders_reached
82
82
  use dpp::consensus::state::document::referenced_document_requirement_not_met_error::ReferencedDocumentRequirementNotMetError;
83
83
  use dpp::consensus::state::document::referenced_document_removed_error::ReferencedDocumentRemovedError;
84
84
  use dpp::consensus::state::document::referenced_document_type_moderated_error::ReferencedDocumentTypeModeratedError;
85
+ use dpp::consensus::state::document::referenced_document_type_index_only_error::ReferencedDocumentTypeIndexOnlyError;
85
86
  use dpp::consensus::state::document::referenced_document_type_not_moderated_error::ReferencedDocumentTypeNotModeratedError;
86
87
  use dpp::consensus::state::document::document_contest_index_mismatch_error::DocumentContestIndexMismatchError;
87
88
  use dpp::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError;
@@ -112,6 +113,7 @@ use dpp::consensus::state::contract_moderation::{
112
113
  ModerationCharterAddedModeratorLimitReachedError, ModerationReasonNotListedError,
113
114
  ContractTeamActionAlreadyCompletedError, ContractTeamActionAlreadySignedError,
114
115
  ContractTeamActionDocumentChangedError, ContractTeamActionDoesNotExistError,
116
+ ContractTeamMemberAddedAfterDocumentError,
115
117
  SettledDeletionNotRestorableError,
116
118
  ContractModerationNotEnabledError, ContractModerationTargetNotAllowedError,
117
119
  ContractModerationCounterpartyBarredError, ContractModerationTargetNotFoundError,
@@ -152,7 +154,7 @@ use dpp::consensus::state::identity::no_transfer_key_for_core_withdrawal_availab
152
154
  use dpp::consensus::state::identity::RecipientIdentityDoesNotExistError;
153
155
  use dpp::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_insufficient_error::PrefundedSpecializedBalanceInsufficientError;
154
156
  use dpp::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_not_found_error::PrefundedSpecializedBalanceNotFoundError;
155
- use dpp::consensus::state::token::{IdentityDoesNotHaveEnoughTokenBalanceError, IdentityTokenAccountNotFrozenError, IdentityTokenAccountFrozenError, TokenIsPausedError, IdentityTokenAccountAlreadyFrozenError, UnauthorizedTokenActionError, TokenSettingMaxSupplyToLessThanCurrentSupplyError, TokenMintPastMaxSupplyError, NewTokensDestinationIdentityDoesNotExistError, NewAuthorizedActionTakerIdentityDoesNotExistError, NewAuthorizedActionTakerGroupDoesNotExistError, NewAuthorizedActionTakerMainGroupNotSetError, InvalidGroupPositionError, TokenAlreadyPausedError, TokenNotPausedError, InvalidTokenClaimPropertyMismatch, InvalidTokenClaimNoCurrentRewards, InvalidTokenClaimWrongClaimant, TokenTransferRecipientIdentityNotExistError, PreProgrammedDistributionTimestampInPastError, IdentityHasNotAgreedToPayRequiredTokenAmountError, RequiredTokenPaymentInfoNotSetError, IdentityTryingToPayWithWrongTokenError, TokenDirectPurchaseUserPriceTooLow, TokenAmountUnderMinimumSaleAmount, TokenNotForDirectSale, InvalidTokenPositionStateError, TokenOncePerIdentityDistributionAlreadyClaimedError};
157
+ use dpp::consensus::state::token::{IdentityDoesNotHaveEnoughTokenBalanceError, IdentityTokenAccountNotFrozenError, IdentityTokenAccountFrozenError, TokenIsPausedError, IdentityTokenAccountAlreadyFrozenError, UnauthorizedTokenActionError, TokenSettingMaxSupplyToLessThanCurrentSupplyError, TokenMintPastMaxSupplyError, NewTokensDestinationIdentityDoesNotExistError, NewAuthorizedActionTakerIdentityDoesNotExistError, NewAuthorizedActionTakerGroupDoesNotExistError, NewAuthorizedActionTakerMainGroupNotSetError, InvalidGroupPositionError, TokenAlreadyPausedError, TokenNotPausedError, InvalidTokenClaimPropertyMismatch, InvalidTokenClaimNoCurrentRewards, InvalidTokenClaimWrongClaimant, TokenTransferRecipientIdentityNotExistError, PreProgrammedDistributionTimestampInPastError, IdentityHasNotAgreedToPayRequiredTokenAmountError, RequiredTokenPaymentInfoNotSetError, IdentityTryingToPayWithWrongTokenError, TokenDirectPurchaseUserPriceTooLow, TokenAmountUnderMinimumSaleAmount, TokenNotForDirectSale, InvalidTokenPositionStateError, TokenOncePerIdentityDistributionAlreadyClaimedError, TokenShieldedPoolNotEnabledError, TokenShieldedPaymentAmountMismatchError, TokenShieldedPaymentNotRequiredError, GasFeesPaidByNotAllowedError, InconsistentGasFeesPaidByInBatchError};
156
158
  use dpp::consensus::state::address_funds::{AddressDoesNotExistError, AddressInvalidNonceError, AddressNotEnoughFundsError, AddressesNotEnoughFundsError};
157
159
  use dpp::consensus::state::document::referenced_document_type_deletable_error::ReferencedDocumentTypeDeletableError;
158
160
  use dpp::consensus::state::document::referenced_document_type_not_deletable_error::ReferencedDocumentTypeNotDeletableError;
@@ -162,7 +164,6 @@ use dpp::consensus::state::document::referenced_document_property_agreement_inva
162
164
  use dpp::consensus::state::document::referenced_document_property_mismatch_error::ReferencedDocumentPropertyMismatchError;
163
165
  use dpp::consensus::state::document::document_immutable_property_changed_error::DocumentImmutablePropertyChangedError;
164
166
  use dpp::consensus::state::identity::gas_sponsor_insufficient_balance_error::GasSponsorInsufficientBalanceError;
165
- use dpp::consensus::state::token::{GasFeesPaidByNotAllowedError, InconsistentGasFeesPaidByInBatchError};
166
167
  use dpp::consensus::state::document::document_action_fee_agreement_mismatch_error::DocumentActionFeeAgreementMismatchError;
167
168
  use dpp::consensus::state::document::document_action_fee_moderators_share_mismatch_error::DocumentActionFeeModeratorsShareMismatchError;
168
169
  use dpp::consensus::state::document::document_expired_error::DocumentExpiredError;
@@ -511,6 +512,15 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
511
512
  StateError::TokenNotForDirectSale(e) => {
512
513
  generic_consensus_error!(TokenNotForDirectSale, e).into()
513
514
  }
515
+ StateError::TokenShieldedPoolNotEnabledError(e) => {
516
+ generic_consensus_error!(TokenShieldedPoolNotEnabledError, e).into()
517
+ }
518
+ StateError::TokenShieldedPaymentAmountMismatchError(e) => {
519
+ generic_consensus_error!(TokenShieldedPaymentAmountMismatchError, e).into()
520
+ }
521
+ StateError::TokenShieldedPaymentNotRequiredError(e) => {
522
+ generic_consensus_error!(TokenShieldedPaymentNotRequiredError, e).into()
523
+ }
514
524
  StateError::IdentityInTokenConfigurationNotFoundError(e) => {
515
525
  generic_consensus_error!(IdentityInTokenConfigurationNotFoundError, e).into()
516
526
  }
@@ -750,6 +760,9 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
750
760
  StateError::ContractTeamActionDocumentChangedError(e) => {
751
761
  generic_consensus_error!(ContractTeamActionDocumentChangedError, e).into()
752
762
  }
763
+ StateError::ContractTeamMemberAddedAfterDocumentError(e) => {
764
+ generic_consensus_error!(ContractTeamMemberAddedAfterDocumentError, e).into()
765
+ }
753
766
  StateError::DocumentActionFeeModeratorsShareMismatchError(e) => {
754
767
  generic_consensus_error!(DocumentActionFeeModeratorsShareMismatchError, e).into()
755
768
  }
@@ -777,6 +790,9 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
777
790
  StateError::ReferencedDocumentRemovedError(e) => {
778
791
  generic_consensus_error!(ReferencedDocumentRemovedError, e).into()
779
792
  }
793
+ StateError::ReferencedDocumentTypeIndexOnlyError(e) => {
794
+ generic_consensus_error!(ReferencedDocumentTypeIndexOnlyError, e).into()
795
+ }
780
796
  }
781
797
  }
782
798
 
@@ -1381,6 +1397,9 @@ fn from_basic_error(basic_error: &BasicError) -> JsValue {
1381
1397
  BasicError::DocumentReferencePreimageInvalidError(e) => {
1382
1398
  generic_consensus_error!(DocumentReferencePreimageInvalidError, e).into()
1383
1399
  }
1400
+ BasicError::TokenShieldedPoolIncompatibleRulesError(e) => {
1401
+ generic_consensus_error!(TokenShieldedPoolIncompatibleRulesError, e).into()
1402
+ }
1384
1403
  }
1385
1404
  }
1386
1405
 
@@ -482,7 +482,11 @@ impl IdentityUpdateTransitionWasm {
482
482
  let bls_adapter = BlsAdapter(bls);
483
483
 
484
484
  let verification_result = StateTransition::IdentityUpdate(self.0.clone())
485
- .verify_identity_signed_signature(&identity_public_key.to_owned().into(), &bls_adapter);
485
+ .verify_identity_signed_signature(
486
+ &identity_public_key.to_owned().into(),
487
+ &bls_adapter,
488
+ PlatformVersion::latest(),
489
+ );
486
490
 
487
491
  match verification_result {
488
492
  Ok(()) => Ok(true),
@@ -86,6 +86,9 @@ impl StateTransitionFactoryWasm {
86
86
  | StateTransition::ShieldedWithdrawal(_)
87
87
  | StateTransition::IdentityCreateFromShieldedPool(_)
88
88
  | StateTransition::ShieldFromIdentity(_)
89
+ | StateTransition::TokenShieldedTransferWithShieldedFee(_)
90
+ | StateTransition::TokenUnshieldWithShieldedFee(_)
91
+ | StateTransition::TokenPurchaseFromShieldedPool(_)
89
92
  | StateTransition::IdentityTopUpFromShieldedPool(_) => Err(JsValue::from_str(
90
93
  "shielded transitions are not yet supported in wasm-dpp StateTransitionFactory",
91
94
  )),