1

Go では、go-ethereumを使用してイーサリアム スマート コントラクトからデータを読み取ります。私のスマートコントラクトはトリュフで維持されています。

候補者 ID に基づいて候補者情報を取得しようとしています。指定された id が存在するかどうかを確認する修飾子が solidity にあります。

    /**
     *  Check if candidate exists
     */
    modifier candidateExists(uint256 candidateId) {
        require(candidates[candidateId].exists, "No Candidate.");

        _;
    }

有効な候補ID を渡すと、すべてが正常に機能します。ただし、候補が存在しない場合は例外が発生し、元に戻ります。以下は、ganache-cli コンソールに記録されたエラーです。

(node:31528) UnhandledPromiseRejectionWarning: Error: nonce generation function failed or private key is invalid
    at Object.t.sign (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:37:75864)
    at Object.sign (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:37:64863)
    at Object.t.ecsign (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:37:185991)
    at e.sign (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:17:104733)
    at e.sign (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:10:92594)
    at e.t.hash (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:37:243491)
    at e.u [as hash] (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:10:89447)
    at c.combine (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:2:159323)
    at new c (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:2:158990)
    at Function.c.fromResults (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:2:160122)
    at readyCall (/usr/local/lib/node_modules/ganache-cli/build/ganache-core.node.cli.js:17:120626)
(node:31528) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 26)
(node:31528) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


4

0 に答える 0