Mil*_*iez 4 solana solana-program-library solana-web3js anchor-solana
我来自以太坊环境,Solana 概念有点令人困惑。我找到了各种指导代码步骤的教程,但并没有真正解释逻辑背后的概念。
据我了解,在 Solana 中,我们有程序,它们不包含数据,只是逻辑 - 网络中的可执行实体。然后我们有帐户,它实际上包含数据。
我已经阅读了 Solana 文档和程序库(例如Token Program),但我仍然有一些理解上的空白。
我必须建立一个自动化的 NFT 铸造管道,但我对代币、账户和关联账户的概念有点迷失。
现在,如果我按照令牌计划教程(上面链接)进行操作,它将引导我完成:
所以,我想知道
mintTo函数,在上面来自 Solana 文档的链接教程中使用。这是将代币转移到另一个钱包的操作吗?该示例实际上将其转移(铸造)到关联帐户。这里的逻辑是什么?这里有很多问题要解决,所以让我们一点一点地讲。
最重要的是“帐户”一词的重载,它意味着许多不同的东西。Solana 中的帐户就像普通操作系统中的文件,它可以包含程序定义的任何数据。代币计划定义:
关键是这些都是账户。所以为了回答你的问题:
一旦我创建了铸币厂并在 Solscan 中搜索它,它就会打开一个帐户实体。那么,铸币其实并不是一种代币,而只是一个保存数据的账户?(例如这里)。另一方面,我实际上可以在 Solscan 中找到 Token 实体。有什么不同?
在此示例中,JAf858mSrDuQuHQCVqfA3KN8PNaVxZokMVNAJiC3zMpr是铸币地址(或代币类型),4FLiMhW2Weagy8LjtMCVkFQkLrB3zmF2VUcJDq2NQcJN是用户持有该代币类型的代币地址。Solscan 将此称为“令牌帐户”。
这个令牌(或帐户)没有任何元数据......实际上什么都没有。它就像一个数据占位符。它是已经铸造的代币还是半成品的代币?如果是后者,那么我之后是否必须附加元数据?
正确,帐户 at4FLiMhW2Weagy8LjtMCVkFQkLrB3zmF2VUcJDq2NQcJN没有元数据,铸币厂也没有JAf858mSrDuQuHQCVqfA3KN8PNaVxZokMVNAJiC3zMpr。元数据附加在单独的帐户中,就像 Metaplex 令牌元数据标准中一样。在该模型中,如果您拥有铸币权,则可以将其附加到铸币厂。
关联账户有什么用?
关联代币账户是一个标准,定义了用于为给定钱包持有特定类型代币的“规范”账户,以便更容易地找到向用户发送特定类型代币的位置。这样,只要有了您的钱包地址E5GvXygLz1AbCFqtcp14feEo8hy6YAv8wr74Xnpo1qBH,我就知道通过派生关联的代币帐户将任何类型/铸币的代币发送到哪里。4FLiMhW2Weagy8LjtMCVkFQkLrB3zmF2VUcJDq2NQcJN是 token mint 的派生地址JAf858mSrDuQuHQCVqfA3KN8PNaVxZokMVNAJiC3zMpr。
SPL 库有一个 mintTo 函数,在上面来自 Solana 文档的链接教程中使用。这是将代币转移到另一个钱包的操作吗?该示例实际上将其转移(铸造)到关联帐户。这里的逻辑是什么?
mintTo创建全新的代币,并将其放入持有账户中,根本不进行任何转账。
如果我使用公共 Metaplex 程序来铸造代币,并且部署自己的锚定程序 - 该程序是否用于将元数据添加到铸造的代币中?这是什么概念啊,没明白。
您不需要新的元数据程序——Metaplex 令牌元数据程序可以为您做到这一点。与其他程序一样,它是一个无状态程序,定义了如何将数据写入帐户的逻辑。在这种情况下,该数据是代币铸造的元数据。
当我准备好 NFT(铸造+元数据)并且想将其转移到其他人的钱包时,我是否真的必须为该钱包创建一个关联帐户,然后将代币转移到该帐户?基本概念是什么?
这是最好的做法。您从一个关联令牌帐户转移到另一个关联令牌帐户,如果目标用户的关联令牌帐户尚不存在,您可以使用关联令牌帐户程序创建它。它将在地址(例如 )创建一个新的代币帐户4FLiMhW2Weagy8LjtMCVkFQkLrB3zmF2VUcJDq2NQcJN,并将其分配给正确的所有者(例如 )E5GvXygLz1AbCFqtcp14feEo8hy6YAv8wr74Xnpo1qBH。
您可以在https://github.com/solana-labs/solana-program-library/blob/7caf27cca6a9f58055f93517774318eb2b2f97bf/token/program/src/processor.rs#L516找到所有用于铸造的代币程序逻辑,并在https上找到用于传输的所有代币程序逻辑。 ://github.com/solana-labs/solana-program-library/blob/7caf27cca6a9f58055f93517774318eb2b2f97bf/token/program/src/processor.rs#L222以及相关的令牌帐户程序https://github.com/solana-实验室/solana-程序库/blob/7caf27cca6a9f58055f93517774318eb2b2f97bf/关联令牌帐户/program/src/processor.rs#L66
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |