Show / Hide Table of Contents

Struct FungibleAssetValue

Holds a fungible asset value which holds its Currency together.

Implements
IEquatable<FungibleAssetValue>
IComparable<FungibleAssetValue>
IComparable
ISerializable
Inherited Members
Object.Equals(Object, Object)
Object.GetType()
Object.ReferenceEquals(Object, Object)
Namespace: Libplanet.Types.Assets
Assembly: Libplanet.Types.dll
Syntax
[JsonConverter(typeof(FungibleAssetValueJsonConverter))]
[Serializable]
public readonly struct FungibleAssetValue : IEquatable<FungibleAssetValue>, IComparable<FungibleAssetValue>, IComparable, ISerializable
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Constructors

| Improve this Doc View Source

FungibleAssetValue(IValue)

Holds a fungible asset value which holds its Currency together.

Declaration
public FungibleAssetValue(IValue value)
Parameters
Type Name Description
Bencodex.Types.IValue value
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

FungibleAssetValue(Currency, Int32, BigInteger, BigInteger)

Creates a value of the currency from the given sign, majorUnit and minorUnit.

Declaration
public FungibleAssetValue(Currency currency, int sign, BigInteger majorUnit, BigInteger minorUnit)
Parameters
Type Name Description
Currency currency

The currency to create a value.

Int32 sign

Indicates the sign (negative, positive, or zero) of the value. -1 indicates negative, 1 indicates positive, and 0 indicates zero.

BigInteger majorUnit

The major unit of the fungible asset value, i.e., digits before the decimal separator. Must not be negative.

BigInteger minorUnit

The minor unit of the fungible asset value, i.e., digits after the decimal separator. Must not be negative.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when the the sign is not one of 1, 0, and -1, or majorUnit or minorUnit is negative.

See Also
DecimalPlaces
| Improve this Doc View Source

FungibleAssetValue(Currency, BigInteger, BigInteger)

Creates a value of the currency from the given majorUnit and minorUnit.

Declaration
public FungibleAssetValue(Currency currency, BigInteger majorUnit, BigInteger minorUnit)
Parameters
Type Name Description
Currency currency

The currency to create a value.

BigInteger majorUnit

The major unit of the fungible asset value, i.e., digits before the decimal separator.

BigInteger minorUnit

The minor unit of the fungible asset value, i.e., digits after the decimal separator.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when the negativity sign is ambiguous (e.g., both units have signs) or too big for the currency.

See Also
DecimalPlaces
| Improve this Doc View Source

FungibleAssetValue(Currency)

Creates a zero value of the currency.

Declaration
public FungibleAssetValue(Currency currency)
Parameters
Type Name Description
Currency currency

The currency to create a zero value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Fields

| Improve this Doc View Source

Currency

The currency of the fungible asset.

Declaration
public readonly Currency Currency
Field Value
Type Description
Currency
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

RawValue

The internal representation of the fungible asset.

Declaration
public readonly BigInteger RawValue
Field Value
Type Description
BigInteger
Remarks

Since this is an internal representation, this does not guarantee forward compatibility. Therefore, do not depend on this value for permanent uses but only for volatile data.

See Also
FromRawValue(Currency, BigInteger)

Properties

| Improve this Doc View Source

MajorUnit

The major unit of the fungible asset value, i.e., digits before the decimal separator, in absolute value.

Declaration
[Pure]
public readonly BigInteger MajorUnit { get; }
Property Value
Type Description
BigInteger
Remarks

It is absolute value, which lacks Sign.

See Also
DecimalPlaces
| Improve this Doc View Source

MinorUnit

The minor unit of the fungible asset value, i.e., digits after the decimal separator, in absolute value.

Declaration
[Pure]
public readonly BigInteger MinorUnit { get; }
Property Value
Type Description
BigInteger
Remarks

It is absolute value, which lacks Sign.

See Also
DecimalPlaces
| Improve this Doc View Source

Sign

