Run a transaction through the shared confirm → broadcast pipeline.
A signed/unsigned tx, an already-confirmed validityData, or (preferred) a thunk that builds one. Passing a thunk defers the build so errors surface through the same call.
Optionalopts: ProgrammaticTxOptionsFee ceiling, confirmation strategy and wait behaviour.
Shared context handed to every programmatic-tx sub-namespace factory.
Sub-namespaces (
pay,attest,tokens, …) never callconfirm/broadcastdirectly — they build/sign their transaction and pass it toctx.run(...), which routes through the single shared runner so fee-cap policy, confirmation strategy and result shape stay uniform.