当前位置: 首页 > news >正文

南昌房地产信息网海淀区seo搜索引擎优化企业

南昌房地产信息网,海淀区seo搜索引擎优化企业,网站 留言板 制作,安平营销型网站建设费用跟随HackQuest部署counter项目,使用 Solana 官方提供的 playgroud 。这个平台让我们的部署和测试过程变得更加简便高效。 合约代码 lib.rs中复制以下代码 use anchor_lang::prelude::*; use std::ops::DerefMut;declare_id!("CVQCRMyzWNr8MbNhzjbfPu9YVvr97…

跟随HackQuest部署counter项目,使用 Solana 官方提供的 playgroud 。这个平台让我们的部署和测试过程变得更加简便高效。

合约代码

lib.rs中复制以下代码

use anchor_lang::prelude::*;
use std::ops::DerefMut;declare_id!("CVQCRMyzWNr8MbNhzjbfPu9YVvr97onF48Lc9ZwXotpW");#[program]
pub mod counter {use super::*;pub fn initialize(ctx: Context<Initialize>) -> Result<()> {let counter = ctx.accounts.counter.deref_mut();let bump = ctx.bumps.counter;*counter = Counter {authority: *ctx.accounts.authority.key,count: 0,bump,};Ok(())}pub fn increment(ctx: Context<Increment>) -> Result<()> {require_keys_eq!(ctx.accounts.authority.key(),ctx.accounts.counter.authority,ErrorCode::Unauthorized);ctx.accounts.counter.count += 1;Ok(())}
}#[derive(Accounts)]
pub struct Initialize<'info> {#[account(init,payer = authority,space = Counter::SIZE,seeds = [b"counter"],bump)]counter: Account<'info, Counter>,#[account(mut)]authority: Signer<'info>,system_program: Program<'info, System>,
}#[derive(Accounts)]
pub struct Increment<'info> {#[account(mut,seeds = [b"counter"],bump = counter.bump)]counter: Account<'info, Counter>,authority: Signer<'info>,
}#[account]
pub struct Counter {pub authority: Pubkey,pub count: u64,pub bump: u8,
}impl Counter {pub const SIZE: usize = 8 + 32 + 8 + 1;
}#[error_code]
pub enum ErrorCode {#[msg("You are not authorized to perform this action.")]Unauthorized,
}

交换代码

client.ts中复制以下代码

const wallet = pg.wallet;
const program = pg.program;
const counterSeed = Buffer.from("counter");const counterPubkey = await web3.PublicKey.findProgramAddressSync([counterSeed],pg.PROGRAM_ID
);const initializeTx = await pg.program.methods.initialize().accounts({counter: counterPubkey[0],authority: pg.wallet.publicKey,systemProgram: web3.SystemProgram.programId,}).rpc();let counterAccount = await program.account.counter.fetch(counterPubkey[0]);
console.log("account after initializing ==> ", Number(counterAccount.count));const incrementTx = await pg.program.methods.increment().accounts({counter: counterPubkey[0],authority: pg.wallet.publicKey,}).rpc();counterAccount = await program.account.counter.fetch(counterPubkey[0]);
console.log("account after increasing ==>", Number(counterAccount.count));

部署和发布

  • 切换到左侧工具栏第二个按钮并点击 build
  • 点击deploy, 终端出现 “Deployment successful.” 即为部署成功。(这大约会消耗2~3个sol)

测试交互

切换到左侧第一个文件按钮并点击 Run ,运行client.ts文件,输出如图
在这里插入图片描述

再次执行就会开始报错

Running client…
client.ts:
Uncaught error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x0

各种求助之后,修改初始化代码,输出报错日志

try {// Initialize accountconst initializeTx = await pg.program.methods.initialize().accounts({counter: counterPubkey,authority: pg.wallet.publicKey,systemProgram: web3.SystemProgram.programId,}).rpc();} catch (error) {console.error("Error fetching counter account:", error);}

报错日志如下:

  logs: [ 'Program CVQCRMyzWNr8MbNhzjbfPu9YVvr97onF48Lc9ZwXotpW invoke [1]','Program log: Instruction: Initialize','Program 11111111111111111111111111111111 invoke [2]','Allocate: account Address { address: 8sKt2NcKbN9E2SUE6E3NgfzwGi5ByBZxHQdCw27bMef1, base: None } already in use','Program 11111111111111111111111111111111 failed: custom program error: 0x0','Program CVQCRMyzWNr8MbNhzjbfPu9YVvr97onF48Lc9ZwXotpW consumed 4867 of 200000 compute units','Program CVQCRMyzWNr8MbNhzjbfPu9YVvr97onF48Lc9ZwXotpW failed: custom program error: 0x0' ],programErrorStack: { stack: [ [Object], [Object] ] } }

