- 關(guān)于鎖倉合約的代碼地址
- 使用solc編譯
solc TokenTimelock.sol --bin --abi --optimize --overwrite -o /git/Test/solidity/
格式:solc 合約文件名字 --bin --abi --optimize --overwrite - 輸出文件目錄
注意事項(xiàng)
如果有多個(gè)合約文件绽榛,只需要編譯這個(gè)一個(gè),這個(gè)工具會(huì)自動(dòng)相關(guān)連合約一起編譯
編譯后得到的合約文件:
- 使用web3j編譯合約文件
web3j solidity generate --solidityTypes TokenTimelock.bin TokenTimelock.abi -o ../src/main/java/ -p com.zhongmh.test
格式:web3j solidity generate --solidityTypes 合約文件.bin 合約文件.abi -o 輸出目錄 -p 包名
合約文件轉(zhuǎn)換為java文件的結(jié)果圖
[圖片上傳失敗...(image-5c06ce-1534409443513)]
- 使用java程序部署和測試的代碼
代碼文件
@Test
public void testDeployedTokenTimeLock() throws Exception {
RemoteCall<TokenTimelock> lock = TokenTimelock.deploy(web3j,credentials,GAS_PRICE,GAS_LIMIT,new Address("0xb36Cb1043fe5F7bb5ae9E78069C237C4f70eE578"),new Address("0xfa3cd047df67edebf8643a51887410c92942a55e"),new Uint256(System.currentTimeMillis() + 864000000L));
TokenTimelock tokenTimelock = lock.send();
System.out.println("合約地址:"+tokenTimelock.getContractAddress());
System.out.println("合約是否可用:"+tokenTimelock.isValid());
}
@Test
public void testLoad() throws Exception {
credentials = WalletUtils.loadCredentials("123456","/data/eth/private/keystore/UTC--2018-08-15T10-07-23.732786995Z--fa3cd047df67edebf8643a51887410c92942a55e");
TokenTimelock tokenTimelock = TokenTimelock.load("0xf9e7942a32717be568b98251e1cb629ad0d6aa50",web3j,credentials,GAS_PRICE,GAS_LIMIT);
Uint256 releaseTime = tokenTimelock.releaseTime().send();
System.out.println("合約釋放時(shí)間:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(releaseTime.getValue().longValue())));
String tokenAddress = tokenTimelock.token().send().getValue();
System.out.println("合約地址:"+tokenAddress);
tokenTimelock.release().send();
}