function _getRandomNumber() internal pure returns (uint256) { // chosen by fair dice roll. return 4; // guaranteed to be random. } function solve(uint256 guess) public { require(guess == _getRandomNumber()); solved = true; } }
Setup.sol
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.15;
import "./Random.sol";
contract Setup {
Random public random;
constructor() { random = new Random(); }
function isSolved() public view returns (bool) { return random.solved(); } }
通过solc Setup.sol --abi得到输出如下:
1 2 3 4 5 6 7 8
======= Random.sol:Random ======= Contract JSON ABI [{"inputs":[{"internalType":"uint256","name":"guess","type":"uint256"}],"name":"solve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"solved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
======= Setup.sol:Setup ======= Contract JSON ABI [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"isSolved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"random","outputs":[{"internalType":"contract Random","name":"","type":"address"}],"stateMutability":"view","type":"function"}]