根据日志信息,关键的错误是:

'Allocate: account Address { address: 8sKt2NcKbN9E2SUE6E3NgfzwGi5ByBZxHQdCw27bMef1, base: None } already in use'

这表示你尝试分配的账户地址 8sKt2NcKbN9E2SUE6E3NgfzwGi5ByBZxHQdCw27bMef1 已经被使用,因此无法进行新的初始化。这通常发生在你已经为该地址创建了账户,但可能在再次执行时未考虑到这一点。

修改initializeTx代码

let counterAccount;
try {counterAccount = await program.account.counter.fetch(counterPubkey);console.log("Counter account already exists:", counterAccount);
} catch (error) {if (error.message.includes("Account does not exist")) {console.log("Counter account does not exist, proceeding with initialization...");// Initialize accountconst initializeTx = await pg.program.methods.initialize().accounts({counter: counterPubkey,authority: pg.wallet.publicKey,systemProgram: web3.SystemProgram.programId,}).rpc();} else {console.error("Error fetching counter account:", error);}
}

执行结果:
在这里插入图片描述

修复后完整client.ts代码

const wallet = pg.wallet;
const program = pg.program;
const counterSeed = Buffer.from("counter");const [counterPubkey, bump] = web3.PublicKey.findProgramAddressSync([counterSeed],pg.PROGRAM_ID
);let counterAccount;
try {counterAccount = await program.account.counter.fetch(counterPubkey);console.log("Counter account already exists:", counterAccount);
} catch (error) {if (error.message.includes("Account does not exist")) {console.log("Counter account does not exist, proceeding with initialization...");// Initialize accountconst initializeTx = await pg.program.methods.initialize().accounts({counter: counterPubkey,authority: pg.wallet.publicKey,systemProgram: web3.SystemProgram.programId,}).rpc();} else {console.error("Error fetching counter account:", error);}
}const incrementTx = await pg.program.methods.increment().accounts({counter: counterPubkey,authority: pg.wallet.publicKey,}).rpc();counterAccount = await program.account.counter.fetch(counterPubkey);
console.log("account after increasing ==>", Number(counterAccount.count));
http://www.hkea.cn/news/413782/

相关文章:

  • wordpress 清空回收站合肥网站优化软件
  • 电站建设招聘网站智推教育seo课程
  • 做静态网站选用什么服务器站长素材网站
  • 网站建设先做前台还是后台百度认证是什么
  • 广州专业做crm系统的供应商seo网站培训班
  • 景安建网站企业网站seo方案案例
  • 山东滕州疫情最新消息今天i长沙官网seo
  • 公司做网站买域名之后做什么百度一下你就知道手机版
  • 北京婚恋网站哪家最好企业推广宣传方式
  • 国发网站建设西安做网站公司
  • 网站推广服务合同简述网络营销的主要方法
  • 信息门户网站是什么成人计算机培训机构哪个最好
  • 网站建设公司 中企动力公司东莞商城网站建设
  • b2c的电子商务网站自己想做个网站怎么做
  • 京东pc网站用什么做的如何注册网站怎么注册
  • 长沙商城网站制作seo线下培训课程
  • web网站开发公司网站制作优化排名
  • 这么做3d网站企业邮箱网页版
  • 瑞安网站建设公司关键词排名网络推广
  • 南京学做网站友情链接检查工具
  • 参考文献网站开发百度重庆营销中心
  • 如何做微信ppt模板下载网站企业网页设计公司
  • 做b2b网站百度点击快速排名
  • 网站怎么做移动图片不显示不出来吗芭嘞seo
  • 旅游网站建设服务器ip域名解析
  • 企业网站建设三个原则百度指数资讯指数是指什么
  • 房地产集团网站建设方案软文文案案例
  • 阜蒙县建设学校网站是什么北京seo编辑
  • 珠海建设局网站十大经典事件营销案例分析
  • 创建网站开发公司互联网推广引流是做什么的