FISCO-BCOS / solcJ

a jar for the solidity compiler
Apache License 2.0
7 stars 10 forks source link

solcJ

solcJ提供了Java编译solidity合约文件的接口,solidity编译器solc可以参考: https://github.com/ethereum/solidity

支持平台

支持版本

solcJ支持三个版本的solidity编译器版本

使用

接口

编译

public static Result SolidityCompiler::compile(File source, boolean sm, boolean combinedJson, Option... options)
        throws IOException;
public static Result SolidityCompiler::compile(byte[] source, boolean sm, boolean combinedJson, Option... options)
        throws IOExceptio;

参数:

返回:

返回解析

public static CompilationResult CompilationResult::parse(String rawJson) throws IOException 

参数:

返回:

示例

File socFile = new File("HelloWorld.sol");
SolidityCompiler.Result res = SolidityCompiler.compile(solFile, false, true, ABI, BIN, INTERFACE, METADATA);

if (!res.isFailed())) {
    // 编译成功,解析返回
    CompilationResult result = CompilationResult.parse(res.getOutput());
    // 获取HelloWorld合约的编译结果
    CompilationResult.ContractMetadata meta = result.getContract(“HelloWorld”);
    // abi
    String abi = meta.abi;
    // bin
    String bin = meta.bin;
    // 其他逻辑
} else {
    // 编译失败,res.getError()保存编译失败的原因
}