Why BalanceChanged Object can't retrieve?

Hello, I’m Victor from South Korea.

Please understand my poor english. I found little different with Single Transfer and Multi Transfer Digest.

Example)

await this.provider.getTransactionBlock({ digest : ‘CpmrCC6CifNs2fLYosTy2WCAZBLXhejSZ8ffL8oxCgFt’ , options : {
// showInput: true,
// showEffects: true,
// showEvents: true,
// showObjectChanges: true,
showBalanceChanges: true,
}});

return

{
digest: ‘CpmrCC6CifNs2fLYosTy2WCAZBLXhejSZ8ffL8oxCgFt’,
timestampMs: ‘1683118852825’,
checkpoint: ‘1570226’,
errors: [
‘Cannot retrieve balance changes: Error checking transaction input objects: ObjectNotFound { object_id: 0xe12b65456ceb8572231662eae04c7508e127834581f9e368f95333cc4b341736, version: Some(SequenceNumber(99)) }’
]
}

like this, and i found that if 1 digest has lots of balance transfer object, i could’t parse. Is it right?
i want to see balanceChanges array… but it didn’t show me. could i change my business logic?

11 Likes

Hello Victor,
The error “Cannot retrieve balance changes: Error checking transaction input objects: ObjectNotFound” indicates that some transaction data was pruned from db and that’s why balance changes cannot be retrieved. To fix this you should set the pruning config of your self hosted node to a higher value. If you are getting the transaction from a public node (https://fullnode.mainnet.sui.io:443) then you should not have a problem

3 Likes

Thank you for your help,
I understand my fullnode option that pruning was on ( 3600 sec )

but if i want to get All fullnode data forever, how could i set ?

I am working at Exchange, so there were big instance of ec2, don’t worry about EBS

thank you

1 Like