Я впервые пользуюсь умными контрактами с Java, обычно я использую JS. Я занимаюсь разработкой IntelliJ и мне удалось скомпилировать контракт Solidity в класс-оболочку Java. Все работает нормально, кроме случаев, когда я пытаюсь развернуть контракт. Он продолжает говорить, что на транзакцию не хватает средств. Файл .json был сгенерирован с использованием WalletUtils, и я предполагал, что он будет моим кошельком, но там нет упоминания о газе или балансе. Свойства также сильно отличаются от обычного файла genesis.json с JS. Правильно ли я думаю, что мне нужно добавить немного газа в этот файл или баланс?
Web3j web3 = Web3j.build(new HttpService(<Infura endpoint>));
System.out.println("Connected to Ethereum client version: "
+ web3.web3ClientVersion().send().getWeb3ClientVersion());
// This generated the .json file:
WalletUtils.generateNewWalletFile(<password>, new File(""), true);
Credentials credentials =
WalletUtils.loadCredentials(
<password>,
<jsonfile>);
System.out.println("Credentials loaded");
ContractGasProvider contractGasProvider = new DefaultGasProvider();
// Errors at this stage:
RoverMoves contract = RoverMoves.deploy(web3, credentials, contractGasProvider).send();
Сгенерированный файл .json выглядит следующим образом:
{"address":"c6886a803746be0caee10de1acb165447b64f99e",
"id":"5b3b1932-e4f9-48fd-97bd-0d2845b07147","version":3,
"crypto":{"cipher":"aes-128-ctr",
"ciphertext":"b1d30bf2c5a5a5cb0db43ecb50ff5c0a8f19d47a387d56de0aa4de24cd37cb0b",
"cipherparams":{"iv":"3308e67e4e4ed669608d7cb1b1fe785d"},
"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,
"salt":"c11bc36457e850f545b6120e5b7800e0906c4d3bfdaacb4616bc69c26a2b72fb"},
"mac":"468048c46483da4af7478e2574a8dfce2686fc480e235da47fe8ecdeea426c26"}}