インストールノード
brew install node
solc、solc-cli をインストールします。
npm install -g solc
npm install -g solc-cli
堅牢性をインストール
brew tap ethereum/ethereum
brew install solidity
brew link --overwrite solidity
簡単なコントラクトを作成し、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;
}
}
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"
}
]