Hi guys, i’ve deployed an ABI-compliant smart contract, all its exposed methods return string value in a way like this:
byte 0x151f7c75
byte “OK”
concat
log
I’m trying to read the value from java sdk, but i’m facing an IllegalArgumentException with this message detail: “string decode failure: encoded bytes do not match with length header”.
Any suggestion?
Thank you!
EDIT: i “solved” the problem in the way as follows:
In my custom AtomicTransactionComposer class, i add a condition on ABI method parsed return type and simply istantiate a new String from abiEncoded return value:
ABIType methodRetType = this.methodMap.get(i).returns.parsedType;
if(methodRetType instanceof TypeString) {
decoded = new String(abiEncoded);
} else {
decoded = methodRetType.decode(abiEncoded);
}