(solidity javascript )Uncaught (in promise) Error: sending a transaction requires a signerエラーの原因

22/04/24 00:10
どこで出たかわからないけど、多分引数がいる場合はSignerが要るよということだと思われ。

ethers-5.2.umd.min.js:1 Uncaught (in promise) Error: sending a transaction requires a signer (operation="sendTransaction", code=UNSUPPORTED_OPERATION, version=contracts/5.2.0)
at Logger.makeError (ethers-5.2.umd.min.js:1:59669)
at Logger.throwError (ethers-5.2.umd.min.js:1:59874)
at Contract.<anonymous> (ethers-5.2.umd.min.js:1:312289)
at step (ethers-5.2.umd.min.js:1:305047)
at Object.next (ethers-5.2.umd.min.js:1:304307)
at ethers-5.2.umd.min.js:1:303953
at new Promise (<anonymous>)
at __awaiter (ethers-5.2.umd.min.js:1:303591)
at Contract.<anonymous> (ethers-5.2.umd.min.js:1:312138)
at projectAllowance (index2.js:219:35)


https://github.com/demio-se/JPYC_hackathon

で、これの原因は構造体structの配列を関数の中でmemoryとして呼び出していたから。

    struct Project {
        string toTwID;    //支援される人。お金受け取る人
        string fromTwID;   //支援する人。お金送る人
        address fromAddress;   //支援する人のウォレットアドレス
        uint256 amount;     //支援額。allowanceで取れるので、要らないかも?と思ったけど送金してもらうことになったので必要
        bool isFinish;  //プロジェクトの終了。trueなら終了
    }

-------
関数の中

Project memory tempProject = allProjects[i]; //←これが原因だった

solidityは構造体とかstringの使い勝手悪い!

もしもサポートしてリクエストしていただけたら、そのお金の5倍までの月額サブスクリプションに入って感想記事を書こうと思っています。