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
pub use multisig::errors;
pub use multisig::ID;
pub use multisig::program::Multisig;


pub mod state {
    pub use multisig::state::{
       Batch, ConfigAction, ConfigTransaction, Member, Multisig, MultisigCompiledInstruction, MultisigMessageAddressTableLookup, Period,Permission,Permissions,Proposal,ProposalStatus, 
    };
}

pub mod cpi {
    use anchor_lang::prelude::{CpiContext, Result, Pubkey};
    use multisig::Member;


    pub use multisig::cpi::accounts::{
        BatchAddTransaction, BatchCreate, BatchExecuteTransaction,ConfigTransactionCreate,ConfigTransactionExecute,MultisigAddSpendingLimit,MultisigConfig,MultisigCreate,MultisigRemoveSpendingLimit,ProposalActivate,ProposalCreate,ProposalVote,SpendingLimitUse,VaultTransactionCreate,VaultTransactionExecute
   
    };

    pub fn create_multisig<'info>(
        ctx: CpiContext<'_, '_, '_, 'info, MultisigCreate<'info>>,
        members: Vec<Member>,
        threshold: u16,
        config_authority: Option<Pubkey>,
        time_lock: u32,
        memo: Option<String>,
    ) -> Result<()> {
       
        multisig::cpi::multisig_create(ctx, multisig::MultisigCreateArgs { members, threshold, config_authority, time_lock, memo })
    }

}

pub mod client {
    use anchor_lang::prelude::{Context, Error};
    use multisig::{ConfigTransactionCreate, ConfigTransactionCreateArgs};
    pub use multisig::multisig::config_transaction_create;
    pub use multisig::state::Multisig;
    
    pub fn create_config_transaction(
        context: Context<ConfigTransactionCreate<'_>>,
        arguments: ConfigTransactionCreateArgs,
    ) -> Result<(), Error> {
       multisig::multisig::config_transaction_create(context, arguments)
    }
}