Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

consts.gno

3.19 Kb · 109 lines
  1package consts
  2
  3import (
  4	i256 "gno.land/p/gnoswap/int256/v1"
  5	u256 "gno.land/p/gnoswap/uint256/v1"
  6)
  7
  8// u256.Uint and i256.Int are little-endian [4]uint64:
  9// {arr[0]=least significant, arr[1], arr[2], arr[3]=most significant}.
 10
 11// MaxUint256 returns 2^256 - 1.
 12//
 13// Returns:
 14//   - value: a fresh Uint equal to 2^256-1
 15func MaxUint256() *u256.Uint {
 16	return &u256.Uint{18446744073709551615, 18446744073709551615, 18446744073709551615, 18446744073709551615}
 17}
 18
 19// MaxUint128 returns 2^128 - 1, the maximum uint128 value.
 20//
 21// Returns:
 22//   - value: a fresh Uint equal to 2^128-1
 23func MaxUint128() *u256.Uint {
 24	return &u256.Uint{18446744073709551615, 18446744073709551615, 0, 0}
 25}
 26
 27// MaxInt256 returns 2^255 - 1, the maximum int256 value, as an unsigned u256.
 28//
 29// Returns:
 30//   - value: a fresh Uint equal to 2^255-1
 31func MaxInt256() *u256.Uint {
 32	return &u256.Uint{18446744073709551615, 18446744073709551615, 18446744073709551615, 9223372036854775807}
 33}
 34
 35// Q96 returns 2^96, the Q64.96 fixed-point scaling factor.
 36//
 37// Returns:
 38//   - value: a fresh Uint equal to 2^96, the Q64.96 scale
 39func Q96() *u256.Uint {
 40	return &u256.Uint{0, 4294967296, 0, 0}
 41}
 42
 43// Q128 returns 2^128, the Q128.128 fixed-point scaling factor.
 44//
 45// Returns:
 46//   - value: a fresh Uint equal to 2^128, the Q128.128 scale
 47func Q128() *u256.Uint {
 48	return &u256.Uint{0, 0, 1, 0}
 49}
 50
 51// Q192 returns 2^192.
 52//
 53// Returns:
 54//   - value: a fresh Uint equal to 2^192
 55func Q192() *u256.Uint {
 56	return &u256.Uint{0, 0, 0, 1}
 57}
 58
 59// Max160 returns 2^160 - 1, the maximum value representable in 160 bits.
 60//
 61// Returns:
 62//   - value: a fresh Uint equal to 2^160-1
 63func Max160() *u256.Uint {
 64	return &u256.Uint{18446744073709551615, 18446744073709551615, 4294967295, 0}
 65}
 66
 67// MinSqrtRatio returns the minimum valid sqrt price ratio (4295128739),
 68// equal to TickMathGetSqrtRatioAtTick(minTick).
 69//
 70// Returns:
 71//   - value: a fresh Uint equal to the minimum valid sqrt-price ratio
 72func MinSqrtRatio() *u256.Uint {
 73	return &u256.Uint{4295128739, 0, 0, 0}
 74}
 75
 76// MaxSqrtRatio returns the upper bound of the valid sqrt price range
 77// (1461446703485210103287273052203988822378723970342), equal to
 78// TickMathGetSqrtRatioAtTick(maxTick). TickMathGetTickAtSqrtRatio treats this
 79// boundary as exclusive and accepts values in [MinSqrtRatio, MaxSqrtRatio).
 80//
 81// Returns:
 82//   - value: a fresh Uint equal to the exclusive upper sqrt-price boundary
 83func MaxSqrtRatio() *u256.Uint {
 84	return &u256.Uint{6743328256752651558, 17280870778742802505, 4294805859, 0}
 85}
 86
 87// MaxInt128I256 returns 2^127 - 1, the maximum int128 value, as a signed i256.
 88//
 89// Returns:
 90//   - value: a fresh signed Int equal to 2^127-1
 91func MaxInt128I256() *i256.Int {
 92	return &i256.Int{18446744073709551615, 9223372036854775807, 0, 0}
 93}
 94
 95// MaxInt64I256 returns 2^63 - 1, the maximum int64 value, as a signed i256.
 96//
 97// Returns:
 98//   - value: a fresh signed Int equal to 2^63-1
 99func MaxInt64I256() *i256.Int {
100	return &i256.Int{9223372036854775807, 0, 0, 0}
101}
102
103// MinInt64I256 returns -2^63, the minimum int64 value, as a signed i256.
104//
105// Returns:
106//   - value: a fresh signed Int equal to -2^63
107func MinInt64I256() *i256.Int {
108	return &i256.Int{9223372036854775808, 18446744073709551615, 18446744073709551615, 18446744073709551615}
109}