通过java打包以太坊智能合约
Web3j可以自动打包智能合同代码,以便在不脱离JVM的情况下进行以太坊智能合同部署和交互。
要打包代码,需要先编译智能合同:
$ solc .sol --bin --abi --optimize -o /
web3j solidity generate /path/to/.bin /path/to/.abi -o /path/to/src/main/java -p com.your.organisation.name
接下来就可以新建和部署智能合约了:
Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/
Credentials credentials = WalletUtils.loadCredentials("password", "/path/to/walletfile");
YourSmartContract contract = YourSmartContract.deploy(
, ,
GAS_PRICE, GAS_LIMIT,
, ..., ).send(); // constructor params
或者使用一个现有的智能合约:
YourSmartContract contract = YourSmartContract.load(
"0x
|", , , GAS_PRICE, GAS_LIMIT);然后就可以进行智能合约的交互了:
TransactionReceipt transactionReceipt = contract.someMethod(
,
...).send();
调用智能合约:
Type result = contract.someMethod(, ...).send();