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

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.3",
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.3",
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,8 @@ 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;
86
+ use dpp::consensus::state::document::document_delete_constraint_violated_error::DocumentDeleteConstraintViolatedError;
85
87
  use dpp::consensus::state::document::referenced_document_type_not_moderated_error::ReferencedDocumentTypeNotModeratedError;
86
88
  use dpp::consensus::state::document::document_contest_index_mismatch_error::DocumentContestIndexMismatchError;
87
89
  use dpp::consensus::state::document::document_contest_not_joinable_error::DocumentContestNotJoinableError;
@@ -112,6 +114,7 @@ use dpp::consensus::state::contract_moderation::{
112
114
  ModerationCharterAddedModeratorLimitReachedError, ModerationReasonNotListedError,
113
115
  ContractTeamActionAlreadyCompletedError, ContractTeamActionAlreadySignedError,
114
116
  ContractTeamActionDocumentChangedError, ContractTeamActionDoesNotExistError,
117
+ ContractTeamMemberAddedAfterDocumentError,
115
118
  SettledDeletionNotRestorableError,
116
119
  ContractModerationNotEnabledError, ContractModerationTargetNotAllowedError,
117
120
  ContractModerationCounterpartyBarredError, ContractModerationTargetNotFoundError,
@@ -152,7 +155,7 @@ use dpp::consensus::state::identity::no_transfer_key_for_core_withdrawal_availab
152
155
  use dpp::consensus::state::identity::RecipientIdentityDoesNotExistError;
153
156
  use dpp::consensus::state::prefunded_specialized_balances::prefunded_specialized_balance_insufficient_error::PrefundedSpecializedBalanceInsufficientError;
154
157
  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};
158
+ 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
159
  use dpp::consensus::state::address_funds::{AddressDoesNotExistError, AddressInvalidNonceError, AddressNotEnoughFundsError, AddressesNotEnoughFundsError};
157
160
  use dpp::consensus::state::document::referenced_document_type_deletable_error::ReferencedDocumentTypeDeletableError;
158
161
  use dpp::consensus::state::document::referenced_document_type_not_deletable_error::ReferencedDocumentTypeNotDeletableError;
@@ -162,7 +165,6 @@ use dpp::consensus::state::document::referenced_document_property_agreement_inva
162
165
  use dpp::consensus::state::document::referenced_document_property_mismatch_error::ReferencedDocumentPropertyMismatchError;
163
166
  use dpp::consensus::state::document::document_immutable_property_changed_error::DocumentImmutablePropertyChangedError;
164
167
  use dpp::consensus::state::identity::gas_sponsor_insufficient_balance_error::GasSponsorInsufficientBalanceError;
165
- use dpp::consensus::state::token::{GasFeesPaidByNotAllowedError, InconsistentGasFeesPaidByInBatchError};
166
168
  use dpp::consensus::state::document::document_action_fee_agreement_mismatch_error::DocumentActionFeeAgreementMismatchError;
167
169
  use dpp::consensus::state::document::document_action_fee_moderators_share_mismatch_error::DocumentActionFeeModeratorsShareMismatchError;
168
170
  use dpp::consensus::state::document::document_expired_error::DocumentExpiredError;
@@ -511,6 +513,15 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
511
513
  StateError::TokenNotForDirectSale(e) => {
512
514
  generic_consensus_error!(TokenNotForDirectSale, e).into()
513
515
  }
516
+ StateError::TokenShieldedPoolNotEnabledError(e) => {
517
+ generic_consensus_error!(TokenShieldedPoolNotEnabledError, e).into()
518
+ }
519
+ StateError::TokenShieldedPaymentAmountMismatchError(e) => {
520
+ generic_consensus_error!(TokenShieldedPaymentAmountMismatchError, e).into()
521
+ }
522
+ StateError::TokenShieldedPaymentNotRequiredError(e) => {
523
+ generic_consensus_error!(TokenShieldedPaymentNotRequiredError, e).into()
524
+ }
514
525
  StateError::IdentityInTokenConfigurationNotFoundError(e) => {
515
526
  generic_consensus_error!(IdentityInTokenConfigurationNotFoundError, e).into()
516
527
  }
@@ -750,6 +761,9 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
750
761
  StateError::ContractTeamActionDocumentChangedError(e) => {
751
762
  generic_consensus_error!(ContractTeamActionDocumentChangedError, e).into()
752
763
  }
764
+ StateError::ContractTeamMemberAddedAfterDocumentError(e) => {
765
+ generic_consensus_error!(ContractTeamMemberAddedAfterDocumentError, e).into()
766
+ }
753
767
  StateError::DocumentActionFeeModeratorsShareMismatchError(e) => {
754
768
  generic_consensus_error!(DocumentActionFeeModeratorsShareMismatchError, e).into()
755
769
  }
@@ -777,6 +791,12 @@ pub fn from_state_error(state_error: &StateError) -> JsValue {
777
791
  StateError::ReferencedDocumentRemovedError(e) => {
778
792
  generic_consensus_error!(ReferencedDocumentRemovedError, e).into()
779
793
  }
794
+ StateError::ReferencedDocumentTypeIndexOnlyError(e) => {
795
+ generic_consensus_error!(ReferencedDocumentTypeIndexOnlyError, e).into()
796
+ }
797
+ StateError::DocumentDeleteConstraintViolatedError(e) => {
798
+ generic_consensus_error!(DocumentDeleteConstraintViolatedError, e).into()
799
+ }
780
800
  }
781
801
  }
782
802
 
@@ -1381,6 +1401,9 @@ fn from_basic_error(basic_error: &BasicError) -> JsValue {
1381
1401
  BasicError::DocumentReferencePreimageInvalidError(e) => {
1382
1402
  generic_consensus_error!(DocumentReferencePreimageInvalidError, e).into()
1383
1403
  }
1404
+ BasicError::TokenShieldedPoolIncompatibleRulesError(e) => {
1405
+ generic_consensus_error!(TokenShieldedPoolIncompatibleRulesError, e).into()
1406
+ }
1384
1407
  }
1385
1408
  }
1386
1409
 
@@ -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
  )),