mirror of
https://github.com/Qortal/pirate-librustzcash.git
synced 2025-07-30 03:51:22 +00:00
Amount::{zero, is_positive, is_negative}
This commit is contained in:
@@ -79,7 +79,7 @@ impl SaplingOutput {
|
||||
Some(g_d) => g_d,
|
||||
None => return Err(Error(ErrorKind::InvalidAddress)),
|
||||
};
|
||||
if value.0 < 0 {
|
||||
if value.is_negative() {
|
||||
return Err(Error(ErrorKind::InvalidAmount));
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ impl<R: RngCore + CryptoRng> Builder<R> {
|
||||
to: &TransparentAddress,
|
||||
value: Amount,
|
||||
) -> Result<(), Error> {
|
||||
if value.0 < 0 {
|
||||
if value.is_negative() {
|
||||
return Err(Error(ErrorKind::InvalidAmount));
|
||||
}
|
||||
|
||||
|
@@ -8,6 +8,11 @@ const MAX_MONEY: i64 = 21_000_000 * COIN;
|
||||
pub struct Amount(pub i64);
|
||||
|
||||
impl Amount {
|
||||
/// Returns a zero-valued Amount.
|
||||
pub const fn zero() -> Self {
|
||||
Amount(0)
|
||||
}
|
||||
|
||||
// Read an Amount from a signed 64-bit little-endian integer.
|
||||
pub fn read_i64<R: Read>(mut reader: R, allow_negative: bool) -> io::Result<Self> {
|
||||
let amount = reader.read_i64::<LittleEndian>()?;
|
||||
@@ -39,6 +44,18 @@ impl Amount {
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns `true` if `self` is positive and `false` if the number is zero or
|
||||
/// negative.
|
||||
pub const fn is_positive(self) -> bool {
|
||||
self.0.is_positive()
|
||||
}
|
||||
|
||||
/// Returns `true` if `self` is negative and `false` if the number is zero or
|
||||
/// positive.
|
||||
pub const fn is_negative(self) -> bool {
|
||||
self.0.is_negative()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@@ -112,7 +112,7 @@ impl TransactionData {
|
||||
vout: vec![],
|
||||
lock_time: 0,
|
||||
expiry_height: 0,
|
||||
value_balance: Amount(0),
|
||||
value_balance: Amount::zero(),
|
||||
shielded_spends: vec![],
|
||||
shielded_outputs: vec![],
|
||||
joinsplits: vec![],
|
||||
@@ -190,7 +190,7 @@ impl Transaction {
|
||||
let so = Vector::read(&mut reader, OutputDescription::read)?;
|
||||
(vb, ss, so)
|
||||
} else {
|
||||
(Amount(0), vec![], vec![])
|
||||
(Amount::zero(), vec![], vec![])
|
||||
};
|
||||
|
||||
let (joinsplits, joinsplit_pubkey, joinsplit_sig) = if version >= 2 {
|
||||
|
Reference in New Issue
Block a user