簡體   English   中英

如何在 Solana(客戶端,JS)中獲取對以前創建的令牌的引用

[英]How to get a reference to a former created Token in Solana (client side, JS)

我能夠創建一個令牌並將其鑄造成一個 spl 帳戶地址。 但是當我重新啟動我的程序時,我如何獲得對該令牌的引用,以便我再次鑄造?

const web3 = require("@solana/web3.js");
const splToken = require('@solana/spl-token');
const { PublicKey, Keypair, Transaction, SystemProgram, LAMPORTS_PER_SOL, sendAndConfirmTransaction, clusterApiUrl } = require("@solana/web3.js");

let secretKey = Uint8Array.from([233, 65, 11, rest of my secret]);
let fromWindowsWallet = Keypair.fromSecretKey(secretKey);

let connection = new web3.Connection(clusterApiUrl('devnet'));

(async () => {
    //create my new token mint
     let SWAB = await splToken.Token.createMint(
         connection,
         fromWindowsWallet,
         fromWindowsWallet.publicKey,
         fromWindowsWallet.publicKey,
         2,
         splToken.TOKEN_PROGRAM_ID,
     );
    console.log(SWAB.publicKey) // -> PublicKey {
                      _bn: <BN: 2643549b60882496a15407c2f1a6139dd2c4128879480b1d56fdd464550db22b>
  }
// ... continue with that Token SWAB
}

那么當我重新啟動我的程序時,我怎樣才能再次獲得對令牌 SWAB 的引用? 我試過:

let pubKey = new PublicKey("<BN: 6ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9>");
let SWAB = new splToken.Token(
        connection,
        pubKey,
        splToken.TOKEN_PROGRAM_ID,
        fromWindowsWallet
    )

但這會引發:錯誤:非 base58 字符

創建令牌后,我可以獲得公鑰:

console.log(SWAB.publicKey.toBase58())  // 3aN3KP6kQdBvTHTeK785Uuykddram97B844RoJc19VNS

然后我可以像這樣獲得對令牌的引用並繼續鑄造:

let pubKey = new PublicKey('3aN3KP6kQdBvTHTeK785Uuykddram97B844RoJc19VNS');
let SWAB = new splToken.Token(
        connection,
        pubKey,
        splToken.TOKEN_PROGRAM_ID,
        fromWindowsWallet
    )

connectionfromWindowsWallet在我的問題代碼中定義)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM