Description:
Right now we just throw string errors, which makes it hard to handle them properly. We should add a proper error structure (similar to Fusion API) so we can distinguish between validation, API, and onchain errors.
For reference, Fusion API already follows this approach: https://github.com/bob-collective/bob-fusion-api/tree/bc49ad60875a88ef7033075ba59869a9f017f14a/src/errors