✍️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
_base_signer_validationfn _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
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
_permissioned_signer_validationThis 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
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
_is_valid_signatureThis 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