Skip to main content

StateTransitionSignerAwareActionTransformer

Trait StateTransitionSignerAwareActionTransformer 

Source
pub trait StateTransitionSignerAwareActionTransformer {
    // Required method
    fn transform_into_action_for_signer<C: CoreRPCLike>(
        &self,
        platform: &PlatformRef<'_, C>,
        block_info: &BlockInfo,
        remaining_address_input_balances: &Option<BTreeMap<PlatformAddress, (AddressNonce, Credits)>>,
        signer_identity: Option<&PartialIdentity>,
        validation_mode: ValidationMode,
        execution_context: &mut StateTransitionExecutionContext,
        tx: TransactionArg<'_, '_>,
    ) -> Result<ConsensusValidationResult<StateTransitionAction>, Error>;
}
Expand description

Transforms a state transition into its action when the translation depends on who signed it.

The action is the state-based translation of the transition, and part of that state can hang on the signing key: a batch signed by an AUTHENTICATION key bound to a contract group needs the group memberships of the contracts it touches, and no other batch does. This trait hands the transformer the signer’s already loaded identity, so that state is read only when it is needed. StateTransitionActionTransformer stays as it is, per its versioning note; every transition other than a batch is transformed through it.

Required Methods§

Source

fn transform_into_action_for_signer<C: CoreRPCLike>( &self, platform: &PlatformRef<'_, C>, block_info: &BlockInfo, remaining_address_input_balances: &Option<BTreeMap<PlatformAddress, (AddressNonce, Credits)>>, signer_identity: Option<&PartialIdentity>, validation_mode: ValidationMode, execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg<'_, '_>, ) -> Result<ConsensusValidationResult<StateTransitionAction>, Error>

Like StateTransitionActionTransformer::transform_into_action, with the identity the signature was validated against, when the caller holds one.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl StateTransitionSignerAwareActionTransformer for BatchTransition

Source§

fn transform_into_action_for_signer<C: CoreRPCLike>( &self, platform: &PlatformRef<'_, C>, block_info: &BlockInfo, _remaining_address_input_balances: &Option<BTreeMap<PlatformAddress, (AddressNonce, Credits)>>, signer_identity: Option<&PartialIdentity>, validation_mode: ValidationMode, execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg<'_, '_>, ) -> Result<ConsensusValidationResult<StateTransitionAction>, Error>

Source§

impl StateTransitionSignerAwareActionTransformer for StateTransition

Source§

fn transform_into_action_for_signer<C: CoreRPCLike>( &self, platform: &PlatformRef<'_, C>, block_info: &BlockInfo, remaining_address_input_balances: &Option<BTreeMap<PlatformAddress, (AddressNonce, Credits)>>, signer_identity: Option<&PartialIdentity>, validation_mode: ValidationMode, execution_context: &mut StateTransitionExecutionContext, tx: TransactionArg<'_, '_>, ) -> Result<ConsensusValidationResult<StateTransitionAction>, Error>

Implementors§