diff --git a/packages/dapi/lib/externalApis/drive/fetchProofForStateTransitionFactory.js b/packages/dapi/lib/externalApis/drive/fetchProofForStateTransitionFactory.js index f102b0963bd..6b04a739e31 100644 --- a/packages/dapi/lib/externalApis/drive/fetchProofForStateTransitionFactory.js +++ b/packages/dapi/lib/externalApis/drive/fetchProofForStateTransitionFactory.js @@ -29,6 +29,12 @@ function keepsHistory(batchedTransition, tokenConfiguration) { case TokenTransitionType.Unfreeze: { return tokenConfiguration.keepsHistory().keepsFreezingHistory(); } + case TokenTransitionType.Claim: + case TokenTransitionType.ConfigUpdate: + case TokenTransitionType.EmergencyAction: + case TokenTransitionType.DestroyFrozenFunds: { + return true; + } default: return false; } @@ -148,16 +154,6 @@ function fetchProofForStateTransitionFactory(driveClient, dpp) { identityTokenBalancesList.push(requestSender, requestRecipient); break; } - case TokenTransitionType.DestroyFrozenFunds: { - const request = new IdentityTokenBalanceRequest(); - request.setTokenId(batchedTransition.getTokenId().toBuffer()); - request.setIdentityId( - batchedTransition.toTransition().getFrozenIdentityId().toBuffer(), - ); - - identityTokenBalancesList.push(request); - break; - } case TokenTransitionType.EmergencyAction: { const request = new TokenStatusRequest(); diff --git a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs index 31d031c30c8..693bb8eae9d 100644 --- a/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs +++ b/packages/rs-drive/src/verify/state_transition/verify_state_transition_was_executed_with_proof/v0/mod.rs @@ -5,7 +5,6 @@ use dpp::data_contract::accessors::v0::DataContractV0Getters; use dpp::data_contract::accessors::v1::DataContractV1Getters; use dpp::data_contract::associated_token::token_configuration::accessors::v0::TokenConfigurationV0Getters; use dpp::data_contract::associated_token::token_keeps_history_rules::accessors::v0::TokenKeepsHistoryRulesV0Getters; -use dpp::data_contract::config::v0::DataContractConfigGettersV0; use dpp::data_contract::document_type::accessors::DocumentTypeV0Getters; use dpp::data_contract::serialized_version::DataContractInSerializationFormat; use dpp::document::{Document, DocumentV0Getters}; @@ -35,18 +34,15 @@ use dpp::state_transition::batch_transition::batched_transition::document_transi use dpp::state_transition::batch_transition::batched_transition::document_update_price_transition::v0::v0_methods::DocumentUpdatePriceTransitionV0Methods; use dpp::state_transition::batch_transition::batched_transition::token_transition::{TokenTransition, TokenTransitionV0Methods}; use dpp::state_transition::batch_transition::token_base_transition::v0::v0_methods::TokenBaseTransitionV0Methods; -use dpp::state_transition::batch_transition::token_config_update_transition::v0::v0_methods::TokenConfigUpdateTransitionV0Methods; -use dpp::state_transition::batch_transition::token_emergency_action_transition::v0::v0_methods::TokenEmergencyActionTransitionV0Methods; use dpp::state_transition::batch_transition::token_freeze_transition::v0::v0_methods::TokenFreezeTransitionV0Methods; use dpp::state_transition::batch_transition::token_mint_transition::v0::v0_methods::TokenMintTransitionV0Methods; use dpp::state_transition::batch_transition::token_transfer_transition::v0::v0_methods::TokenTransferTransitionV0Methods; use dpp::state_transition::batch_transition::token_unfreeze_transition::v0::v0_methods::TokenUnfreezeTransitionV0Methods; use dpp::state_transition::masternode_vote_transition::accessors::MasternodeVoteTransitionAccessorsV0; use dpp::state_transition::proof_result::StateTransitionProofResult; -use dpp::state_transition::proof_result::StateTransitionProofResult::{VerifiedBalanceTransfer, VerifiedDataContract, VerifiedDocuments, VerifiedIdentity, VerifiedMasternodeVote, VerifiedPartialIdentity, VerifiedTokenActionWithDocument, VerifiedTokenBalance, VerifiedTokenIdentitiesBalances, VerifiedTokenIdentityInfo, VerifiedTokenStatus}; +use dpp::state_transition::proof_result::StateTransitionProofResult::{VerifiedBalanceTransfer, VerifiedDataContract, VerifiedDocuments, VerifiedIdentity, VerifiedMasternodeVote, VerifiedPartialIdentity, VerifiedTokenActionWithDocument, VerifiedTokenBalance, VerifiedTokenIdentitiesBalances, VerifiedTokenIdentityInfo}; use dpp::system_data_contracts::{load_system_data_contract, SystemDataContract}; use dpp::tokens::info::v0::IdentityTokenInfoV0Accessors; -use dpp::tokens::status::v0::TokenStatusV0Accessors; use dpp::voting::vote_polls::VotePoll; use dpp::voting::votes::resource_vote::accessors::v0::ResourceVoteGettersV0; use dpp::voting::votes::Vote; @@ -493,59 +489,10 @@ impl Drive { )) } } - TokenTransition::DestroyFrozenFunds(_) => historical_query(), - TokenTransition::EmergencyAction(emergency_action_transition) => { - let (root_hash, Some(token_status)) = Drive::verify_token_status( - proof, - token_id.into_buffer(), - true, - platform_version, - )? - else { - return Err(Error::Proof(ProofError::IncorrectProof( - "proof did not contain token status expected to exist because of state transition (token emergency action)".to_string()))); - }; - if token_status.paused() - != emergency_action_transition.emergency_action().paused() - { - return Err(Error::Proof(ProofError::IncorrectProof( - format!("proof contained token status saying this token is {}paused, but we expected {}paused", if token_status.paused() {""} else {"not "}, if emergency_action_transition.emergency_action().paused() {""} else {"not "})))); - } - Ok((root_hash, VerifiedTokenStatus(token_status))) - } - TokenTransition::ConfigUpdate(update) => { - let (root_hash, Some(updated_contract)) = Drive::verify_contract( - proof, - Some(contract.config().keeps_history()), - true, - false, - contract.id().into_buffer(), - platform_version, - )? - else { - return Err(Error::Proof(ProofError::IncorrectProof( - "proof did not contain token status expected to exist because of state transition (token emergency action)".to_string()))); - }; - let mut expected_config = token_config.clone(); - expected_config.apply_token_configuration_item( - update.update_token_configuration_item().clone(), - ); - let new_token_config = updated_contract.expected_token_configuration( - token_transition.base().token_contract_position(), - ).map_err(|_| { - Error::Proof(ProofError::CorruptedProof("returned proof does not have a token configuration, which should not be possible".to_string())) - })?; - - if new_token_config != &expected_config { - return Err(Error::Proof(ProofError::IncorrectProof( - format!( - "expected token configuration does not match the token configuration from the proof: expected {}, found {}", - expected_config, new_token_config - )))); - } - Ok((root_hash, VerifiedDataContract(updated_contract))) - } - TokenTransition::Claim(_) => historical_query(), + TokenTransition::DestroyFrozenFunds(_) + | TokenTransition::EmergencyAction(_) + | TokenTransition::ConfigUpdate(_) + | TokenTransition::Claim(_) => historical_query(), } } }