payment-program 0.1.7

Schedule one-time and recurring token transfers on Solana
Documentation
pub mod errors;
mod instructions;
pub mod state;

use {anchor_lang::prelude::*, instructions::*, state::*};

declare_id!("9gULhYu7k66bNERbo6fX6DqMUYB4JS12MigBWKs3gzVD");

#[program]
pub mod payment_program {
    use crate::state::Role;

    use super::*;

    pub fn initialize_program(
        ctx: Context<InitializeProgram>,
        config_transfer_fee_distributor: u64,
        config_transfer_fee_program: u64,
        authority_bump: u8,
        config_bump: u8,
        treasury_bump: u8,
    ) -> ProgramResult {
        initialize_program::handler(
            ctx,
            config_transfer_fee_distributor,
            config_transfer_fee_program,
            authority_bump,
            config_bump,
            treasury_bump,
        )
    }

    pub fn create_payment(
        ctx: Context<CreatePayment>,
        memo: String,
        amount_raw: u64,
        amount_percent: u64,
        recurrence_interval: u64,
        start_at: u64,
        end_at: u64,
        creditor_payment_pointer_bump: u8,
        creditor_payment_proof_bump: u8,
        debtor_payment_pointer_bump: u8,
        debtor_payment_proof_bump: u8,
        payment_bump: u8,
        task_bump: u8,
        task_pointer_bump: u8,
        task_proof_bump: u8,
    ) -> ProgramResult {
        create_payment::handler(
            ctx,
            memo,
            amount_raw,
            amount_percent,
            recurrence_interval,
            start_at,
            end_at,
            creditor_payment_pointer_bump,
            creditor_payment_proof_bump,
            debtor_payment_pointer_bump,
            debtor_payment_proof_bump,
            payment_bump,
            task_bump,
            task_pointer_bump,
            task_proof_bump,
        )
    }

    pub fn create_task_namespace(
        ctx: Context<CreateTaskNamespace>,
        process_at: u64,
        index_bump: u8,
        namespace_bump: u8,
    ) -> ProgramResult {
        create_task_namespace::handler(ctx, process_at, index_bump, namespace_bump)
    }

    pub fn create_payment_namespace(
        ctx: Context<CreatePaymentNamespace>,
        role: Role,
        index_bump: u8,
        namespace_bump: u8,
    ) -> ProgramResult {
        create_payment_namespace::handler(ctx, role, index_bump, namespace_bump)
    }

    pub fn process_task(ctx: Context<ProcessTask>) -> ProgramResult {
        process_task::handler(ctx)
    }
}