Create the holder's trustline and, when the asset's SAC admin is a
contract exposing authorize_trustline, authorize it — all under one
holder signature. The asset's capability is DISCOVERED on-chain
(CAP-68 get_address_executable + SAC.admin()), not configured.
Returns Authorized when the trustline is usable, TrustlineOnly
when the asset is AUTH_REQUIRED with no one-step authorizer (the
trustline is kept; the issuer authorizes off-platform).
Atomic on rejection: if the discovered authorizer rejects the holder with a typed contract error, the WHOLE transaction (including the trustline creation) is rolled back.
Immutable by design: no admin or upgrade entrypoint; fixing a bug means deploying a new instance and updating the pinned router id.
The discovered admin is a contract CHOSEN BY THE ASSET, executed under
the holder's signed authorization tree: in recording-mode simulation,
any nested holder.require_auth() the admin triggers is folded into
the single root auth entry th
fn onboard(
env: soroban_sdk::Env,
sac: soroban_sdk::Address,
holder: soroban_sdk::Address,
) -> Result