tuweni / org.apache.tuweni.units.bigints / BaseUInt256Value

BaseUInt256Value

abstract class BaseUInt256Value<T : UInt256Value<T>!> : UInt256Value<T> (source)

Base class for UInt256Value.

This class is abstract as it is not meant to be used directly, but it has no abstract methods. As mentioned in UInt256Value, this is used to create strongly-typed type aliases of UInt256. In other words, this allow to "tag" numbers with the unit of what they represent for the type-system, which can help clarity, but also forbid mixing numbers that are mean to be of different units (the strongly-typed part).

This class implements UInt256Value, but also adds a few operations that take a UInt256 directly, for instance #multiply(UInt256). The rational is that multiplying a given quantity of something by a "raw" number is always meaningful, and return a new quantity of the same thing.

Constructors

<init>

BaseUInt256Value(value: UInt256!, ctor: Function<UInt256!, T>!)
BaseUInt256Value(value: Long, ctor: Function<UInt256!, T>!)
BaseUInt256Value(value: BigInteger!, ctor: Function<UInt256!, T>!)

Functions

add

open fun add(value: T): T
open fun add(value: Long): T

Returns a value that is (this + value).

open fun add(value: UInt256!): T

addMod

open fun addMod(value: T, modulus: UInt256!): T
open fun addMod(value: Long, modulus: UInt256!): T
open fun addMod(value: Long, modulus: Long): T

Returns a value equivalent to ((this + value) mod modulus).

open fun addMod(value: UInt256!, modulus: UInt256!): T

compareTo

open fun compareTo(other: T): Int

Compare two UInt256 values.

open fun compareTo(other: UInt256!): Int

copy

Return a copy of this value, or itself if immutable.

open fun copy(): T

divide

open fun divide(value: T): T
open fun divide(value: Long): T

Returns a value that is (this / value).

open fun divide(value: UInt256!): T

divideCeil

open fun divideCeil(value: T): T
open fun divideCeil(value: Long): T

Returns a value that is (this / value).

open fun divideCeil(value: UInt256!): T

equals

open fun equals(other: Any?): Boolean

hashCode

open fun hashCode(): Int

mod

open fun mod(modulus: UInt256!): T
open fun mod(modulus: Long): T

mod0

open fun mod0(modulus: UInt256!): T
open fun mod0(modulus: Long): T

multiply

open fun multiply(value: T): T
open fun multiply(value: Long): T

Returns a value that is (this * value).

open fun multiply(value: UInt256!): T

multiplyMod

open fun multiplyMod(value: T, modulus: UInt256!): T
open fun multiplyMod(value: Long, modulus: UInt256!): T
open fun multiplyMod(value: Long, modulus: Long): T

Returns a value that is ((this * value) mod modulus).

open fun multiplyMod(value: UInt256!, modulus: UInt256!): T

pow

open fun pow(exponent: UInt256!): T
open fun pow(exponent: Long): T

subtract

open fun subtract(value: T): T
open fun subtract(value: Long): T

Returns a value that is (this - value).

open fun subtract(value: UInt256!): T

toBytes

open fun toBytes(): Bytes32!

toMinimalBytes

open fun toMinimalBytes(): Bytes!

toString

open fun toString(): String

toUInt256

open fun toUInt256(): UInt256!

zero

Return the zero value for this type.

open fun zero(): T

Inheritors

Wei

A unit measure of Wei as used by the Ethereum VM.

class Wei : BaseUInt256Value<Wei!>