Gets a number that indicates the sign (negative, positive, or zero) of the value.

Declaration
[Pure]
public readonly int Sign { get; }
Property Value
Type Description
Int32

A number that indicates the sign of the fungible asset value, as shown in the following table:

NumberDescription
-1The value is negative.
0The value is zero.
1The value is positive.
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Methods

| Improve this Doc View Source

Abs()

Gets the absolute value.

Removes the negative sign if it's negative. Otherwise does nothing.

Declaration
[Pure]
public readonly FungibleAssetValue Abs()
Returns
Type Description
FungibleAssetValue

Its absolute value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

CompareTo(FungibleAssetValue)

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public readonly int CompareTo(FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue other
Returns
Type Description
Int32
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

CompareTo(Object)

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public readonly int CompareTo(object obj)
Parameters
Type Name Description
Object obj
Returns
Type Description
Int32
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

DivRem(FungibleAssetValue, out FungibleAssetValue)

Divides the value by divisor, returns the quotient, and returns the remainder in an output parameter.

Declaration
[Pure]
public readonly BigInteger DivRem(FungibleAssetValue divisor, out FungibleAssetValue remainder)
Parameters
Type Name Description
FungibleAssetValue divisor

The value to divide by.

FungibleAssetValue remainder

When this method returns (without any exception), the remainder after dividing the value by divisor. This parameter is passed uninitialized.

Returns
Type Description
BigInteger

The quotient of the division.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when two values do not have the same Currency.

DivideByZeroException

Thrown when the divisor is zero.

| Improve this Doc View Source

DivRem(FungibleAssetValue)

Divides the value by divisor, and returns a pair of the quotient and the remainder.

Declaration
[Pure]
public readonly (BigInteger Quotient, FungibleAssetValue Remainder) DivRem(FungibleAssetValue divisor)
Parameters
Type Name Description
FungibleAssetValue divisor

The value to divide by.

Returns
Type Description
(T1 Item1, T2 Item2)<BigInteger, FungibleAssetValue>

A tuple of the Quotient and Remainder of the division.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when two values do not have the same Currency.

DivideByZeroException

Thrown when the divisor is zero.

| Improve this Doc View Source

DivRem(BigInteger, out FungibleAssetValue)

Divides the value by divisor, returns the quotient, and returns the remainder in an output parameter.

Declaration
[Pure]
public readonly FungibleAssetValue DivRem(BigInteger divisor, out FungibleAssetValue remainder)
Parameters
Type Name Description
BigInteger divisor

The number to divide by.

FungibleAssetValue remainder

When this method returns (without any exception), the remainder after dividing the value by divisor. This parameter is passed uninitialized.

Returns
Type Description
FungibleAssetValue

The quotient of the division.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
DivideByZeroException

Thrown when the divisor is 0 (zero).

| Improve this Doc View Source

DivRem(BigInteger)

Divides the value by divisor, and returns a pair of the quotient and the remainder.

Declaration
[Pure]
public readonly (FungibleAssetValue Quotient, FungibleAssetValue Remainder) DivRem(BigInteger divisor)
Parameters
Type Name Description
BigInteger divisor

The number to divide by.

Returns
Type Description
(T1 Item1, T2 Item2)<FungibleAssetValue, FungibleAssetValue>

A tuple of the Quotient and Remainder of the division.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
DivideByZeroException

Thrown when the divisor is 0 (zero).

| Improve this Doc View Source

Equals(FungibleAssetValue)

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public readonly bool Equals(FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue other
Returns
Type Description
Boolean
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Equals(Object)

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public override readonly bool Equals(object obj)
Parameters
Type Name Description
Object obj
Returns
Type Description
Boolean
Overrides
ValueType.Equals(Object)
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

FromRawValue(Currency, BigInteger)

Restores a value from a rawValue of a currency.

Declaration
public static FungibleAssetValue FromRawValue(Currency currency, BigInteger rawValue)
Parameters
Type Name Description
Currency currency

The currency to create a value.

BigInteger rawValue

The RawValue to restore.

Returns
Type Description
FungibleAssetValue

The value restored from the given rawValue.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

See Also
RawValue
| Improve this Doc View Source

GetHashCode()

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public override readonly int GetHashCode()
Returns
Type Description
Int32
Overrides
ValueType.GetHashCode()
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

GetQuantityString(Boolean)

Gets the value quantity without its Currency in String.

Declaration
[Pure]
public readonly string GetQuantityString(bool minorUnit = false)
Parameters
Type Name Description
Boolean minorUnit

Whether to show all possible decimal places even if they are zeros.

Returns
Type Description
String

A quantity string in decimal system. Consists of an optional sign (minus), digits and an optional decimal separator (period).

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Parse(Currency, String)

Parses a numeric string and returns a corresponding FungibleAssetValue.

Declaration
public static FungibleAssetValue Parse(Currency currency, string value)
Parameters
Type Name Description
Currency currency

The currency of the value to parse.

String value

A numeric string to parse. Can consist of digits, plus (+), minus (-), and decimal separator (.).

Returns
Type Description
FungibleAssetValue

The parsed asset value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
FormatException

Thrown when the given value is not a valid numeric string.

| Improve this Doc View Source

Serialize()

Holds a fungible asset value which holds its Currency together.

Declaration
public readonly IValue Serialize()
Returns
Type Description
Bencodex.Types.IValue
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

ToString()

Holds a fungible asset value which holds its Currency together.

Declaration
[Pure]
public override readonly string ToString()
Returns
Type Description
String
Overrides
ValueType.ToString()
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Operators

| Improve this Doc View Source

Addition(FungibleAssetValue, FungibleAssetValue)

Adds two values and returns the result.

Declaration
[Pure]
public static FungibleAssetValue operator +(FungibleAssetValue left, FungibleAssetValue right)
Parameters
Type Name Description
FungibleAssetValue left

The first value to add.

FungibleAssetValue right

The second value to add.

Returns
Type Description
FungibleAssetValue

The sum of left and right.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when two values do not have the same Currency.

| Improve this Doc View Source

Equality(FungibleAssetValue, FungibleAssetValue)

Tests if two values are equal.

Declaration
[Pure]
public static bool operator ==(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

A value.

FungibleAssetValue other

Another value.

Returns
Type Description
Boolean

true if two values are equal. Otherwise false.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

GreaterThan(FungibleAssetValue, FungibleAssetValue)

Tests if the left operand (obj) is greater than the right operand (other).

Declaration
[Pure]
public static bool operator>(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

The left operand to compare.

FungibleAssetValue other

The right operand to compare.

Returns
Type Description
Boolean

true if the left operand (obj) is greater than the right operand (other). Otherwise (even if two operands are equal) false.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

GreaterThanOrEqual(FungibleAssetValue, FungibleAssetValue)

Tests if the left operand (obj) is greater than or equal to the right operand (other).

Declaration
[Pure]
public static bool operator >=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

The left operand to compare.

FungibleAssetValue other

The right operand to compare.

Returns
Type Description
Boolean

true if the left operand (obj) is greater than or equal to the right operand (other). Otherwise false.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Inequality(FungibleAssetValue, FungibleAssetValue)

Tests if two values are unequal.

Declaration
[Pure]
public static bool operator !=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

A value.

FungibleAssetValue other

Another value.

Returns
Type Description
Boolean

false if two values are equal. Otherwise true.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

LessThan(FungibleAssetValue, FungibleAssetValue)

Tests if the left operand (obj) is less than the right operand (other).

Declaration
[Pure]
public static bool operator <(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

The left operand to compare.

FungibleAssetValue other

The right operand to compare.

Returns
Type Description
Boolean

true if the left operand (obj) is less than the right operand (other). Otherwise (even if two operands are equal) false.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

LessThanOrEqual(FungibleAssetValue, FungibleAssetValue)

Tests if the left operand (obj) is less than or equal to the right operand (other).

Declaration
[Pure]
public static bool operator <=(FungibleAssetValue obj, FungibleAssetValue other)
Parameters
Type Name Description
FungibleAssetValue obj

The left operand to compare.

FungibleAssetValue other

The right operand to compare.

Returns
Type Description
Boolean

true if the left operand (obj) is less than or equal to the right operand (other). Otherwise false.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Modulus(FungibleAssetValue, FungibleAssetValue)

Divides the value (dividend) by divisor, and returns the remainder.

Declaration
[Pure]
public static FungibleAssetValue operator %(FungibleAssetValue dividend, FungibleAssetValue divisor)
Parameters
Type Name Description
FungibleAssetValue dividend

The value to be divided.

FungibleAssetValue divisor

The value to divide by.

Returns
Type Description
FungibleAssetValue

The remainder after dividing dividend by divisor.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when two values do not have the same Currency.

DivideByZeroException

Thrown when the divisor is zero.

| Improve this Doc View Source

Modulus(FungibleAssetValue, BigInteger)

Divides the value (dividend) by divisor, and returns the remainder.

Declaration
[Pure]
public static FungibleAssetValue operator %(FungibleAssetValue dividend, BigInteger divisor)
Parameters
Type Name Description
FungibleAssetValue dividend

The value to be divided.

BigInteger divisor

The number to divide by.

Returns
Type Description
FungibleAssetValue

The remainder after dividing dividend by divisor.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
DivideByZeroException

Thrown when the divisor is 0 (zero).

| Improve this Doc View Source

Multiply(FungibleAssetValue, BigInteger)

Multiplies right times the left value.

Declaration
[Pure]
public static FungibleAssetValue operator *(FungibleAssetValue left, BigInteger right)
Parameters
Type Name Description
FungibleAssetValue left

The value to multiply.

BigInteger right

The times to multiply.

Returns
Type Description
FungibleAssetValue

The multiplied value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Multiply(BigInteger, FungibleAssetValue)

Multiplies left times the right value.

Declaration
[Pure]
public static FungibleAssetValue operator *(BigInteger left, FungibleAssetValue right)
Parameters
Type Name Description
BigInteger left

The times to multiply.

FungibleAssetValue right

The value to multiply.

Returns
Type Description
FungibleAssetValue

The multiplied value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

| Improve this Doc View Source

Subtraction(FungibleAssetValue, FungibleAssetValue)

Subtracts the right value from the left value.

Declaration
[Pure]
public static FungibleAssetValue operator -(FungibleAssetValue left, FungibleAssetValue right)
Parameters
Type Name Description
FungibleAssetValue left

The value to subtract from (the minuend).

FungibleAssetValue right

The value to subtract (the subtrahend).

Returns
Type Description
FungibleAssetValue

The result of subtracting right from left.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Exceptions
Type Condition
ArgumentException

Thrown when two values do not have the same Currency.

| Improve this Doc View Source

UnaryNegation(FungibleAssetValue)

Negates a value.

Adds a negative sign to the value if it's positive. Removes a negative sign from the value if it's already negative. Does nothing if the value is zero.

Declaration
[Pure]
public static FungibleAssetValue operator -(FungibleAssetValue value)
Parameters
Type Name Description
FungibleAssetValue value

A value to negate.

Returns
Type Description
FungibleAssetValue

A negated value.

Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Explicit Interface Implementations

| Improve this Doc View Source

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Holds a fungible asset value which holds its Currency together.

Declaration
readonly void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
SerializationInfo info
StreamingContext context
Remarks

It behaves like numbers except for division operator (/) to prevent to forget to handle its remainder; use DivRem(FungibleAssetValue) and DivRem(BigInteger) methods instead.

Implements

System.IEquatable<T>
System.IComparable<T>
System.IComparable
System.Runtime.Serialization.ISerializable
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright © 2018–2023 Planetarium