用Web3.js创建Solana代币

本文介绍在 Solana 区块链上使用web3.js创建新代币所需的步骤,使用typescript。

用Web3.js创建Solana代币
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK

本文档概述了在 Solana 区块链上使用web3.js创建新代币所需的步骤。

要遵循本教程,你需要安装以下依赖项:

  • @solana/web3js
  • @solana/spl-token

对于本教程,我选择的语言是 TypeScript。

1、web3.js创建代币的单步指南

我们将整个过程分为8个步骤,分别介绍如下

1)导入依赖包

import {
  Connection,
  Keypair,
  PublicKey,
  Transaction,
  sendAndConfirmTransaction,
} from '@solana/web3.js';
import {
  TOKEN_PROGRAM_ID,
  createMint,
  createAccount,
  mintTo,
  getOrCreateAssociatedTokenAccount,
} from '@solana/spl-token';

2)创建与 Solana 区块链的连接

在本教程中,我们将使用 Solana devnet:

const connection = new Solana.Connection(
Solana.clusterApiUrl('devnet'),
'confirmed',
);

3)配置 Mint 权限

Mint 权限是具有创建新代币权力的账户。你可以使用现有的 Solana 密钥对,也可以生成新的密钥对。

const mintAuthority = Keypair.generate();

4)使用所需配置创建新的代币铸币账户

const decimals = 6; // Set the desired number of decimal places
const mintAddress = await createMint(
  connection,
  mintAuthority, // Mint authority
  mintAuthority.publicKey, // Freeze authority (same as mint authority in this case)
  decimals,
);

5)配置总供应量

Solana 代币计划中的代币总供应量未在代币创建过程中明确设置。相反,总供应量由与代币铸造相关的所有代币账户中所有铸造代币的总和决定。

当您使用 createMint 创建新代币铸造时,初始总供应量实际上为零。当您使用 mintTo 将代币铸造到各个账户时,总供应量会相应增加。

要设置或限制代币的总供应量,你需要跟踪总铸造量,并在达到所需供应量后停止铸造新代币。

const totalSupply = 1000000 * Math.pow(10, decimals); // 1,000,000 tokens with 6 decimal places

6)获取或创建关联的代币帐户

要接收代币,用户必须拥有该特定代币的关联帐户,否则交易将失败。

幸运的是,spl-token 库提供了一个函数,允许你创建或获取关联的代币帐户。

const treasuryAccount = await getOrCreateAssociatedTokenAccount(
  connection,
  mintAuthority,
  mintAddress,
  mintAuthority.publicKey // Use the mint authority as the treasury account
);

7)将总供应量铸入关联账户

const mintTxn = await mintTo(
  connection,
  mintAuthority,
  mintAddress,
  treasuryAccount.address,
  mintAuthority.publicKey,
  totalSupply
);

8)从铸币密钥对中获取了代币的财务账户。因此,我们可以从铸币公钥中检索代币的地址。

const associatedTokenAccount = await getAssociatedTokenAddress(
    tokenAddress,
    addressToCheck,
    true,
    ASSOCIATED_TOKEN_PROGRAM_ID,
    TOKEN_PROGRAM_ID,
);

获取账户信息:

    const tokenAccountInfo = await getAccount(
      connection,
      fromAssociatedTokenAccount
    );
const mintAuthorityTokenBalance = fromTokenAccountInfo.amount.toNumber() / Math.pow(10, 6);

console.log(mintAuthorityTokenBalance)

2、结束语

在本教程中,我们讨论了使用 @solana/web3.js 和 @solana/spl-token 库在 Solana 区块链上创建新代币所需的步骤。

我们首先连接到 Solana 开发网络并设置铸币机构。然后,我们用首选的小数位数铸造了一个新代币,并设置了总供应量。

然后,我们展示了如何获取或创建关联的代币帐户,这是接收代币所需的。随后,我们将总代币供应量铸造到与铸币机构关联的 Treasury 帐户。

最后,我们演示了如何检查关联代币帐户的帐户余额以确认铸造过程是否成功。

得益于 Solana 团队提供的精心设计的 API,在 Solana 上创建新代币非常简单。通过遵循本指南中概述的步骤,开发人员可以轻松地在 Solana 区块链上创建和管理自己的代币。


原文链接:Create Tokens on Solana in 2024: A Developer's Step-by-Step Guide

DefiPlot翻译整理,转载请标明出处

通过 NowPayments 打赏