RolesForContract

type RolesForContract<TContract extends ContractWithRoles> =
TContract extends SmartContract
? Role | (string & {})
: NonNullable<
Exclude<TContract, SmartContract>["roles"]
>["roles"][number];