функции смарт контракта?
как создается аргумент String data в RawTransaction.createTransaction() ?
А зачем raw?
в смысле вообще зачем вызывать метод смарт-контракта таким образом?
ответ такой, может кому пригодится: скажем у нас есть в контракте функция function setIntegerValue(uint256 _integerValue) public returns (bool) мы собираемся вызвать эту функцию передав ей значение _integerValue равное 6 тогда: Long integerValue = 6L; List<org.web3j.abi.datatypes.Type> inputParameters = new ArrayList<>(); inputParameters.add(new Uint256(integerValue)); List<TypeReference<?>> outputParameters = Arrays.asList(new TypeReference<Bool>() {}); String functionName = "setIntegerValue"; Function function = new Function(functionName, inputParameters, outputParameters); String encodedFunction = FunctionEncoder.encode(function); System.out.println("data : " + encodedFunction); // "0xebba140000000000000000000000000000000000000000000000000000000000000006"; org.web3j.crypto.RawTransaction rawTransaction = RawTransaction.createTransaction( nonce, // BigInteger nonce Constants.GAS_PRICE, // BigInteger gasPrice Constants.GAS_LIMIT_MAX, // BigInteger gasLimit to, // String to (address) BigInteger.ZERO, // BigInteger value encodedFunction // String data );
Обсуждают сегодня