fftypes

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2022 License: Apache-2.0 Imports: 17 Imported by: 50

Documentation

Index

Constants

View Source
const MaxFFBigIntHexLength = 65
View Source
const (
	NullString = "null"
)
View Source
const (
	// ShortIDlphabet is designed for easy double-click select
	ShortIDlphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"
)

Variables

This section is empty.

Functions

func ParseToByteSize

func ParseToByteSize(byteString string) int64

ParseToByteSize is a standard handling of a number of bytes, in config or API options

func ParseToDuration

func ParseToDuration(durationString string) time.Duration

ParseToDuration is a standard handling of any duration string, in config or API options

func SafeHashCompare

func SafeHashCompare(h1 *Bytes32, h2 *Bytes32) bool

func ShortID

func ShortID() string

func ToStringArray

func ToStringArray(unknown interface{}) ([]string, bool)

Types

type Bytes32

type Bytes32 [32]byte

Bytes32 is a holder of a hash, that can be used to correlate onchain data with off-chain data.

func HashResult

func HashResult(hash hash.Hash) *Bytes32

func HashString

func HashString(s string) *Bytes32

func MustParseBytes32

func MustParseBytes32(hexStr string) *Bytes32

func NewRandB32

func NewRandB32() *Bytes32

func ParseBytes32

func ParseBytes32(ctx context.Context, hexStr string) (*Bytes32, error)

func UUIDBytes

func UUIDBytes(u *UUID) *Bytes32

UUIDBytes returns the bytes of a UUID as a compressed hex string

func (*Bytes32) Equals

func (b32 *Bytes32) Equals(b2 *Bytes32) bool

func (Bytes32) MarshalText

func (b32 Bytes32) MarshalText() ([]byte, error)

func (*Bytes32) Scan

func (b32 *Bytes32) Scan(src interface{}) error

Scan implements sql.Scanner

func (*Bytes32) String

func (b32 *Bytes32) String() string

func (*Bytes32) UnmarshalText

func (b32 *Bytes32) UnmarshalText(b []byte) error

func (*Bytes32) Value

func (b32 *Bytes32) Value() (driver.Value, error)

Value implements sql.Valuer

type ConfigRecord

type ConfigRecord struct {
	Key   string   `json:"key,omitempty"`
	Value *JSONAny `json:"value,omitempty"`
}

type FFBigInt

type FFBigInt big.Int

FFBigInt is a wrapper on a Go big.Int that standardizes JSON and DB serialization

func NewFFBigInt

func NewFFBigInt(x int64) *FFBigInt

func (*FFBigInt) Equals

func (i *FFBigInt) Equals(i2 *FFBigInt) bool

func (*FFBigInt) Int

func (i *FFBigInt) Int() *big.Int

func (*FFBigInt) Int64

func (i *FFBigInt) Int64() int64

func (FFBigInt) MarshalText

func (i FFBigInt) MarshalText() ([]byte, error)

func (*FFBigInt) Scan

func (i *FFBigInt) Scan(src interface{}) error

func (*FFBigInt) Uint64

func (i *FFBigInt) Uint64() uint64

func (*FFBigInt) UnmarshalJSON

func (i *FFBigInt) UnmarshalJSON(b []byte) error

func (FFBigInt) Value

func (i FFBigInt) Value() (driver.Value, error)

type FFDuration

type FFDuration time.Duration

FFDuration is serialized to JSON in the string format of time.Duration It can be unmarshalled from a number, or a string. - If it is a string in time.Duration format, that will be used - If it is a string that can be parsed as an int64, that will be used in Milliseconds - If it is a number, that will be used in Milliseconds

func ParseDurationString

func ParseDurationString(durationString string, def time.Duration) (FFDuration, error)

ParseDurationString is a standard handling of any duration string, in config or API options

func (*FFDuration) MarshalJSON

func (fd *FFDuration) MarshalJSON() ([]byte, error)

func (*FFDuration) Scan

func (fd *FFDuration) Scan(src interface{}) error

Scan implements sql.Scanner

func (*FFDuration) String

func (fd *FFDuration) String() string

func (*FFDuration) UnmarshalJSON

func (fd *FFDuration) UnmarshalJSON(b []byte) error

func (*FFDuration) Value

func (fd *FFDuration) Value() (driver.Value, error)

Value implements sql.Valuer

type FFTime

type FFTime time.Time

FFTime is serialized to JSON on the API in RFC3339 nanosecond UTC time (noting that JavaScript can parse this format happily into millisecond time with Date.pase()). It is persisted as a nanosecond resolution timestamp in the database. It can be parsed from RFC3339, or unix timestamps (second, millisecond or nanosecond resolution)

func Now

func Now() *FFTime

func ParseTimeString

func ParseTimeString(str string) (*FFTime, error)

func UnixTime

func UnixTime(unixTime int64) *FFTime

func ZeroTime

func ZeroTime() FFTime

func (*FFTime) Equal

func (ft *FFTime) Equal(ft2 *FFTime) bool

func (*FFTime) MarshalJSON

func (ft *FFTime) MarshalJSON() ([]byte, error)

func (*FFTime) Scan

func (ft *FFTime) Scan(src interface{}) error

Scan implements sql.Scanner

func (FFTime) String

func (ft FFTime) String() string

func (*FFTime) Time

func (ft *FFTime) Time() *time.Time

func (*FFTime) UnixNano

func (ft *FFTime) UnixNano() int64

func (*FFTime) UnmarshalText

func (ft *FFTime) UnmarshalText(b []byte) error

func (FFTime) Value

func (ft FFTime) Value() (driver.Value, error)

Value implements sql.Valuer

