defios 0.1.0

Main github on-chain integrations by DefiOS
Documentation
use crate::state::{ObjectiveDeliverable, RoadmapOutlook};
use anchor_lang::prelude::*;
use instructions::*;

pub mod constants;
pub mod error;
pub mod event;
pub mod helper;
pub mod instructions;
pub mod state;

declare_id!("A4ka2TchTkFPcdtVctj7imhAtKvwapvihcR456aAW663");

#[program]
pub mod defios {
    use super::*;

    pub fn create_name_router(
        ctx: Context<CreateNameRouter>,
        signing_domain: String,
        signature_version: u8,
    ) -> Result<()> {
        create_name_router::handler(ctx, signing_domain, signature_version)
    }

    pub fn add_verified_user(
        ctx: Context<AddVerifiedUser>,
        user_name: String,
        user_pubkey: Pubkey,
        msg: Vec<u8>,
        sig: [u8; 64],
    ) -> Result<()> {
        add_verified_user::handler(ctx, user_name, user_pubkey, msg, sig)
    }

    pub fn create_repository(
        ctx: Context<CreateRepository>,
        id: String,
        description: String,
        uri: String,
        token_name: Box<Option<String>>,
        token_image: Box<Option<String>>,
        token_metadata_uri: Box<Option<String>>,
    ) -> Result<()> {
        create_repository::handler(
            ctx,
            id,
            description,
            uri,
            token_name,
            token_image,
            token_metadata_uri,
        )
    }

    pub fn add_issue(ctx: Context<AddIssue>, uri: String) -> Result<()> {
        add_issue::handler(ctx, uri)
    }

    pub fn stake_issue(ctx: Context<StakeIssue>, transfer_amount: u64) -> Result<()> {
        stake_issue::handler(ctx, transfer_amount)
    }

    pub fn unstake_issue(ctx: Context<UnstakeIssue>) -> Result<()> {
        unstake_issue::handler(ctx)
    }

    pub fn claim_reward(ctx: Context<ClaimReward>) -> Result<()> {
        claim_reward::handler(ctx)
    }

    pub fn add_roadmap_data(
        ctx: Context<AddMetadata>,
        roadmap_title: String,
        roadmap_description_link: String,
        roadmap_image_url: String,
        roadmap_outlook: RoadmapOutlook,
    ) -> Result<()> {
        add_roadmap_data::handler(
            ctx,
            roadmap_title,
            roadmap_description_link,
            roadmap_image_url,
            roadmap_outlook,
        )
    }

    pub fn add_objective_data(
        ctx: Context<AddObjective>,
        objective_id: String,
        objective_title: String,
        objective_start_unix: i64,
        objective_description_link: String,
        objective_deliverable: ObjectiveDeliverable,
    ) -> Result<()> {
        add_objective_data::handler(
            ctx,
            objective_id,
            objective_title,
            objective_start_unix,
            objective_description_link,
            objective_deliverable,
        )
    }

    pub fn add_pr(ctx: Context<AddPullRequest>, metadata_uri: String) -> Result<()> {
        add_pr::handler(ctx, metadata_uri)
    }

    pub fn unlock_tokens(ctx: Context<UnlockTokens>) -> Result<()> {
        unlock_tokens::handler(ctx)
    }

    pub fn accept_pr(ctx: Context<AcceptPullRequest>, repo_name: String) -> Result<()> {
        accept_pr::handler(ctx, repo_name)
    }

    pub fn create_communal_account(ctx: Context<RegisterCommunalAccount>) -> Result<()> {
        create_communal_account::handler(ctx)
    }

    pub fn buy_tokens(
        ctx: Context<BuyToken>,
        usdc_amount: u64,
        number_of_tokens: u64,
    ) -> Result<()> {
        buy_tokens::handler(ctx, usdc_amount, number_of_tokens)
    }

    pub fn sell_tokens(
        ctx: Context<SellToken>,
        usdc_amount: u64,
        number_of_tokens: u64,
    ) -> Result<()> {
        sell_tokens::handler(ctx, usdc_amount, number_of_tokens)
    }

    pub fn vote_pr(ctx: Context<VotePRs>) -> Result<()> {
        vote_pr::handler(ctx)
    }

    pub fn change_repo_token(
        ctx: Context<ChangeRepoToken>,
        token_name: Box<Option<String>>,
        token_symbol: Box<Option<String>>,
        token_metadata_uri: Box<Option<String>>,
    ) -> Result<()> {
        change_repo_token::handler(ctx, token_name, token_symbol, token_metadata_uri)
    }

    pub fn grant_money(
        ctx: Context<GrantMoney>,
        transfer_amount: u64,
        grant_metadata_uri: String,
    ) -> Result<()> {
        grant_money::handler(ctx, transfer_amount, grant_metadata_uri)
    }

    pub fn disperse_grant(ctx: Context<DisperseGrant>, disperse_amount: u64) -> Result<()> {
        disperse_grant::handler(ctx, disperse_amount)
    }

    pub fn accept_issue_vote(ctx: Context<AcceptIssueVote>) -> Result<()> {
        accept_issue_vote::handler(ctx)
    }

    pub fn create_objective_proposal(
        ctx: Context<CreateObjectiveProposal>,
        proposal_id: String,
        objective_proposal_url: String,
    ) -> Result<()> {
        create_objective_proposal::handler(ctx, proposal_id, objective_proposal_url)
    }

    pub fn vote_objective(ctx: Context<VoteObjective>, positive: bool) -> Result<()> {
        vote_objective::handler(ctx, positive)
    }

    pub fn accept_objective(ctx: Context<AcceptObjective>) -> Result<()> {
        accept_objective::handler(ctx)
    }
}