本文深入探讨了Solana中跨程序调用(CPI)的实现方法,重点介绍了如何在没有目标程序源代码的情况下调用程序,并分析了调用Anchor程序和原生Rust程序的差异。文章通过示例代码,详细解释了Anchor程序的discriminator机制以及数据格式要求,并对比了原生Rust程序在CPI方面的灵活性。文章还提供了实际的代码示例和截图,帮助读者理解和实践。
本文介绍了在 Solana 上从程序 A 调用程序 B 的 CPI (Cross-Program Invocation) 技术,讨论了在没有程序 B 源代码的情况下如何调用它,并比较了调用 Anchor 框架和 Native Rust 构建的程序的差异。
本文为从 Solidity 或 JavaScript 背景转向 Rust 的开发者解析了 Rust 中常见的语法特性,包括所有权与引用(& 和 *)、mut 可变性、泛型(<T>)、unwrap() 和 ? 运算符,帮助理解其逻辑并适应 Rust 的编程范式。
本文将阐释 Rust 中函数与类函数宏的区别,例如为何 msg! 后带有感叹号 !。我们将深入探讨这种语法的意义及其应用。
在 Rust 中,属性宏和自定义派生宏用于在编译时处理代码,通常为结构体添加功能或修改其定义。本文将解析这些宏的工作原理,并介绍与结构体相关的 impl 和 trait。
本文将探讨如何在 Rust 和 Solana 中实现类似 Solidity 的函数可见性,以及如何通过模块化复用来模拟“继承”。
本文将介绍 Solana 中与 Solidity 区块变量对应的概念。
在 Solana 中,系统变量(sysvars)是只读的系统账户,为程序提供区块链状态和网络信息的访问权限。它们类似于以太坊的全局变量,但每个系统变量拥有唯一的公钥地址,类似以太坊的预编译合约。
在 Solidity 中,msg.sender 表示调用智能合约函数的地址,tx.origin 表示签署交易的钱包地址。本文将探讨 Solana 中类似的调用者识别机制及 onlyOwner 模式的实现。
用Go监控PumpSwap流动性:三步搞定
概述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 开发提供指导。