## Overview Implement the contract initialization function and admin management functions inside `contracts/contrib/`. ## Location All work must be inside `contracts/contrib/src/`. ## Acceptance Criteria - [ ] `initialize(env, admin: Address)` — sets admin in storage under `DataKey::Admin`; panics if already initialized - [ ] `get_admin(env) -> Address` — returns stored admin address - [ ] `add_registrar(env, registrar: Address)` — admin only; adds address to authorized registrars list - [ ] `remove_registrar(env, registrar: Address)` — admin only; removes address from registrars list - [ ] `is_authorized_registrar(env, address: Address) -> bool` — returns true if address is a registrar - [ ] `get_total_asset_count(env) -> u64` — returns total registered asset count
Overview
Implement the contract initialization function and admin management functions inside
contracts/contrib/.Location
All work must be inside
contracts/contrib/src/.Acceptance Criteria
initialize(env, admin: Address)— sets admin in storage underDataKey::Admin; panics if already initializedget_admin(env) -> Address— returns stored admin addressadd_registrar(env, registrar: Address)— admin only; adds address to authorized registrars listremove_registrar(env, registrar: Address)— admin only; removes address from registrars listis_authorized_registrar(env, address: Address) -> bool— returns true if address is a registrarget_total_asset_count(env) -> u64— returns total registered asset count