', async () => { await program.rpc.create({ accounts: { counterAccount: counterAccount.publicKey, user: provider.wallet.publicKey, systemProgram: anchor.web3.SystemProgram.programId, }, signers: [counterAccount] } as any)}); it("Increment counter", async () ...
let counter_account = &mut ctx.accounts.counter_account; counter_account.count = 0; Ok(()) } create函数是RPC请求处理程序,上下文是Create 结构体。 现在已经完成了功能实现,让我们编写测试函数并启动我们的智能合约。 复制 import * as anchor from '@project-serum/anchor'; import { Program } from '...
# [account (…) ] 定义在构建上下文时Anchor 预处理的指令和约束。 接下来创建我们的函数: 复制 pubfncreate(ctx:Context<Create>)->ProgramResult{letcounter_account=&mutctx.accounts.counter_account;counter_account.count=0;Ok(()) } 1. 2. 3. 4. 5. create函数是RPC请求处理程序,上下文是Create 结...
import { Counter } from "../target/types/counter"; describe("counter", () => { const provider = anchor.AnchorProvider.local(); anchor.setProvider(provider); const program = anchor.workspace.Counter as Program<Counter>; let baseAccount = anchor.web3.Keypair.generate(); // -- new change...
最后但并非最不重要的是,在tests目录下,有程序所需的所有测试。测试对于智能合约的开发是非常关键的,因为我们无法承受其中的漏洞。 现在,让我们运行anchor build,对包含计数器程序进行构建。它将在./target/idl/counter.json下创建一个IDL(接口描述语言)。IDL 为我们提供了一个接口,在我们的程序被部署到链上后,任...
Solana是一个高性能的区块链平台,它采用了一种名为Proof of History(PoH)的共识机制,以及Tower BFT共识算法,以实现高吞吐量和低延迟的交易处理。解码Solana事务的过程如下: 获取事务:首先,需要获取要解码的Solana事务的数据。可以通过Solana的RPC接口或者区块浏览器等工具来获取事务的数据。 解析事务:将获取到的事务数...
首先,我们需要创建一个新的 Anchor 项目: 复制 anchor init counterapp 您应该会在项目结构中看到以下文件和文件夹: program:智能合约所在的目录或位置 test:Javascript测试代码 migrations:启动脚本 app:前端应用程序构建目录 现在,让我们从程序目录中找到lib.rs文件。