type HexUUID

type HexUUID = Bytes32

HexUUID is 32 character ASCII string containing the hex representation of UUID, with the dashes of the canonical representation removed

type JSONAny

type JSONAny string

JSONAny uses raw encode/decode to preserve field order, and can handle any types of field. It validates the JSON can be unmarshalled, but does not change the order. It does however trim out whitespace

func JSONAnyPtr

func JSONAnyPtr(str string) *JSONAny

func JSONAnyPtrBytes

func JSONAnyPtrBytes(b []byte) *JSONAny

func (*JSONAny) Bytes

func (h *JSONAny) Bytes() []byte

func (*JSONAny) Hash

func (h *JSONAny) Hash() *Bytes32

func (*JSONAny) IsNil

func (h *JSONAny) IsNil() bool

func (*JSONAny) JSONObject

func (h *JSONAny) JSONObject() JSONObject

JSONObject attempts to de-serailize the contained structure as a JSON Object (map) Safe and will never return nil Will return an empty object if the type is array, string, bool, number etc.

func (*JSONAny) JSONObjectNowarn

func (h *JSONAny) JSONObjectNowarn() JSONObject

JSONObjectNowarn acts the same as JSONObject, but does not warn if the value cannot be parsed as an object

func (*JSONAny) JSONObjectOk

func (h *JSONAny) JSONObjectOk(noWarn ...bool) (JSONObject, bool)

func (*JSONAny) Length

func (h *JSONAny) Length() int64

func (JSONAny) MarshalJSON

func (h JSONAny) MarshalJSON() ([]byte, error)

func (*JSONAny) Scan

func (h *JSONAny) Scan(src interface{}) error

Scan implements sql.Scanner

func (*JSONAny) String

func (h *JSONAny) String() string

func (*JSONAny) Unmarshal

func (h *JSONAny) Unmarshal(ctx context.Context, v interface{}) error

func (*JSONAny) UnmarshalJSON

func (h *JSONAny) UnmarshalJSON(b []byte) error

func (*JSONAny) Value

func (h *JSONAny) Value() (driver.Value, error)

Value ensures we write null to the DB for null values

type JSONObject

type JSONObject map[string]interface{}

JSONObject is a holder of a hash, that can be used to correlate onchain data with off-chain data.

func (JSONObject) GetBool

func (jd JSONObject) GetBool(key string) bool

func (JSONObject) GetInt64

func (jd JSONObject) GetInt64(key string) int64

func (JSONObject) GetInteger

func (jd JSONObject) GetInteger(key string) *big.Int

func (JSONObject) GetObject

func (jd JSONObject) GetObject(key string) JSONObject

func (JSONObject) GetObjectArray

func (jd JSONObject) GetObjectArray(key string) JSONObjectArray

func (JSONObject) GetObjectArrayOk

func (jd JSONObject) GetObjectArrayOk(key string) (JSONObjectArray, bool)

func (JSONObject) GetObjectOk

func (jd JSONObject) GetObjectOk(key string) (JSONObject, bool)

func (JSONObject) GetString

func (jd JSONObject) GetString(key string) string

func (JSONObject) GetStringArray

func (jd JSONObject) GetStringArray(key string) []string

func (JSONObject) GetStringArrayOk

func (jd JSONObject) GetStringArrayOk(key string) ([]string, bool)

func (JSONObject) GetStringOk

func (jd JSONObject) GetStringOk(key string) (string, bool)

func (JSONObject) Hash

func (jd JSONObject) Hash(jsonDesc string) (*Bytes32, error)

func (*JSONObject) Scan

func (jd *JSONObject) Scan(src interface{}) error

Scan implements sql.Scanner

func (JSONObject) String

func (jd JSONObject) String() string

func (JSONObject) Value

func (jd JSONObject) Value() (driver.Value, error)

Value implements sql.Valuer

type JSONObjectArray

type JSONObjectArray []JSONObject

JSONObjectArray is an array of JSONObject

func ToJSONObjectArray

func ToJSONObjectArray(unknown interface{}) (JSONObjectArray, bool)

func (JSONObjectArray) Hash

func (jd JSONObjectArray) Hash(jsonDesc string) (*Bytes32, error)

func (*JSONObjectArray) Scan

func (jd *JSONObjectArray) Scan(src interface{}) error

Scan implements sql.Scanner

func (JSONObjectArray) String

func (jd JSONObjectArray) String() string

func (JSONObjectArray) Value

func (jd JSONObjectArray) Value() (driver.Value, error)

type RESTError

type RESTError struct {
	Error string `json:"error"`
}

type UUID

type UUID uuid.UUID

UUID is a wrapper on a UUID implementation, ensuring Value handles nil

func MustParseUUID

func MustParseUUID(uuidStr string) *UUID

func NewUUID

func NewUUID() *UUID

func ParseUUID

func ParseUUID(ctx context.Context, uuidStr string) (*UUID, error)

func (*UUID) Equals

func (u *UUID) Equals(u2 *UUID) bool

func (*UUID) HashBucket

func (u *UUID) HashBucket(buckets int) int

func (UUID) MarshalBinary

func (u UUID) MarshalBinary() ([]byte, error)

func (UUID) MarshalText

func (u UUID) MarshalText() ([]byte, error)

func (*UUID) Scan

func (u *UUID) Scan(src interface{}) error

func (*UUID) String

func (u *UUID) String() string

func (*UUID) UnmarshalBinary

func (u *UUID) UnmarshalBinary(b []byte) error

func (*UUID) UnmarshalText

func (u *UUID) UnmarshalText(b []byte) error

func (*UUID) Value

func (u *UUID) Value() (driver.Value, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL