Web3上的前端开发有可能做到这些吗



我开始对Web3的开发感兴趣,我想在这段旅程中得到一些建议来帮助我。好吧,在这个令人惊叹的教程之后,我在Solana区块链上创建了一个代币,我对Web3前端开发有以下问题:

  • 一旦用户在幻影上验证
  • 有可能获得用户钱包上的代币数量吗
  • 假设我的代币不在交易所,但我有100个单位,我想把50个单位转移到另一个钱包,这可能发生吗

最后一件很重要的事,我想知道哪些技术、文章、网站等可以帮助我建立这个平台,并了解这些主题?

一旦用户连接到Phantom,是否可以获取其钱包地址?

是的!使用钱包适配器,您可以检索连接的公钥并获取连接的令牌地址。

示例:

const { connection } = useConnection();
const { publicKey } = useWallet();
const tokenAccounts = await connection.getParsedTokenAccountsByOwner(publicKey, { programId: TOKEN_PROGRAM_ID });

是否可以获取用户钱包中的代币数量?

如果您console.log以上示例:

const tokenAccounts = await connection.getParsedTokenAccountsByOwner(new PublicKey('Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i'), { programId: TOKEN_PROGRAM_ID });
tokenAccounts.value.forEach((accountInfo) => {
console.log(`pubkey: ${accountInfo.pubkey.toBase58()}`)
console.log(`mint: ${accountInfo.account.data["parsed"]["info"]["mint"]}`);
console.log(`owner: ${accountInfo.account.data["parsed"]["info"]["owner"]}`);
console.log(`decimals: ${accountInfo.account.data["parsed"]["info"]["tokenAmount"]["decimals"]}`);
console.log(`amount: ${accountInfo.account.data["parsed"]["info"]["tokenAmount"]["amount"]}`);
console.log("====================")
});
/*
pubkey: ArbSRRSPZ5SqXjyjcip3UUZ55Eqn5AkCP4dHZNRrKBhz
mint: 8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh
owner: Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i
decimals: 6
amount: 875471
====================
pubkey: 6JbMNzmX7QrxUEL5RT9TczvTuCjXPFTDRWgCs88atmV8
mint: 4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R
owner: Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i
decimals: 6
amount: 330108
====================
pubkey: 9xqnnfeonbsEGSPgF5Wd7bf9RqXy4KP22bdaGmZbHGwp
mint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
owner: Ccyrkw1FdRVsfnt7qptyUXqyffq3i59GSPN1EULqZN6i
decimals: 6
amount: 199497145
====================
*/

假设我的代币不在交易所,但我有100个单位,我想把50个单位转移到另一个钱包,这可能发生吗?

是的,您也可以在钱包之间转移代币。

let tx = new Transaction().add(
createTransferCheckedInstruction(
tokenAccountXPubkey, // from (should be a token account)
mintPubkey, // mint
tokenAccountYPubkey, // to (should be a token account)
alice.publicKey, // from's owner
50e8, // amount, if your deciamls is 8, send 10^8 for 1 token
8 // decimals
)
);
await sendAndConfirmTransaction(connection, tx, [alice]);

我想知道哪些技术、文章、网站等可以帮助我构建它,并了解这些主题?

索拉纳食谱上有很多很棒的材料和例子。否则,我会参考其他用户给出的答案。

一旦用户在Phantom上进行身份验证,是否可以获取其钱包地址?

是的!这是可能的。与元任务类似,您可以参考phantom SDK来获取用户的公共钱包地址

关于转账,这是可能的,但您必须使用metaplex将代币从一个钱包转移到另一个钱包。

是否可以获取用户钱包中的代币数量?

为此,您必须进行一些研发,因为列出用户的所有钱包代币是一种隐私问题。

对于Web3.js资源,您可以参考

  1. 构建空间
  2. 索拉纳实验室Github Repo
  3. Chainlink教程
  4. Youtube频道:-Dapps Academy
  5. https://dev.to/jebitokdev/getting-started-with-web3-communities-and-resources-kce

相关内容

最新更新