需要通过solc在命令行编译合约,总结如下: 1、单一文件编译 solc.exe --combined-json abi,bin,interface,metadata file1.sol 2、文件有import ,但是位于同一目录,同单一文件编译 solc.exe --combined-json abi,bin,interface,metadata file2.sol 3、文件有import,但是位于父目录 solc.exe
solc:solidity的编译器 solidity编写的以太坊智能合约可通过命令行编译工具solc来进行编译,成为以太坊虚拟机中的代码。solc编译后最终部署到链上形成我们所见到的各种智能合约。 solc的安装很简单: npm install -g solc //或者 npm install -g solc-cli //或者 sudo apt-get install solc 安装完成后我们来看 ,solc --help,solc --help命令显示所有的solc命令选项。 如果你想从solc获得更丰富的一些输出变量,你可以使用solc -o outputDirectory --bin --ast --asm sourceFile.sol。 你在部署以太坊智能合约之前可以用solc --optimize --bin sourceFile.sol优化一下。默认情况下solc编译器会帮你优化200次。
2,操作内容 2.1 下载 solc-js 点击此处,获取合约编译工具 solc-js 安装包:alipay-solc-0.1.12.tgz(约 1.76M)。 BaaS 平台提供的 solc-js:alipay-solc-0.1.12.tgz 可兼容 Solidity 语言 0.4.24 版本之前的语法(不包含 0.4.24)。 solc-js 工具依赖 Node.js 环境,因此需要先安装 Node.js,然后安装 solc-js。具体步骤如下: 下载 并安装 Node.js(推荐版本:v10.11.0)。 全局安装 solc-js。 在下载的 alipay-solc-0.1.12.tgz 所在目录执行以下命令: npm i -g alipay-solc-0.1.12.tgz 成功输出结果: D:\jusanban\doc\26
通过命令行使用solc编译器。在geth或eth提供的javascript控制台使用web3.eth.compile.solidity(这仍然需要安装solc编译器)。在线Solidity实时编译器。 注意:关于solc和编译Solidity合约代码的更多信息可在此查看。在geth设置solidity编译器如果你启动了geth节点,就可以查看哪个编译器可用。 注意:solc编译器和cpp-ethereum一起安装。或者,你可以自己创建。 如果你的solc可执行文件不在标准位置,可以用—solc标志为solc可执行文件指定一个定制路线或者你可以通过控制台在执行期间设置这个选项:编译一个简单合约让我们编译一个简单的合约源:这个合约提供了一个单一方法
输入以下命令安装solc: sudo npm install -g solc 安装完后,我们就会发现在终端中输入solc命令返回一个出错信息。 这是因为solc只是一个程序集,如果我们想要在终端中使用solc程序编译智能合约,则需要安装solc-cli,这是solc的命令行界面。 sudo npm install -g solc-cli 输入以下命令可以一并安装solc和solc-cli(推荐使用此命令安装): sudo npm install -g solc 但是,如果我们需要在geth控制台使用solc编译器,那么我们仍然需要安装solc二进制包。 /home/zcc/webthree-umbrella/solidity/build/solc/solc /bin/solc 这样就能直接在终端使用solc程序了。
如何使用solc命令行生成合约 ABI 和 EVM 字节码 不包括: 合约 ABI 规范的详细信息(编码/解码)。 solc命令生成合约 ABI 和 EVM 字节码。 solc命令是最常用的编译器之一。 $ solc --abi -o build —overwrite SampleToken.sol 帮助 $ solc --help 结论 本文解释了合约 ABI 和 EVM 字节码。 它们都可以用solc命令行编译,solc命令行主要用于以太坊开发。希望这篇文章能帮助你实际理解合约 ABI 和 EVM 字节码。如果您有任何问题或意见,随时欢迎。谢谢。
/bin/nodeln -s /data/node-v16.10.0-linux-x64/bin/npm /usr/bin/npm1.4验证node是否正确安装node -vnpm -v2.npm安装solc2.1 安装solcmkdir solccd solcnpm install solc2.2创建软链接ln -s /data/solc/node_modules/solc/solcjs /usr/bin/solcjs2.3 验证solc是否安装成功solcjs --version3.编写合约代码,编译并部署合约3.1编写一个简单的存数据的合约代码touch SimpleStorage.sol合约代码如下:// SPDX-License-Identifier
home/nodejs/node-v7.7.2# node -v v7.7.2 root@VM-0-7-ubuntu:/home/nodejs/node-v7.7.2# npm -v 4.1.2 3,安装solc (Solidity命令行编译器) root@VM-0-7-ubuntu:/home/nodejs/node-v7.7.2# npm install -g solc root@VM-0-7-ubuntu: --help //solc和solc-cli安装成功 root@VM-0-7-ubuntu:/home/nodejs/node-v7.7.2# apt-get update root@VM-0-7-ubuntu VM-0-7-ubuntu:/home/nodejs/node-v7.7.2# apt-get update root@VM-0-7-ubuntu:/home/nodejs/node-v7.7.2# solc --version solc, the solidity compiler commandline interface Version: 0.4.24+commit.e67f0147.Linux.g+
操作步骤 所有的操作都是在goland里面使用nodejs调web3库 •编写合约•编译合约(web3)-用solc编译(拿到bytecode、abi)•部署合约(web3)•找到合约实例•调用合约(set ,get操作) 开发环境 //安装某宝的镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org //安装指定版本solc 在开发和测试环境下,Ganache提供了非常简便的以太坊私有网络搭建方法, 通过可视化界面可以直观地设置各种参数、浏览查看账户和交易等数据 代码加注解 01-compile //导入solc编译器 var solc = require('solc') //读取合约 let fs = require('fs') let sourceCode = fs.readFileSync('. /contracts/SimpleStorage.sol', 'utf-8') let output = solc.compile(sourceCode, 1) console.log('output
通过命令行使用solc编译器。 在geth或eth提供的javascript控制台使用web3.eth.compile.solidity(这仍然需要安装solc编译器)。 注意:关于solc和编译Solidity合约代码的更多信息可在此查看。 在geth设置solidity编译器 如果你启动了geth节点,就可以查看哪个编译器可用。 注意:solc编译器和cpp-ethereum一起安装。或者,你可以自己创建。 如果你的solc可执行文件不在标准位置,可以用—solc标志为solc可执行文件指定一个定制路线 或者你可以通过控制台在执行期间设置这个选项: 编译一个简单合约 让我们编译一个简单的合约源:
Solidity存储库的一个构建目标是solc,solidity命令行编译器。 使用solc --help为您提供所有选项的解释。 如果您只想编译单个文件,则将其作为solc --bin sourceFile.sol运行,并打印二进制文件。 在部署合同之前,在编译时使用solc --optimize --bin sourceFile.sol来激活优化器。 如果你想获得solc的一些更高级的输出变体,最好告诉它使用solc -o outputDirectory --bin --ast --asm sourceFile.sol输出所有东西来分离文件。 如果使用选项--standard-json调用solc,则它将在标准输入上期望JSON输入(如下所述),并在标准输出上返回JSON输出。
通过命令行使用solc编译器。 在geth或eth提供的javascript控制台使用web3.eth.compile.solidity(这仍然需要安装solc编译器)。 注意:关于solc和编译Solidity合约代码的更多信息可在此查看。 在geth设置solidity编译器 如果你启动了geth节点,就可以查看哪个编译器可用。 注意:solc编译器和cpp-ethereum一起安装。或者,你可以自己创建。 如果你的solc可执行文件不在标准位置,可以用—solc标志为solc可执行文件指定一个定制路线 或者你可以通过控制台在执行期间设置这个选项: 编译一个简单合约 让我们编译一个简单的合约源: 这个合约提供了一个单一方法
通过命令行使用solc编译器实现。 在geth或eth提供的javascript控制台使用web3.eth.compile.solidity (这仍然需要安装solc 编译器)实现。 注意:solc编译器和cpp- ethereum一起安装。或者,你可以自己创建。 如果你的solc可执行文件不在标准位置,可以用—solc标志为solc可执行文件指定一个定制路线。 示例如下: $ geth --solc /usr/local/bin/solc 或者你可以通过控制台在执行期间设置这个选项: > admin.setSolc("/usr/local/bin/solc") solc, the solidity compiler commandline interface Version: 0.2.2-02bb315d/. -Darwin/appleclang/JIT path: /usr/local/bin/solc 2.
https://github.com/trailofbits/rattle https://github.com/trailofbits/not-so-smart-contracts 查看编译版本 solc --version solc, the solidity compiler commandline interface Version: 0.8.9+commit.e5eed63a.Linux.g+ + 切换 solidity 版本 ethsec@36ba204276db:/code$ solc-select install 0.7.6 Installing '0.7.6'... Version '0.7.6' installed. ethsec@36ba204276db:/code$ solc-select use 0.7.6 Switched global version to 0.7.6 ethsec@36ba204276db:/code$ solc --version solc, the solidity compiler commandline interface Version
二、Slither运行流程 Slither的工作方式如下: 智能合约源码经过solc编译后得到Solidity抽象语法树(AST)作为Slither的输入。 运行命令slither overflow_simple_add.sol --solc /usr/bin/solc-v0.5.0 --json res.json其中: --solc 参考可以指定编译版本。 如果不指定的话也可以使用solc-select命令设置默认的编译版本,solc-select -l查看已有的编译版本;solc-select 0.5.0配置编译版本为0.5.0。
, 安装nvmnvm install 9.11.1 nvm use 9.11.1npm install ganache-cli npm install web3@0.20.1 npm install solc 安装node 9.11.1 并切换环境 创建一个新的工作目录,并在命令行索引到该路径 安装ganche-cli、web3、solc 启动ganache-clinode_modules\.bin\ganache-cli 64078732-f845b700-cd10-11e9-8586-90771e5e9edb.png] > code = fs.readFileSync('Voting.sol').toString() > solc = require('solc') > compiledCode = solc.compile(code) 全部完成会得到如下截图的输出,表示smart contract编译成功 [64078731-
ethereum-docker 所用到的docker images也都上传至docker hub,参见blockchain101/ethereum-geth:1.6.5, blockchain101/ethereum-solc 我们使用solc执行合约的编译,执行命令,生成合约接口abi文件和evm二进制bin文件 $ solc --abi -o ethcontract ethcontract/sample.sol $ solc --bin -o ethcontract ethcontract/sample.sol 如果本地机器没有solc,可以使用容器执行solc命令,这样在ethcontract目录会生成出Sample.abi :0.4.11 solc --bin --overwrite -o /ethcontract /ethcontract/sample.sol $ docker run -v ~/ethereum-docker :0.4.11 solc --abi --overwrite -o /ethcontract /ethcontract/sample.sol 我们需要修改这两个文件分别增加相应的变量赋值SampleABI
# cd /home/# solc --abi --bin --hashes --overwrite -o . token.solsolc为编译命令, –abi选项指示生成abi文件,–bin指示生成字节码文件 solc命令更详细用法,可使用solc –help查看。生成的字节码位于solc命令用 -o 指定的目录内,示例 中为当前目录:/home/Token.bin4.2.4.3. 编译说明solc编译命令使用的是0.8.4+commit.c7e474f2.Linux.g++版本的编译器,被编译的solidity合约版本号必须大于等于0.8.4,否则有可能编译告警或报错。 如果开发者不愿意修改solidity合约以适应solc编译器的版本,那么也可以直接使用Remix编译。通过Remix编译出的字节码也可以在长安链上直接部署运行。4.2.4.4.
的时候,truffle compile也出现上面两个错误,检查版本信息: truffle version Truffle v4.1.0 (core: 4.1.0) Solidity v0.4.19 (solc-js sudo npm install -g truffle 这次查看版本 truffle version Truffle v4.1.12 (core: 4.1.12) Solidity v0.4.24 (solc-js compile就没有问题了 其他 虽然我们可以安装指定版本的truffle,但是考虑到新版本功能更多,也就算了 npm install -g truffle@X For example, to get solc
Solidity编译器 Remix Remix 是一个基于 Web 浏览器的 Solidity IDE;可在线使用而无需安装任何东西 http://remix.ethereum.org solcjs solc 是 Solidity 源码库的构建目标之一,它是 Solidity 的命令行编译器 使用 npm 可以便捷地安装 Solidity 编译器 solcjs npm install -g solc ?