smart contract could get more detail when receives callback `onPacketResult` instead of a simple boolean indicating success or failure.