TypeError:在 solana RPC 请求中传递 BigNumber 时,这在 rect js 中未定义

Posted

技术标签:

【中文标题】TypeError:在 solana RPC 请求中传递 BigNumber 时,这在 rect js 中未定义【英文标题】:TypeError: this is undefined in rect js while passing BigNumber in solana RPC Request 【发布时间】:2022-01-10 14:21:04 【问题描述】:

在向 solana 智能合约中的函数发出 RPC 请求时,我发现这在 BN 中是未定义的

''' 让 token1Amount = BN(token1_amount); 让 token2Amount = BN(token2_amount)

  const add_liquidity = await router_program.rpc.addLiquidity(
    token1Amount,
    token2Amount,
    
      accounts: 
        // poolAccount: pool_Account.publicKey, //account which stores the individual pair data
        userToken1Account: usetoken1_account,
        userToken2Account: usetoken2_account,
        poolToken1Account: new PublicKey(tokenaccount_1),
        poolToken2Account: new PublicKey(tokenaccount_2),
        owner: provider.wallet.publicKey,
        tokenProgram: TOKEN_PROGRAM_ID,
        // systemProgram : SystemProgram.programId ,
        // associatedTokenProgram: spl.ASSOCIATED_TOKEN_PROGRAM_ID,
        // rent: anchor.web3.SYSVAR_RENT_PUBKEY,
        tokensProgram: TOKEN_ID,
        // poolProgram: pair.programId,
        // pairAccount: pairAccount.publicKey
      ,
      // signers: [provider]
    
  );

'''

【问题讨论】:

【参考方案1】:

这是在黑暗中拍摄,但我认为您需要 new 以便您的 BNs 具有 this 上下文,因此请尝试:

let token1Amount = new BN(token1_amount);
let token2Amount = new BN(token2_amount);

【讨论】:

以上是关于TypeError:在 solana RPC 请求中传递 BigNumber 时,这在 rect js 中未定义的主要内容,如果未能解决你的问题,请参考以下文章

Solana RPC API中文文档

如何通过 Phantom 钱包集成使用 Vanilla JS 和 JSON-RPC 获取 Solana 帐户信息和/或 SOL 余额?

Solana - 如何确定最终性

Matic: matic挖矿指南,rpc配置,挖矿教程...跑步入场了

如何在 Windows 上安装 Solana?

Solana 在 Linux / Ubuntu 块存储错误上启动 solana-test-validator