Ответ возвращает "null" при попытке перевода токенов BEP20?
Посмотрите, пожалуйста, возможно увидите в чём у нас ошибка. Запрос на перевод любой не нативной валюты в BEP20 (ERC20), по итогу ничего не переводится и возвращает null
Возможно неверно посчитан газ, если есть где-то похожие методы, посмотрите значения, сверьте. Может быть, у меня просто глаза уже поплыли за прошедшую субботу...
fun transfer(
privateKey: ByteArray,
tokenAddress: String,
toAddress: String,
amount: BigInteger,
block: DefaultBlockParameterName = DefaultBlockParameterName.LATEST
): String {
val credentials = Credentials.create(Numeric.toHexString(privateKey))
val gasFactor = 1.0.toBigDecimal()
val gasPrice = (gasPrice().toBigDecimal() * gasFactor).toBigInteger()
val gas = 21000.toBigInteger()
val fee = gas * gasPrice
val function = Function("transfer", listOf<Type<*>>(Address(toAddress), Uint256(amount)), emptyList())
val rawTransaction = RawTransaction.createTransaction(
null, gasPrice, fee, tokenAddress,
BigInteger.ZERO, FunctionEncoder.encode(function)
)
val hexValue = Numeric.toHexString(TransactionEncoder.signMessage(rawTransaction, credentials))
val response = web3j.ethSendRawTransaction(hexValue).send()
println(response.result)
return response.result
}
Источник: Stack Overflow на русском