1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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)
    }
}