Encoding/Decoding module for urbit @p (scrambled) and @q (unscrambled) representations of numbers, in accordance with https://urbit.org/docs/hoon/reference/auras.
Phonemic Base (Ship Names)
Try to convert a @p encoded string into an Atom, failing on improperly formatted strings.
import Urbit.Encoding.Atom as Atom
import BigInt
fromPatp "~sampel-palnet"
|> Result.map (Atom.toBigInt >> BigInt.toString)
--> Ok "1624961343"Parser for @p encoded strings.
Phonemic Base, Unscrambled
Try to convert an Atom into a @q encoded string, failing on negative numbers.
import Urbit.Encoding.Atom as Atom
Atom.fromInt 5 |> Maybe.map toPatq
--> Just "~per"Try to convert a @q encoded string into an Atom, failing on improperly formatted strings.
import Urbit.Encoding.Atom as Atom
import BigInt
fromPatq "~sampel"
|> Result.map (Atom.toBigInt >> BigInt.toString)
--> Ok "1135"Parser for @q encoded strings.
Try to convert an Atom into a @p encoded string, failing on negative numbers.