carbon-pump-swap-decoder 1.0.0

PumpSwap Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
use {
    carbon_core::graphql::primitives::{Pubkey, I64, U64},
    juniper::GraphQLObject,
};

#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "UserVolumeAccumulator")]
pub struct UserVolumeAccumulatorGraphQL {
    pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
    pub user: Pubkey,
    pub needs_claim: bool,
    pub total_unclaimed_tokens: U64,
    pub total_claimed_tokens: U64,
    pub current_sol_volume: U64,
    pub last_update_timestamp: I64,
    pub has_total_claimed_tokens: bool,
    pub cashback_earned: U64,
    pub total_cashback_claimed: U64,
}

impl TryFrom<crate::accounts::postgres::UserVolumeAccumulatorRow> for UserVolumeAccumulatorGraphQL {
    type Error = carbon_core::error::Error;
    fn try_from(
        row: crate::accounts::postgres::UserVolumeAccumulatorRow,
    ) -> Result<Self, Self::Error> {
        Ok(Self {
            account_metadata: row.account_metadata.into(),
            user: carbon_core::graphql::primitives::Pubkey(row.user.0),
            needs_claim: row.needs_claim,
            total_unclaimed_tokens: carbon_core::graphql::primitives::U64(
                *row.total_unclaimed_tokens,
            ),
            total_claimed_tokens: carbon_core::graphql::primitives::U64(*row.total_claimed_tokens),
            current_sol_volume: carbon_core::graphql::primitives::U64(*row.current_sol_volume),
            last_update_timestamp: carbon_core::graphql::primitives::I64(row.last_update_timestamp),
            has_total_claimed_tokens: row.has_total_claimed_tokens,
            cashback_earned: carbon_core::graphql::primitives::U64(*row.cashback_earned),
            total_cashback_claimed: carbon_core::graphql::primitives::U64(
                *row.total_cashback_claimed,
            ),
        })
    }
}