MacOS 安装 solidity

本文介绍了如何在Mac环境下使用Homebrew安装Node.js和Solidity,以及如何编译和生成ABI文件。示例提供了一个简单的智能合约代码,展示了如何定义状态变量、修改器和函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 安装node

brew install node

  1. 安装solc,solc-cli

npm install -g solc
npm install -g solc-cli

  1. 安装solidity

brew tap ethereum/ethereum
brew install solidity
brew link --overwrite solidity

  1. 写一个简单的合约并保存为demo.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

contract MyContract {
    uint256 public myNumber; // 状态变量

    modifier onlyOwner() { // 修改器
        require(msg.sender == owner, "Only owner can call this function.");
        _;
    }

    address public owner; // 状态变量

    constructor() { // 构造函数
        owner = msg.sender;
        myNumber = 42;
    }

    function setNumber(uint256 _number) public onlyOwner { // 设置状态变量值的函数
        myNumber = _number;
    }
}

  1. 生成abi文件

solc --abi demo.sol -o build/
[
    {
        "inputs": [

        ],
        "stateMutability": "nonpayable",
        "type": "constructor"
    },
    {
        "inputs": [

        ],
        "name": "myNumber",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [

        ],
        "name": "owner",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_number",
                "type": "uint256"
            }
        ],
        "name": "setNumber",
        "outputs": [

        ],
        "stateMutability": "nonpayable",
        "type": "function"
    }
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值