X_CURRENCY_REDEFINED
Means
one currency code registered twice with different meanings
Typical cause
a second registerCurrency for a code already in force — a shipped ISO row, or an earlier registration — carrying a different exponent or name. An identical second call is a no-op, so a module imported twice is not a crash; cause prints both declarations
Fix
keep one registerCurrency({ code: 'XBT', exponent: 2, name: 'XBT' }) call and delete the other. Changing a live exponent means migrating every stored amount in that currency first — each one shifts by a power of ten