d51076cb0c
Add COIN_SYMBOL/COIN_NAME to AbstractNet (defaults: BTC/Bitcoin). BitcoinPurple overrides to BTCP/Bitcoin Purple; testnet inherits. Replace module-level base_units/base_units_list in util.py with get_base_units()/get_base_units_list() that read constants.net.COIN_SYMBOL at runtime, producing [BTCP, mBTCP, bits, sat] on BitcoinPurple. Update all UI touch points: Qt window title, watching-only warning, invalid address message, testnet warning, settings unit combo + help text, QML networkName property, and Preferences thousands-separator label