5.7.1.6 实用程序
以下这些函数处理的值,是以 JavaScript 的形式表现 Reach 中的值。
—
protect(t, x) => x
断言 x 的值具有 Reach 的类型 t 。如果不是这样,则抛出异常。
—
T_Null => ReachType
T_Bool => ReachType
T_UInt => ReachType
T_Bytes(number) => ReachType
T_Digest => ReachType
T_Address => ReachType
T_Array(ReachType, number) => ReachType
T_Tuple([ReachType …]) => ReachType
T_Object({Key: ReachType …}) => ReachType
T_Data({Variant: ReachType …}) => ReachType
以上每一个都代表相应的 Reach 类型。
—
assert(p)
若未给定 true,则抛出异常。
—
Array_set(arr, idx, val)
返回与 arr 相同的新数组,只是索引 idx 是 val 。
—
bigNumberify(x) => UInt
isBigNumber(x) => bool
bigNumberToNumber(x) => number
bigNumberify 将 JavaScript 数字转换为 BigNumber ,即 Reach 的 UInt 在 JavaScript 的表示。
isBigNumber 检查其输入是否为 BigNumber 。
bigNumberToNumber 将 BigNumberRify 作为其参数进行显式调用,并返回一个 JavaScript 数字。
—
isHex(x) => bool
hexToBigNumber(bytes) => UInt
stringToHex(string) => bytes
bigNumberToHex(UInt) => bytes
uintToBytes(UInt) => bytes
bytesEq(bytes, bytes) => bool
digestEq(Digest, Digest) => bool
addressEq(Address, Address) => bool
这些额外的实用程序用转换和比较。
—
digest(x) => Digest
将值进行哈希处理。
—
randomUInt() => UInt
生成随机比特作为一个 UInt 。生成的比特数取决于特定的共识网络。
—
hasRandom
该值适用于需要 random 函数的参与者交互接口。
—
parseFixedPoint(FixedPoint) => number
将定点数 FixedPoint 解析为 Javascript 数。
—
parseInt(Int) => number
将带符号 Int 解析为 Javascript 数。
—
add(UInt, UInt) => UInt
sub(UInt, UInt) => UInt
mod(UInt, UInt) => UInt
mul(UInt, UInt) => UInt
div(UInt, UInt) => UInt
UInt 的整数运算。
—
eq(UInt, UInt) => bool
ge(UInt, UInt) => bool
gt(UInt, UInt) => bool
le(UInt, UInt) => bool
lt(UInt, UInt) => bool
UInt 的整数比较。
—
以下导出用于处理网络代币。
standardUnit // string
atomicUnit // string
minimumBalance // atomicUnitAmount
parseCurrency(standardUnitAmount) => atomicUnitAmount
formatCurrency(atomicUnitAmount, int) => string // 以标准单位显示余额
这些函数以网络的标准单位和原子单位处理余额。标准单位是与该网络最普遍相关的网络代币单位。例如,以太坊的标准单位是 ETH 。原子单位是标准单位的最小度量单位。例如,以太坊的原子单位是 WEI 。原子单位是原子的,这意味着它不能被分成更小的单位。
一些共识网络,尤其是基于 PoS(权益证明)的,在他们的账户上有最低余额,因此这被显示为 minimumBalance. 。
因为 1 ETH = 1,000,000,000,000,000,000 WEI ,故 BigNumber 用于代表 WEI 的值。
bigNumberify 将被 formatCurrency 作为其第一个参数显式调用。