我想在 solana 上铸造一个新的代币我如何使用 solana-web3.js 做到这一点?

问题描述

我正在使用 solana-web3.js,但找不到关于如何创建和铸造我自己的令牌的任何示例。这样做的最佳方法是什么?

解决方法

为此,您还需要使用我们的令牌程序 js 绑定。您可以通过 npm 导入它们,如下面的示例代码所示。

const web3 =  require('@solana/web3.js');
const splToken = require('@solana/spl-token');

(async () => {

    //create connection to devnet
    const connection = new web3.Connection(web3.clusterApiUrl("devnet"));

    //generate keypair and airdrop 1000000000 Lamports (1 SOL)
    const myKeypair = web3.Keypair.generate();
    await connection.requestAirdrop(myKeypair.publicKey,1000000000);

    console.log('solana public address: ' + myKeypair.publicKey.toBase58());

    //set timeout to account for airdrop finalization
    let mint;
    var myToken
    setTimeout(async function(){ 

        //create mint
        mint = await splToken.Token.createMint(connection,myKeypair,myKeypair.publicKey,null,9,splToken.TOKEN_PROGRAM_ID)

        console.log('mint public address: ' + mint.publicKey.toBase58());

        //get the token accont of this solana address,if it does not exist,create it
        myToken = await mint.getOrCreateAssociatedAccountInfo(
            myKeypair.publicKey
        )

        console.log('token public address: ' + myToken.address.toBase58());

        //minting 100 new tokens to the token address we just created
        await mint.mintTo(myToken.address,[],1000000000);

        console.log('done');

    },20000);

})();