✍️Signatory

The Signatory Component primarily controls signer/signature validation. It gives developers the flexibility to define who they want to be a valid signer.

The full contract code of the SignatoryComponent can be found here.

Functions

_base_signer_validation

fn _base_signer_validation(
  self: @ComponentState<TContractState>, 
  signer: ContractAddress
) -> bool;

This function implements a simple signer validation where only the NFT owner is a valid signer.

Parameters

NameTypeDescription

signer

ContractAddress

This is the address that is attempting to sign or perform actions on the TBA.

Returns

bool: Returnstrue if the signer is same as the owner and false otherwise.

_permissioned_signer_validation

This function implements a more complex signer validation where NFT owner, root owner, and permissioned addresses are valid signers.

fn _permissioned_signer_validation(
    self: @ComponentState<TContractState>, signer: ContractAddress
) -> bool;

Parameters

NameTypeDescription

signer

ContractAddress

This is the address that is attempting to sign or perform actions on the TBA.

Returns

bool: Returns true if the signer is either the owner, the root owner, or a permissioned address, returns false otherwise.

_is_valid_signature

This function checks whether a given digital signature is valid.

fn _is_valid_signature(
   self: @ComponentState<TContractState>, hash: felt252, signature: Span<felt252>
) -> felt252;

Returns

felt252: It returns VALIDATED If the signature is valid.

Last updated