对 devnet 的锚定部署不起作用 - 循环发送交易/等待下一个块

问题描述 投票:0回答:1

我用锚创建了一个简单的计数器智能合约。我遵循了这个答案中概述的所有步骤:https://stackoverflow.com/a/73862346/1192872

当我将代码部署到 solana devnet 时,部署陷入循环:

如果有帮助,这是我的代码

use anchor_lang::prelude::*;

declare_id!("2QmXMXyMAmZCE92Uqm2YhKgpqH3Teo6vZDNg7CRHYCK7");

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

    pub fn create(ctx: Context<Create>) -> Result<()> {
        ctx.accounts.counter.authority = ctx.accounts.authority.key();
        ctx.accounts.counter.count = 0;

        Ok(())
    }

    pub fn increment(ctx: Context<Increment>) -> Result<()> {
        ctx.accounts.counter.count += 1;
        Ok(())
    }

    pub fn decrement(ctx: Context<Increment>) -> Result<()> {
        ctx.accounts.counter.count -= 1;
        Ok(())
    }
}

#[derive(Accounts)]
pub struct Increment<'info> {
    #[account(mut, has_one = authority)]
    pub counter: Account<'info, Counter>,
    pub authority: Signer<'info>,
}

#[derive(Accounts)]
pub struct Create<'info> {
    #[account(init, payer = authority, space = 8 + 40)]
    pub counter: Account<'info, Counter>,
    #[account(mut)]
    pub authority: Signer<'info>,
    pub system_program: Program<'info, System>
}

#[account]
pub struct Counter {
    pub authority: Pubkey,
    pub count: u64,
}
deployment anchor solana
1个回答
1
投票

这可能是由于旧版本的 Solana CLI。我能够使用版本 1.10.40 重现此内容。

Devnet 刚刚升级到 1.14,因此您需要将 CLI 至少更新到 1.13,但我建议 1.14:

$ solana-install init 1.14.17
© www.soinside.com 2019 - 2024. All rights reserved.