温馨提示:这篇文章已超过446天没有更新,请注意相关的内容是否还可用!
摘要:Solana主网支持通过自定义RPC进行转账操作,本操作指南提供详细的步骤与教程。用户可按照指南中的步骤,通过自定义RPC完成Solana主网的转账操作。该指南简单易懂,方便用户快速掌握Solana主网自定义RPC转账的方法。
Solana主网允许用户使用自定义的RPC服务进行转账操作,本指南详细介绍了如何通过配置自定义RPC服务完成转账,为用户提供在Solana主网上进行金融交易的明确路径。
在使用浏览器直接连接主网的RPC服务器时,可能会遇到403错误,为了解决这个问题,可以选择更换RPC服务器,并注册免费的RPC服务器服务。
免费RPC服务器
Solana RPC服务器允许开发者访问区块链数据,Solana主网提供了一个RPC端点,但设置了网络访问限制,为了开发Solana应用程序,最好拥有自己的RPC服务器,根据“How to run a Solana RPC node”这篇文章,建立自己的RPC服务器需要较高的硬件规格,费用较高,幸运的是,一些公司提供了免费RPC服务器服务,以下是经过测试、提供稳定服务的Solana RPC服务器:
Chainstack每月免费额度为300万个请求。
QuickNode每月免费额度为1000万个请求。
Sol转账代码
以下是使用Solana Wallets和Web3.js库进行转账的示例代码,请替换其中的“接收地址”和RPC链接为实际的值。
import { useWallet } from 'solana-wallets-vue'
import { Connection, clusterApiUrl, Keypair, SystemProgram, Transaction, PublicKey } from '@solana/web3.js'
const { publicKey, connected, sendTransaction } = useWallet()
const onClick = async () => {
if (!publicKey) {
console.log('错误', '发送交易:未连接钱包!')
return
}
let signature = ''
try {
// 发送1个lamport到随机账户
// 参考:https://solanacookbook.com/references/basic-transactions.html#如何发送sol
const account = Keypair.generate() // 生成随机账户
const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: publicKey.value, // 发送方公钥
toPubkey: new PublicKey("接收地址"), // 接收方公钥,请替换为实际值
lamports: 1_000_000, // 转账金额,单位为lamport
})
)
// 请替换为实际的RPC链接和服务端点
const connection = new Connection(
"https://solana-mainnet.core.chainstack.com/xxx",
{ wsEndpoint:'wss://solana-mainnet.core.chainstack.com/ws/xxx' } // 请替换为实际的WebSocket链接和服务端点
)
signature = await sendTransaction(transaction, connection) //发送交易并获取签名
await connection.confirmTransaction(signature, 'confirmed') //确认交易状态为已确认
console.log("交易成功")
} catch (error) {
//捕获错误并输出错误信息以及签名信息,方便调试和排查问题
console.log('错误',交易失败! ${error?.message} - 签名: ${signature}
)
}
}
上述代码中的“接收地址”和RPC链接需要替换为实际的值,确保在进行金融交易时采取适当的安全措施,确保钱包和密钥的安全。
还没有评论,来说两句吧...