rwa-kyc-hook-api 0.2.0

Token-2022 KYC Transfer Hook for RWA primary issuance on x402
Documentation
use steel::*;

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct ConfigInitializedEvent {
    pub timestamp: i64,
    pub platform_admin: Pubkey,
    pub cluster: u8,
    pub registration_mode: u8,
    pub _padding: [u8; 6],
}

event!(ConfigInitializedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct IssuerRegisteredEvent {
    pub timestamp: i64,
    pub ops_authority: Pubkey,
    pub identity: Pubkey,
    pub registered_by: u8,
    pub _padding: [u8; 7],
}

event!(IssuerRegisteredEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct KycRecordCreatedEvent {
    pub timestamp: i64,
    pub user: Pubkey,
    pub record_kind: u8,
    pub offering_id_len: u8,
    pub _padding: [u8; 6],
}

event!(KycRecordCreatedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct KycVerifiedUpdatedEvent {
    pub timestamp: i64,
    pub user: Pubkey,
    pub is_kyc_verified: u8,
    pub record_kind: u8,
    pub offering_id_len: u8,
    pub _padding: [u8; 5],
}

event!(KycVerifiedUpdatedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct MintRegisteredEvent {
    pub timestamp: i64,
    pub mint: Pubkey,
    pub kyc_policy: u8,
    pub offering_id_len: u8,
    pub _padding: [u8; 6],
}

event!(MintRegisteredEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct OpsAuthorityRotatedEvent {
    pub timestamp: i64,
    pub new_ops_authority: Pubkey,
    pub _padding: [u8; 8],
}

event!(OpsAuthorityRotatedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct PlatformAdminProposedEvent {
    pub timestamp: i64,
    pub current_admin: Pubkey,
    pub proposed_admin: Pubkey,
}

event!(PlatformAdminProposedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct PlatformAdminUpdatedEvent {
    pub timestamp: i64,
    pub old_admin: Pubkey,
    pub new_admin: Pubkey,
}

event!(PlatformAdminUpdatedEvent);

#[repr(C)]
#[derive(Clone, Copy, Debug, Pod, Zeroable)]
pub struct PlatformAdminProposalCancelledEvent {
    pub timestamp: i64,
    pub cancelled_admin: Pubkey,
    pub cancelled_by: Pubkey,
}

event!(PlatformAdminProposalCancelledEvent);