pub fn initialize(ctx: Context<Initialize>, bump: u8) -> ProgramResult {
        // Determine if the recipient's associated token account has been created; if not, return the corresponding error.
        require!(
            !ctx.accounts.receiver_arena.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_nft_mining.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_liquidity_mining.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_marketing.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_ecosystem.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_gyc_staking.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );

        let config_account = &mut ctx.accounts.config_account;

        /*
            Record the relevant status to the configuration account.
        */
        // Record token mint address.
        config_account.mint = *ctx.accounts.mint.to_account_info().key;

        // Record token authority address.
        config_account.mint_authority = *ctx.accounts.mint_authority.key;

        // Record the recipient's associated token account address.
        config_account.receiver_arena = *ctx.accounts.receiver_arena.key;
        config_account.receiver_nft_mining = *ctx.accounts.receiver_nft_mining.key;
        config_account.receiver_liquidity_mining = *ctx.accounts.receiver_liquidity_mining.key;
        config_account.receiver_marketing = *ctx.accounts.receiver_marketing.key;
        config_account.receiver_ecosystem = *ctx.accounts.receiver_ecosystem.key;
        config_account.receiver_gyc_staking = *ctx.accounts.receiver_gyc_staking.key;

        // Record the magic number.
        config_account.magic = 0x544b4654;

        // Record bump seed for program address.
        config_account.bump = bump;

        // Record initial block height.
        config_account.current_block_height = 0;

        // Record the timestamp of the last generated block.
        config_account.last_gen_block_timestamp = ctx.accounts.clock.unix_timestamp;

        emit!(InitializeEvent {
            status_code: StatusInfo::Ok as u64,
            status_desc: "Ok".to_string(),
            mint: *ctx.accounts.mint.to_account_info().key,
            mint_authority: *ctx.accounts.mint_authority.key,
            receiver_arena: *ctx.accounts.receiver_arena.key,
            receiver_nft_mining: *ctx.accounts.receiver_nft_mining.key,
            receiver_liquidity_mining: *ctx.accounts.receiver_liquidity_mining.key,
            receiver_marketing: *ctx.accounts.receiver_marketing.key,
            receiver_ecosystem: *ctx.accounts.receiver_ecosystem.key,
            receiver_gyc_staking: *ctx.accounts.receiver_gyc_staking.key,
            current_block_height: config_account.current_block_height,
            last_gen_block_timestamp: config_account.last_gen_block_timestamp,
            timestamp: Clock::get()?.unix_timestamp,
        });

        Ok(())
    }
/**
     * @param ctx : Initialize context
     * @param bump : Bump seed for program address.
     */
