traverser call back function should return swarm.Chunk and not swarm.Address
APIs that utilize the Traverser have to re-fetch the chunk after receiving the address in th call back.
this is wasteful and the iterator should simply feed the chunk directly in the callback.
I concur 100%, but also the GET /stewardship doesn't actually check the remote retrieval of leaf chunks of a BMT. Edge chunks are retrieved, but the leaf chunk is identified and only the address is passed to the callback, but is never actually retrieved because the BMT traverser never needed to actually get the content of the address.
But it would be redundant for the callback to force a retrieval since most of the other addresses passed to the callback have already gone through the getter. If I had a good solution, I'd have done a PR a long time ago, but figured this might be worth bringing up now because if an actual swarm.Chunk is to be passed to the callback, then the BMT leaf traverser will be forced to invoke the getter and you can kill two birds with one stone.