本文将阐释 Rust 中函数与类函数宏的区别,例如为何 msg! 后带有感叹号 !。我们将深入探讨这种语法的意义及其应用。
在 Rust 中,属性宏和自定义派生宏用于在编译时处理代码,通常为结构体添加功能或修改其定义。本文将解析这些宏的工作原理,并介绍与结构体相关的 impl 和 trait。
本文将探讨如何在 Rust 和 Solana 中实现类似 Solidity 的函数可见性,以及如何通过模块化复用来模拟“继承”。
本文将介绍 Solana 中与 Solidity 区块变量对应的概念。
在 Solana 中,系统变量(sysvars)是只读的系统账户,为程序提供区块链状态和网络信息的访问权限。它们类似于以太坊的全局变量,但每个系统变量拥有唯一的公钥地址,类似以太坊的预编译合约。
本节将探讨 Solana 中的日志和事件日志,以及如何查询历史交易。
在 Solidity 中,msg.sender 表示调用智能合约函数的地址,tx.origin 表示签署交易的钱包地址。本文将探讨 Solana 中类似的调用者识别机制及 onlyOwner 模式的实现。
概述Kinobi是一组库,它是一个强大的工具,可以用来为现有的Solana程序生成JavaScript、Umi(JavaScript)和Rust客户端
本文对比了以太坊和 Solana 的交易费用与计算模型,深入探讨了 Solana 计算单元(CU)的使用、优化策略及字节码执行逻辑,并通过示例验证了 CU 消耗与费用无关的特点,同时介绍了 eBPF 和 SBF 的技术背景。
本文对比了以太坊和 Solana 的数据存储机制,介绍了 Solana 账户模型的统一设计及其与以太坊存储槽的差异,并通过将 Solidity 示例转换为 Anchor 代码,详细讲解了 Solana 中账户初始化的必要性、实现步骤及测试方法,强调了其显式初始化和防止重复初始化的特性。
本文基于前述 Solana 账户初始化内容,扩展了如何通过 Anchor 框架实现账户数据的读写操作,通过新增 set() 函数展示数据写入流程,优化代码结构,并介绍了使用命令行和程序内方法读取账户数据的技术细节,最终实现了一个简单的计数器功能。
本文介绍了通过 Solana Web3.js 和 Anchor 从前端读取账户数据的三种方法:自家 Anchor 程序用 fetch、跨程序读取需 IDL、任意账户用 Web3.js 自定义反序列化,强调了序列化与 IDL 的作用,为 Solana dApp 开发提供指导。
本文通过在 Solana 的 Anchor 框架中填充 seeds 参数,结合 Rust 和 Typescript 代码示例,展示了如何模拟 Solidity 中的映射表和嵌套映射表功能,利用 seeds 生成唯一账户地址实现键值存储。
本文介绍了在 Solana Anchor 中使用 Rust 读取账户余额的方法,阐释了 UncheckedAccount 的作用与安全性,解释了无需 [account] 结构体的原因,并提及账户余额与免租机制的相关注意事项。
通过本教程,你将轻松上手 Anchor 框架,学习如何在 Solana 上创建、部署、测试智能合约,并通过实际示例掌握常用命令和调试技巧。