实现版本
solana movies 是 solana 开发教程上的一个案例。
它有如下实现版本:
- rust-program 用 rust 写的智能合约,负责链上交互
- front-end 用户看到的 dapp 界面,用于创建影评并提交
- anchor-rust-program 用 anchor 框架重写智能合约
- anchor-front-end 用 anchor 重写 dapp 界面
- client 代替 dapp 界面,用 js 发起创建影评并提交
根据原始代码,我重新修改了依赖和部分代码,搞了个能跑起来的汇总版本
虽然大概意思能看懂,但是让我用 rust 重写一遍,我也不会。
rust 智能合约
用 rust 原生写智能合约时,要在 Cargo.toml
标记类型和特征
[features]
no-entrypoint = []
[lib]
crate-type = ["cdylib", "lib"]
基于 anchor 框架的智能合约
重点在于序列化和反序列化,以及排序和分页的偏移量计算。
client 代码
variant
变量是一个标志位,0 表示添加影评,1 表示更新影评。
dapp 前端代码
连接钱包和发送交易有 solana wallet adapter,但是也可以像 client 那样直接调用 @solana/web3.js 的接口,不使用现有的钱包UI和接口。
发表评论