@amount.setter
def amount(self, value):
    if (not (isinstance(value, Decimal) or (value is None))):
        raise LnInvoiceException(f'amount must be Decimal or None, not {value!r}')
    if (value is None):
        self._amount = None
        return
    assert isinstance(value, Decimal)
    if (value.is_nan() or (not (0 <= value <= TOTAL_COIN_SUPPLY_LIMIT_IN_FTC))):
        raise ValueError(f'amount is out-of-bounds: {value!r} FTC')
    if ((value * (10 ** 12)) % 10):
        raise LnInvoiceException(f'Cannot encode {value!r}: too many decimal places')
    self._amount = value
@amount.setter
def amount(self, value):
    if (not (isinstance(value, Decimal) or (value is None))):
        raise LnInvoiceException(f'amount must be Decimal or None, not {value!r}')
    if (value is None):
        self._amount = None
        return
    assert isinstance(value, Decimal)
    if (value.is_nan() or (not (0 <= value <= TOTAL_COIN_SUPPLY_LIMIT_IN_FTC))):
        raise ValueError(f'amount is out-of-bounds: {value!r} FTC')
    if ((value * (10 ** 12)) % 10):
        raise LnInvoiceException(f'Cannot encode {value!r}: too many decimal places')
    self._amount = value