【问题标题】:Solana web3 js failed to get recent blockhash error 403Solana web3 js 获取最近blockhash 错误403 失败
【发布时间】:2023-02-01 20:31:44
【问题描述】:

我正在尝试在我的应用程序中为 phantom 实现 sendtransaction。

这是我的代码:

sendTransaction(amount, depositWallet) { (async () => {
    try {
      const resp = await window.solana.connect();
      this.wallet = resp;
      this.signInTransactionAndSendMoney(amount, depositWallet);
      console.log(amount, depositWallet)
    } catch (err) {
      console.log(err);
    }
  })();
},
signInTransactionAndSendMoney(amount, depositWallet) {
  (async () => {
    try {
      const network = "https://api.mainnet-beta.solana.com";
      const connection = new solanaWeb3.Connection(network);
      const candidate = amount * solanaWeb3.LAMPORTS_PER_SOL;
      const destPubkey = new solanaWeb3.PublicKey(depositWallet);
      const instruction = solanaWeb3.SystemProgram.transfer({
        fromPubkey: this.wallet.publicKey,
        toPubkey: destPubkey,
        lamports: candidate,
      });
      const trans = await this.setWalletTransaction(instruction, connection);
      const signature = await this.signAndSendTransaction(this.wallet, trans, connection);
    } catch (err) {
      console.log(err);
    }
  })();
},
async setWalletTransaction(instruction, connection) {
  const transaction = new solanaWeb3.Transaction();
  transaction.add(instruction);
  transaction.feePayer = this.wallet.publicKey;
  const hash = await connection.getLatestBlockhash();
  console.log(hash)
  transaction.recentBlockhash = hash.blockhash;
  return transaction;
},
async signAndSendTransaction(wallet, transaction, connection) {
  // Sign transaction, broadcast, and confirm
  const { signature } = await window.solana.signAndSendTransaction(transaction);
  await connection.confirmTransaction(signature);
  return signature;
},

但是当我尝试发送交易时我收到一个错误错误:无法获取最近的区块哈希:错误:403:{“jsonrpc”:“2.0”,“错误”:{“代码”:403,“消息”:“访问禁止,请联系您的应用程序开发人员或 support@rpcpool.com。"}, "id": "001d039f-ad38-4942-a379-5db2f7951ebf" }

【问题讨论】:

  • 与缓冲区有什么关系吗?我用 import * as buffer from "buffer" 修复了它; window.Buffer = 缓冲区.Buffer;

标签: web3js solana web3


【解决方案1】:

更改为 quicknode rpc url 解决了问题。

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2021-12-20
    • 2021-12-10
    • 2021-12-09
    • 2021-12-28
    相关资源
    最近更新 更多