ホームページ  >  に質問  >  本文

Solidity から Javascript の戻り値の型に関する問題

まず、問題を理解しやすくするために、問題の理解に役立つ機能のみを残しておきます。このコードにより、配列内に NFT を作成できます。最初の NFT の idToken は 0 です。 [コントラクトからデータを取得] ボタンをクリックすると、パラメーター 0 を readContract(tokenid) JavaScript 関数に渡して、Power 値、uint8 (ランダムに生成、0 ~ 100 の値) HTML ファイルを表示したいと考えています。残念ながら、バグが発生し、それを解決するためにさまざまな方法を試しましたが成功しませんでした。コントラクトと JavaScript は正しく接続されているため (これを検証する connectContract() 関数で証明されています)、ABI とアドレスは問題の一部ではありません。 readContract() 関数は、Solidity コントラクトに記述された getNFTPower メソッドを使用することになっていますが、何かが間違っているようです。戻り値が無効です。でも私にとっては、彼らは「ははは」です… また、コードの最初の行の前後に readContract() 関数にいくつかの console.log ステートメントを挿入してみました。 const power = wait window.contract.methods.getNFTPower(tokenId).call(); このステートメントの後に console.log 出力が表示されないため、問題はそこで発生しているようです。

誰かが私にヒントを与えてくれることを願っています..ありがとう。

次のエラーのスクリーンショット

コードの次の部分。

SOLIDITY コード

リーリー

HTML/JS

リーリー

関数 readContract() をさまざまな方法で書き直そうとしましたが、役に立ちませんでした。私の目標は、「コントラクトからデータを取得」ボタンをクリックし、パラメーターとして渡している NFT の tokenId の POWER 値を表示することです (上記のコードでは、最初の NFT、tokenId = 0)。

P粉482108310P粉482108310276日前391

全員に返信(1)返信します

  • P粉262926195

    P粉2629261952024-01-17 22:42:01

    最も一般的な理由は 2 つあります:

    1. abi を使用していて、契約アドレスが正しい場合。
    2. 正しいネットワークを選択する場合、たとえば、契約がテストネット上にある場合はテストネットを選択し、契約がメインネット上にある場合はメインネットを選択できます。

    返事
    0
  • キャンセル返事