【发布时间】:2022-07-12 14:01:51
【问题描述】:
我一直在尝试编译我使用 solc 创建的简单合约,但没有成功。
合同。
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.15;
contract basic {
modifier onlyOwner {
require(msg.sender == owner);
_;
}
address public owner;
address public peer;
address public lastSender;
int public lastAmaunt;
constructor(address p2){
owner=msg.sender;
peer=p2;
}
//see the balance of the contract
function getTotalBalance () public view returns (uint){
return address(this).balance;
}
//only owner can sent money from contract
function sentMoneyto (uint to,uint256 _value) public onlyOwner{
if(to==1){
(payable(peer)).transfer(_value);
}else{
(payable(owner)).transfer(_value);
}
}
//can get money from evreyone
function getMoneyFrom() public payable{
lastSender = msg.sender;
lastAmaunt =int(msg.value);
}
function cangePeer(address newPeer) public onlyOwner{
peer=newPeer;
}
}
不是一个复杂的合约,它的目的是作为中间人在两个账户之间转移资金。 编译文件:
const path = require('path');
const fs = require('fs');
const solc = require('solc');
const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8');
const input = {
language: 'Solidity',
sources: {
'Inbox.sol': {
content: source,
},
},
settings: {
outputSelection: {
'*': {
'*': ['*'],
},
},
},
};
compilesFiles = JSON.parse(solc.compile(JSON.stringify(input))).contracts[
'Inbox.sol'
].Inbox;
console.log(compilesFiles);
当我运行 compile.js 时,我得到以下输出 ...
我的意图是编译后将输出保存在文件中。
谢谢。
【问题讨论】:
标签: node.js compilation solidity