@param ctx : Initialize context
@param bump : Bump seed for program address.
@param ctx : Initialize context @param bump : Bump seed for program address .
pub fn initialize(ctx: Context<Initialize>, bump: u8) -> ProgramResult {
        // Determine if the recipient's associated token account has been created; if not, return the corresponding error.
        require!(
            !ctx.accounts.receiver_arena.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_nft_mining.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_liquidity_mining.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_marketing.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_ecosystem.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        require!(
            !ctx.accounts.receiver_gyc_staking.data_is_empty(),
            StatusInfo::NotInitializedAssociatedTokenAccount
        );
        let config_account = &mut ctx.accounts.config_account;
        /*
            Record the relevant status to the configuration account.
        */
        // Record token mint address.
        config_account.mint = *ctx.accounts.mint.to_account_info().key;
        // Record token authority address.
        config_account.mint_authority = *ctx.accounts.mint_authority.key;
        // Record the recipient's associated token account address.
        config_account.receiver_arena = *ctx.accounts.receiver_arena.key;
        config_account.receiver_nft_mining = *ctx.accounts.receiver_nft_mining.key;
        config_account.receiver_liquidity_mining = *ctx.accounts.receiver_liquidity_mining.key;
        config_account.receiver_marketing = *ctx.accounts.receiver_marketing.key;
        config_account.receiver_ecosystem = *ctx.accounts.receiver_ecosystem.key;
        config_account.receiver_gyc_staking = *ctx.accounts.receiver_gyc_staking.key;
        // Record the magic number.
        config_account.magic = 0x544b4654;
        // Record bump seed for program address.
        config_account.bump = bump;
        // Record initial block height.
        config_account.current_block_height = 0;
        // Record the timestamp of the last generated block.
        config_account.last_gen_block_timestamp = ctx.accounts.clock.unix_timestamp;
        emit!(InitializeEvent {
            status_code: StatusInfo::Ok as u64,
            status_desc: "Ok".to_string(),
            mint: *ctx.accounts.mint.to_account_info().key,
            mint_authority: *ctx.accounts.mint_authority.key,
            receiver_arena: *ctx.accounts.receiver_arena.key,
            receiver_nft_mining: *ctx.accounts.receiver_nft_mining.key,
            receiver_liquidity_mining: *ctx.accounts.receiver_liquidity_mining.key,
            receiver_marketing: *ctx.accounts.receiver_marketing.key,
            receiver_ecosystem: *ctx.accounts.receiver_ecosystem.key,
            receiver_gyc_staking: *ctx.accounts.receiver_gyc_staking.key,
            current_block_height: config_account.current_block_height,
            last_gen_block_timestamp: config_account.last_gen_block_timestamp,
            timestamp: Clock::get()?.unix_timestamp,
        });
        Ok(())
    }
pub fn initialize ( ctx : Context < Initialize > , bump : u8 ) -> ProgramResult { // Determine if the recipient's associated token account has been created; if not, return the corresponding error.
 require ! ( ctx accounts receiver_arena data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; require ! ( ctx accounts receiver_nft_mining data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; require ! ( ctx accounts receiver_liquidity_mining data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; require ! ( ctx accounts receiver_marketing data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; require ! ( ctx accounts receiver_ecosystem data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; require ! ( ctx accounts receiver_gyc_staking data_is_empty ( ) StatusInfo NotInitializedAssociatedTokenAccount ) ; let config_account = & mut ctx . accounts . config_account ; /*
            Record the relevant status to the configuration account.
        */ // Record token mint address.
 config_account . mint = * ctx . accounts . mint . to_account_info ( ) . key ; // Record token authority address.
 config_account . mint_authority = * ctx . accounts . mint_authority . key ; // Record the recipient's associated token account address.
 config_account . receiver_arena = * ctx . accounts . receiver_arena . key ; config_account . receiver_nft_mining = * ctx . accounts . receiver_nft_mining . key ; config_account . receiver_liquidity_mining = * ctx . accounts . receiver_liquidity_mining . key ; config_account . receiver_marketing = * ctx . accounts . receiver_marketing . key ; config_account . receiver_ecosystem = * ctx . accounts . receiver_ecosystem . key ; config_account . receiver_gyc_staking = * ctx . accounts . receiver_gyc_staking . key ; // Record the magic number.
 config_account . magic = 0x544b4654 ; // Record bump seed for program address.
 config_account . bump = bump ; // Record initial block height.
 config_account . current_block_height = 0 ; // Record the timestamp of the last generated block.
 config_account . last_gen_block_timestamp = ctx . accounts . clock . unix_timestamp ; emit ! ( InitializeEvent { status_code StatusInfo Ok as u64 status_desc " " to_string ( ) mint ctx accounts mint to_account_info ( ) key mint_authority ctx accounts mint_authority key receiver_arena ctx accounts receiver_arena key receiver_nft_mining ctx accounts receiver_nft_mining key receiver_liquidity_mining ctx accounts receiver_liquidity_mining key receiver_marketing ctx accounts receiver_marketing key receiver_ecosystem ctx accounts receiver_ecosystem key receiver_gyc_staking ctx accounts receiver_gyc_staking key current_block_height config_account current_block_height last_gen_block_timestamp config_account last_gen_block_timestamp timestamp Clock get ( ) unix_timestamp } ) ; Ok ( ( ) ) }
@param ctx : Initialize context
 @param bump : Bump seed for program address.
@param ctx : Initialize context @param bump : Bump seed for program address .
ctx
Context<Initialize>
bump
u8
ctx
Context<Initialize>
bump
u8