BENDOG 中文交流社区

Solana链上代币 | Solana汉文大全

发布日期:2024-09-19 18:34    点击次数:163
Solana链上代币 ​

代币是代表不同类别钞票扫数权的数字钞票。 代币化使产权的数字化成为可能,是措置可替代和不行替代钞票的基本构成部分。

同质化代币代表谈判类型和价值的可互换和可分割钞票(举例 USDC)。

非同质化代币(NFT)代表不行分割钞票(举例艺术品)的扫数权。

本节将先容代币在 Solana 上奈何暗意的基础常识。这些被称为 SPL (Solana 门径库) 代币

代币门径包含与辘集上的代币(同质化和非同质化)交互的扫数教导逻辑。

铸币账户代表一种特定类型的代币,并存储干系代币的全局元数据, 举例总供应量和铸币权限(授权创建代币新单元的地址)。

代币账户追踪特定地址领有特定类型代币(铸币账户)的单元数目的个东谈主扫数权。

重心 ​

代币代表对同质化(可互换)或非同质化(独一)钞票的扫数权。

代币门径包含与辘集上同质化和非同质化代币交互的扫数教导。

代币膨胀门径是代币门径的新版块,它包含其他功能,同期保握谈判的中枢功能。

Mint账户代表辘集上的独一代币,并存储全局元数据,举例总供应量。

代币账户追踪特定铸币账户的个东谈主代币扫数权。

关联代币账户是使用源自扫数者和铸币账户地址的地址创建的代币账户。

代币门径 ​

代币门径 包含与辘集上的代币(同质化和非同质化)交互的扫数教导逻辑。 Solana上的扫数代币试验上是代币推敲领有的 数据账户。

您不错在 此处 找到代币门径诠释的竣工列表。

代币门径

一些常用的诠释包括:

InitializeMint:创建一个新的铸币账户来代表一种新式的代币。InitializeAccount:创建一个新的代币账户来握有特定类型代币(铸币厂)的单元。MintTo:创建特定类型代币的新单元,并将其添加到代币帐户。这加多了代币的供应,况兼只可由铸币账户的铸币厂机构完成。Transfer:将特定类型代币的单元从一个代币账户调换到另一个代币账户。Mint账户 ​

Solana 上的代币由代币推敲领有的铸币账户 的地址独一标记。 此帐户试验上是特定代币的全局计数器,并存储以下数据:

供应量:代币的总供应量代币精度:代币极少精度位数铸币权限:被授权创建代币新单元的账户,从而加多供应量冻结权限:有权冻代币从“代币账户”调换的账户

Mint Account

存储在每个铸币厂帐户上的竣工防卫信息包括以下内容:

动作参考,这里是 USDC铸币账户. 的Solana Explorer聚合。

代币账户 ​

要追踪特定代币的每个单元的个东谈主扫数权,必须创建代币推敲领有的另一种类型的数据帐户。此帐户称为 代币帐户 。

账户上最常援用的数据包括:

锻造: 代币账户握有的代币类型扫数者:被授权将代币转出代币账户的账户金额:代币账户刻下握有的代币单元数目

代币账户

存储在每个代币账户上的竣工防卫信息包括以下内容:

为了让钱包领有某个代币的单元数目,它需要为特定类型的代币(铸币)创建一个代币账户,将钱包指定为代币账户的扫数者。一个钱包不错为统一类型的代币创建多个代币账户,但每个代币账户只可由一个钱包领有,并握有一种代币的数目。

Account Relationship

关联代币账户 ​

为了简化为特定铸币和扫数者查找代币账户地址的历程,咱们鄙俗使用关联代币账户。

关联代币账户是一种代币账户,其地址是使用扫数者的地址和铸币账户的地址详情派生的。 您不错将关联代币账户视为特定铸币厂和扫数者的“默许”代币账户。

伏击的是要了解关联的代币账户不是不同类型的代币账户。它仅仅一个具有特定地址代币帐户。

关联代币账户

