Skip to content

Move RBAC validation logic to catalyst-libs #578

@stanislav-tkach

Description

@stanislav-tkach

The part of validation logic that is currently located in the catalyst-voices repository should be moved to the rbac-registration crate. The trait such as the following one should be introduced:

trait RbacRegistrationProvider {
    fn chain(
        &self,
        id: CatalystId,
        is_persistent: bool,
    ) -> Result<Option<ChainInfo>>;

    fn is_chain_known(&self,
        id: CatalystId,
        is_persistent: bool,
    ) -> Result<bool>;

    fn catalyst_id_from_stake_address(
        &self,
        address: &StakeAddress,
        is_persistent: bool,
    ) -> Result<Option<CatalystId>>;

    fn catalyst_id_from_public_key(
        &self,
        key: VerifyingKey,
        is_persistent: bool
    ) -> Result<Option<CatalystId>>;
}

And the logic contained in the /catalyst-voices/catalyst-gateway/bin/src/rbac/validation.rs file should be transferred to the library, but instead of the direct access to the database the mentioned trait should be used.

Metadata

Metadata

Assignees

Labels

squad: gatekeepersCatalyst App Backend, System Development & Integration Team

Type

Projects

Status

👀 In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions