Solana基础 - 使用 Solana web3 js 和 Anchor 读取账户数据
本教程详细介绍了如何通过Solana的web3 Javascript客户端直接读取账户数据,并展示了如何在Web应用的前端实现这一功能。教程中首先使用Rust代码初始化并写入数据,然后通过TypeScript读取和反序列化数据,并进一步演示了如何读取由其他Anchor程序创建的账…
欢迎所有爱好区块链技术的人加入。
CATEGORY
共 100 篇
本教程详细介绍了如何通过Solana的web3 Javascript客户端直接读取账户数据,并展示了如何在Web应用的前端实现这一功能。教程中首先使用Rust代码初始化并写入数据,然后通过TypeScript读取和反序列化数据,并进一步演示了如何读取由其他Anchor程序创建的账…
本教程详细介绍了如何在Anchor框架下向已初始化的Solana账户写入数据,并解释了相关代码的实现原理。 在之前的教程中,我们讨论了如何初始化账户以便将数据持久化存储。本教程将展示如何向我们已初始化的账户写入数据。 以下是之前关于初始化 Solana 账户的教程中的代码。我们添…
文章详细介绍了Solana区块链中数据存储的机制,特别是如何通过账户和程序来管理和初始化存储数据。文章通过对比以太坊的存储方式,深入探讨了Solana的存储模型和使用Rust语言进行账户初始化的具体步骤。 迄今为止,我们的所有教程都没有使用“存储变量”或存储任何永久性内容。 在 …
文章详细介绍了Solana区块链中的计算单元(Compute Units)概念,与以太坊的gas机制进行了对比,并探讨了计算单元的优化策略及其对交易费用的影响。 在以太坊中,交易的价格计算为 gasUsed×gasPricegasUsed×gasPrice。这告诉我们,将交易包含…
本文详细比较了Solidity和Solana智能合约中的msg.sender和tx.origin概念,并提供了在Solana中如何实现类似功能的代码示例。文章还介绍了如何在Solana中处理多个签名者以及如何实现onlyOwner功能。 在Solidity中,`msg.sende…
本文介绍了 Solana 中的日志和事件机制,解释了如何通过事件在前端传递信息,以及如何查询 Solana 的交易历史。与以太坊不同,Solana 的事件不能用于历史查询,而是更适合实时监听。 Solana 程序可以发出事件,类似于 Ethereum 发出事件,不过我们会讨论其中…
文章详细介绍了 Solana 中的系统变量(sysvars),包括如何通过 Anchor 框架访问这些变量,以及它们的功能和使用场景。 在 Solana 中,sysvar 是只读系统账户,它们使 Solana 程序能够访问区块链状态和网络信息。它们类似于 Ethereum 的全局…
文章详细介绍了 Solidity 中的块变量在 Solana 中的类比实现,包括 block.timestamp、block.number、block.coinbase 等,并提供了具体的代码示例和说明。 今天我们将覆盖 Solidity 中所有区块变量的类比。并不是所有的变量都…
本文详细讲解了如何将Solidity中的函数可见性和合约继承概念化到Solana中,并提供了Rust语言中实现这些概念的代码示例。 今天我们将学习如何在 **Solana** 中构思 Solidity 的函数可见性和合约继承。Solidity 中有四种函数可见性级别,它们是: -…
文章详细介绍了 Rust 语言中的 attribute-like 和 custom derive 宏的使用方法,通过具体代码示例展示了如何通过宏在编译时修改结构体,并解释了宏的工作原理和实现方式。 Rust 中的类似属性和自定义派生宏用于在编译时以某种方式修改一段 Rust 代码…
本教程解释了函数与函数式宏之间的区别。例如,为什么 `msg!` 后面有一个感叹号?本教程将解释这种语法。作为一种强类型语言,Rust 不能接受函数的任意数量的参数。例如,Python 的 `print` 函数可以接受任意数量的参数: `!` 表示“函数”是一个函数式宏。Rust…
本文详尽地介绍了 Rust 的所有权、借用及其相关概念,包括 Rust 的复制类型、可变性、泛型、Option 和 Result 等内容。通过示例代码,深入解释了 Rust 的独特语法和其内在逻辑,尤其适合有 Solidity 或 JavaScript 背景的开发者。此外,文章结…
本教程深入探讨了Solidity和Rust在控制流、数组、映射、结构体和常量等方面的语法对比,旨在帮助掌握Solidity的开发者快速上手Rust编程。 本教程介绍了在 Solidity 中最常用的语法,并展示了其在 Rust 中的等价实现。 如果你想了解 Rust 与 Soli…
本文详细讲解了如何在Solana上使用Anchor框架部署程序,并解释了Solana程序的可变性和与Ethereum的差异。通过代码示例和命令行操作,展示了程序的部署、升级和测试过程。 在本教程中,我们将从幕后看看 Anchor 如何部署 Solana 程序。 让我们看看 Anc…
文章详细介绍了在 Solana 的 Anchor 框架中如何处理函数参数的限制,类似于以太坊中的 require 语句。通过代码示例展示了如何使用 require! 宏和错误处理机制来确保函数参数的有效性,并解释了 Solana 和以太坊在错误处理上的差异。 在以太坊中,我们经常…
本文详细介绍了 Solana 如何使用 IDL(接口定义语言)来描述如何与 Solana 程序交互,并通过 Anchor 框架自动生成 IDL 文件。文章还展示了如何通过 Rust 编写 Solana 程序,并通过 TypeScript 单元测试进行验证。 IDL(接口定义语言)…
本文详细介绍了如何在Solana平台上构建程序,其功能与Solidity合约类似,并探讨了Solana如何处理算术溢出问题。文章通过具体示例展示了如何在Rust中实现函数,处理数据类型,以及进行单元测试,同时强调了计算成本及浮点操作的性能限制。 今天我们将学习如何创建一个Sola…
本文详细介绍了如何安装 Solana 开发环境,并提供了一个从安装到运行“Hello World”程序的完整教程,包含问题排查和常见错误的解决方案。 这是一个 Solana 的 Hello World 教程。我们将指导你完成安装 Solana 的步骤并解决可能出现的问题。 **如…
https://solana.com/zh/developers/cookbook/tokens/fetch-all-nfts
如果你拥有 NFT 的铸币密钥,你可以通过偷看该铸币密钥的最大代币账户来找到其当前所有者。 请记住,NFT 的供应量为 1,并且它们是不可分割的,这意味着在任何时间点只有一个代币账户会持有该代币,而该铸币密钥的所有其他代币账户的余额为 0。 一旦确定了最大的代币账户,我们就可以检…