这在 Solana 诞生中引入了一个要道观念:门径派生地址(PDA。 从观念上讲,PDA提供了一种使用一些预界说输入生成地址的详情味模式。这使咱们约略在以后松驰找到帐户的地址。

这是一个 Solana Playground 示例, 它派生了 USDC 关联代币账户地址和扫数者。它将经久为统一铸币和扫数者生成 谈判的地址。

具体而言,关联代币账户的地址是使用以下输入派生的。底下是一个Solana Playground示例,它生成的地址与上一个示例谈判。

关于两个钱包握有谈判类型代币的单元,每个钱包皆需要我方的代币账户来取得特定的铸币账户。 下图演示了此帐户关系膨胀。

Accounts Relationship Expanded

代币示例 ​

spl-token CLI 可用于测验 SPL 代币。 鄙人面的示例中,咱们将使用 Solana Playground 结尾径直在浏览器中运行 CLI 号令,而无需在土产货装配 CLI。

创建代币和账户需要 SOL 用于账户房钱、进款和交往用度。若是这是您第一次使用 Solana Playground, 请创建一个 Playground 钱包并在 Playground 结尾中运行该 solana airdrop号令。您还不错使用环球 Web 水龙头 获取 devnet SOL。

运行 spl-token --help以获取可用号令的竣工诠释。

或者,你不错使用以下号令在土产货装配 spl-token CLI。这需要最先 装配 Rust。

创建新代币 ​

要创建新代币(mint 帐户 ),请在 Solana Playground 结尾中运行以下号令。

您应该会看到访佛于以下内容的输出。您不错使用 Address 和 Signature. 在 Solana Explorer 上查验代币和交往防卫信息。

鄙人面的示例输出中,新代币的独一标记符(地址)为 99zqUzQGohamfYxyo8ykTEbi91iom3CLmwCA75FK5zTg 。

新代币领先莫得供应。你不错使用以下号令查验代币确刻下供应情况:

对新创建的代币运行 supply 号令将复返以下 0 值:

在后台,创建一个新的铸币账户需要发送带有两条教导的交往。这是 Solana Playground 上的一个 Javascript 示例。

调用系统门径创建一个具有饱胀空间容纳铸币帐户数据的新帐户, 然后将扫数权调换到代币门径。

调用代币门径将新账户的数据启动化为铸币账户

创建代币账户 ​

要握有特定代币的单元,您必须最先创建一个代币账户。 若要创建新的代币帐户,请使用以下号令:

举例,在 Solana Playground 结尾中运行以下号令:

复返以下输出:

AfB7uwBEsGtrrBqPTVqEgzWed5XdYfM1psPNLmf7EeX9 是为保存 create-account号令中指定的代币单元而创建代币帐户的地址。

默许情况下,该 create-account号令会创建一个关联代币帐户, 并将你的钱包地址动作代币帐户扫数者。

您不错使用以下号令创建具有不同扫数者的代币帐户:

举例,运行以下号令:

复返以下输出:

Hmyk3FSw4cfsuAes7sanp2oxSkE9ivaH6pMzDzbacqmt is the address of the token account created to hold units of the token specified in the create-account command (99zqUzQGohamfYxyo8ykTEbi91iom3CLmwCA75FK5zTg) and owned by the address specified following the --owner flag (2i3KvjDCZWxBsqcxBHpdEaZYQwQSYE6LXUMx5VjY5XrR). This is useful when you need to create a token account for another user.

在后台,创建一个关联的代币账户需要调用 关联代币门径 的单个教导。这是 Solana Playground 上的一个 Javascript 示例。

关联代币门径使用跨门径调用 来处理:

调用系统门径 以使用提供的 PDA 动作新帐户的地址创建新帐户

调用代币门径 以启动化新帐户的代币帐户数据。

或者,使用就地生成的密钥对(而不是关联的代币账户)创建新的代币账户需要发送包含两条教导的交往。 这是 Solana Playground 上的一个 Javascript 示例。

调用系统门径创建一个具有饱胀空间用于代币帐户数据的新帐户,然后将扫数权调换给代币门径。

调用代币门径,将新账户的数据启动化为代币账户

锻造代币 ​

若要创建一定数目的代币,请使用以下号令:

举例,运行以下号令:

复返以下输出:

99zqUzQGohamfYxyo8ykTEbi91iom3CLmwCA75FK5zTg 是锻造代币的铸币账户的地址(加多总供应量)。

AfB7uwBEsGtrrBqPTVqEgzWed5XdYfM1psPNLmf7EeX9是你的钱包代币账户的地址,代币单元正在被锻造到(加多金额)。

要将代币锻造到其他代币账户,请指定预期收件东谈主代币账户的地址。举例,运行以下号令:

复返以下输出:

99zqUzQGohamfYxyo8ykTEbi91iom3CLmwCA75FK5zTg is the address of the mint account that tokens are being minted for (increasing total supply).

Hmyk3FSw4cfsuAes7sanp2oxSkE9ivaH6pMzDzbacqmt is the address of the token account that units of the token are being minted to (increasing amount).

在后台,创建代币的新单元需要调用代币门径上的 MintTo 教导。该教导必须由铸币厂当局签署。该教导将代币的新单元锻造到代币账户中,并加多铸币账户的总供应量。这是 Solana Playground上的一个 Javascript 示例。

调换代币 ​

若要在两个代币账户之间调换代币数目,请使用以下号令:

举例,运行以下号令:

复返以下输出:

AfB7uwBEsGtrrBqPTVqEgzWed5XdYfM1psPNLmf7EeX9 是要从中调换代币的代币账户的地址。 这将是要调换的指定代币的代币帐户的地址。

Hmyk3FSw4cfsuAes7sanp2oxSkE9ivaH6pMzDzbacqmt 是要将代币调换到的代币账户的地址。

在后台,调换代币需要调用代币门径上的 Transfer 教导。此教导必须由发送方的代币账户的扫数者签名。 该教导将代币单元从一个代币账户调换到另一个代币账户。这是 Solana Playground 上的一个 Javascript 示例。

请务必了解,发送方和摄取方皆必须具有要传输的特定类型的代币的现存代币帐户。 发送方不错在交往中包含其他诠释,以创建摄取方的代币账户,该账户鄙俗是关联代币账户。

创建代币元数据 ​

代币膨胀推敲允许将其他可自界说的元数据(举例称呼、标记、图像聚合)径直存储在 Mint 帐户上。

若要创建启用了元数据膨胀的新代币,请使用以下号令:

该号令复返以下输出:

BdhzpzhTD1MFqBiwNdrRy4jFo2FHFufw3n9e8sVjJczP是在启用元数据膨胀的情况下创建的新代币的地址。

一朝创建启用了元数据膨胀的新代币后,请使用以下号令启动化元数据。

代币URI鄙俗是指向要与代币关联的链下元数据的聚合。你不错在 此处 找到JSON局势的示例。

举例,运行以下号令会将额外的元数据径直存储在指定的铸币帐户上:

然后,您不错在资源措置器中查找铸币帐户的地址以查验元数据。举例,这是在 SolanaFm 资源措置器上启用元数据膨胀时创建的代币。

干系防卫信息,请参阅 元数据膨胀指南 。 干系各式代币膨胀的更多防卫信息,请参阅代币膨胀 初学指南 和 SPL文档。



上一篇:没有了
下一篇:没有了