tezos

package
v1.12.2 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2022 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Name   = "Tezos"
	Symbol = "XTZ"

	// base58 prefixes for 4 byte hash magics
	CHAIN_ID_PREFIX = "Net"

	// base58 prefixes for 16 byte hash magics
	ID_HASH_PREFIX = "id"

	// base58 prefixes for 20 byte hash magics
	ED25519_PUBLIC_KEY_HASH_PREFIX   = "tz1"
	SECP256K1_PUBLIC_KEY_HASH_PREFIX = "tz2"
	P256_PUBLIC_KEY_HASH_PREFIX      = "tz3"
	NOCURVE_PUBLIC_KEY_HASH_PREFIX   = "KT1"  // originated contract identifier
	BAKER_PUBLIC_KEY_HASH_PREFIX     = "SG1"  // baker contract (undeployed)
	BLINDED_PUBLIC_KEY_HASH_PREFIX   = "btz1" // blinded tz1

	// base58 prefixes for 32 byte hash magics
	BLOCK_HASH_PREFIX               = "B"
	OPERATION_HASH_PREFIX           = "o"
	OPERATION_LIST_HASH_PREFIX      = "Lo"
	OPERATION_LIST_LIST_HASH_PREFIX = "LLo"
	PROTOCOL_HASH_PREFIX            = "P"
	CONTEXT_HASH_PREFIX             = "Co"
	NONCE_HASH_PREFIX               = "nce"
	ED25519_SEED_PREFIX             = "edsk"
	ED25519_PUBLIC_KEY_PREFIX       = "edpk"
	SECP256K1_SECRET_KEY_PREFIX     = "spsk"
	P256_SECRET_KEY_PREFIX          = "p2sk"

	BLOCK_PAYLOAD_HASH_PREFIX                = "vh"  // "\001\106\242" (* vh(52) *)
	BLOCK_METADATA_HASH_PREFIX               = "bm"  // "\234\249" (* bm(52) *)
	OPERATION_METADATA_HASH_PREFIX           = "r"   // "\005\183" (* r(51) *)
	OPERATION_METADATA_LIST_HASH_PREFIX      = "Lr"  // "\134\039" (* Lr(52) *)
	OPERATION_METADATA_LIST_LIST_HASH_PREFIX = "LLr" // "\029\159\182" (* LLr(53) *)

	// base58 prefixes for 33 byte hash magics
	SECP256K1_PUBLIC_KEY_PREFIX = "sppk"
	P256_PUBLIC_KEY_PREFIX      = "p2pk"
	SECP256K1_SCALAR_PREFIX     = "SSp"
	SECP256K1_ELEMENT_PREFIX    = "GSp"

	// base58 prefixes for 54 byte hash magics
	SCRIPT_EXPR_HASH_PREFIX = "expr"

	// base58 prefixes for 56 byte hash magics
	ED25519_ENCRYPTED_SEED_PREFIX         = "edesk"
	SECP256K1_ENCRYPTED_SECRET_KEY_PREFIX = "spesk"
	P256_ENCRYPTED_SECRET_KEY_PREFIX      = "p2esk"

	// base58 prefixes for 60 byte hash magics
	SECP256K1_ENCRYPTED_SCALAR_PREFIX = "seesk" // "\001\131\036\086\248" (* seesk(93) *)

	// base58 prefixes for 64 byte hash magics
	ED25519_SECRET_KEY_PREFIX  = "edsk"
	ED25519_SIGNATURE_PREFIX   = "edsig"
	SECP256K1_SIGNATURE_PREFIX = "spsig1"
	P256_SIGNATURE_PREFIX      = "p2sig"
	GENERIC_SIGNATURE_PREFIX   = "sig"

	// base58 prefixes for Sapling byte hash magics
	SAPLING_SPENDING_KEY_PREFIX = "sask" // "\011\237\020\092" (* sask(241) *) // 169 bytes
	SAPLING_ADDRESS_PREFIX      = "zet1" // "\018\071\040\223" (* zet1(69) *) // 43 bytes
)

Variables

View Source
var (
	// ErrChecksumMismatch describes an error where decoding failed due
	// to a bad checksum.
	ErrChecksumMismatch = errors.New("tezos: checksum mismatch")

	// ErrUnknownAddressType describes an error where an address can not
	// decoded as a specific address type due to the string encoding
	// begining with an identifier byte unknown to any standard or
	// registered (via Register) network.
	ErrUnknownAddressType = errors.New("tezos: unknown address type")

	// InvalidAddress is an empty invalid address
	InvalidAddress = Address{Type: AddressTypeInvalid, Hash: nil}

	// ZeroAddress is a tz1 address with all bytes zero
	ZeroAddress = Address{Type: AddressTypeEd25519, Hash: make([]byte, HashTypePkhEd25519.Len())}

	// Burn Address
	BurnAddress = MustParseAddress("tz1burnburnburnburnburnburnburjAYjjX")
)
View Source
var (
	// ErrUnknownHashType describes an error where a hash can not
	// decoded as a specific hash type because the string encoding
	// starts with an unknown identifier.
	ErrUnknownHashType = errors.New("tezos: unknown hash type")

	// InvalidHash represents an empty invalid hash type
	InvalidHash = Hash{Type: HashTypeInvalid, Hash: nil}

	// ZeroHash
	ZeroOpHash    = NewOpHash(make([]byte, HashTypeOperation.Len()))
	ZeroBlockHash = NewBlockHash(make([]byte, HashTypeBlock.Len()))
)
View Source
var (
	// ErrUnknownKeyType describes an error where a type for a
	// public key is undefined.
	ErrUnknownKeyType = errors.New("tezos: unknown key type")

	// ErrPassphrase is returned when a required passphrase is missing
	ErrPassphrase = errors.New("tezos: passphrase required")

	InvalidKey = Key{Type: KeyTypeInvalid, Data: nil}

	// Digest is an alias for blake2b checksum algorithm
	Digest = blake2b.Sum256
)
View Source
var (
	// 4 byte hash magics
	CHAIN_ID = []byte{0x57, 0x52, 0x00} // "\087\082\000" (* Net(15) *)

	// 16 byte hash magics
	ID_HASH_ID = []byte{0x99, 0x67} // "\153\103" (* id(30) *) cryptobox_public_key_hash

	// 20 byte hash magics
	ED25519_PUBLIC_KEY_HASH_ID   = []byte{0x06, 0xA1, 0x9F}       // "\006\161\159" (* tz1(36) *)
	SECP256K1_PUBLIC_KEY_HASH_ID = []byte{0x06, 0xA1, 0xA1}       // "\006\161\161" (* tz2(36) *)
	P256_PUBLIC_KEY_HASH_ID      = []byte{0x06, 0xA1, 0xA4}       // "\006\161\164" (* tz3(36) *)
	NOCURVE_PUBLIC_KEY_HASH_ID   = []byte{0x02, 0x5A, 0x79}       // "\002\090\121" (* KT1(36) *)
	BAKER_PUBLIC_KEY_HASH_ID     = []byte{0x03, 0x38, 0xE2}       // "\003\056\226" (* SG1(36) *)
	BLINDED_PUBLIC_KEY_HASH_ID   = []byte{0x01, 0x02, 0x31, 0xDF} // "\002\090\121" (* btz1(37) *)

	// 32 byte hash magics
	BLOCK_HASH_ID               = []byte{0x01, 0x34}       // "\001\052" (* B(51) *)
	OPERATION_HASH_ID           = []byte{0x05, 0x74}       // "\005\116" (* o(51) *)
	OPERATION_LIST_HASH_ID      = []byte{0x85, 0xE9}       // "\133\233" (* Lo(52) *)
	OPERATION_LIST_LIST_HASH_ID = []byte{0x1D, 0x9F, 0x6D} // "\029\159\109" (* LLo(53) *)
	PROTOCOL_HASH_ID            = []byte{0x02, 0xAA}       // "\002\170" (* P(51) *)
	CONTEXT_HASH_ID             = []byte{0x4F, 0xC7}       // "\079\199" (* Co(52) *)
	NONCE_HASH_ID               = []byte{0x45, 0xDC, 0xA9} // "\069\220\169" (* nce(53) *)

	BLOCK_PAYLOAD_HASH_ID                = []byte{0x01, 0x6A, 0xF2} // "\001\106\242" (* vh(52) *)
	BLOCK_METADATA_HASH_ID               = []byte{0xEA, 0xF9}       // "\234\249" (* bm(52) *)
	OPERATION_METADATA_HASH_ID           = []byte{0x05, 0xB7}       // "\005\183" (* r(51) *)
	OPERATION_METADATA_LIST_HASH_ID      = []byte{0x86, 0x27}       // "\134\039" (* Lr(52) *)
	OPERATION_METADATA_LIST_LIST_HASH_ID = []byte{0x1D, 0x9F, 0xB6} // "\029\159\182" (* LLr(53) *)

	ED25519_SEED_ID         = []byte{0x0D, 0x0F, 0x3A, 0x07} // "\013\015\058\007" (* edsk(54) *)
	ED25519_PUBLIC_KEY_ID   = []byte{0x0D, 0x0F, 0x25, 0xD9} // "\013\015\037\217" (* edpk(54) *)
	SECP256K1_SECRET_KEY_ID = []byte{0x11, 0xA2, 0xE0, 0xC9} // "\017\162\224\201" (* spsk(54) *)
	P256_SECRET_KEY_ID      = []byte{0x10, 0x51, 0xEE, 0xBD} // "\016\081\238\189" (* p2sk(54) *)

	// 33 byte hash magics
	SECP256K1_PUBLIC_KEY_ID = []byte{0x03, 0xFE, 0xE2, 0x56} // "\003\254\226\086" (* sppk(55) *)
	P256_PUBLIC_KEY_ID      = []byte{0x03, 0xB2, 0x8B, 0x7F} // "\003\178\139\127" (* p2pk(55) *)
	SECP256K1_SCALAR_ID     = []byte{0x26, 0xF8, 0x88}       // "\038\248\136" (* SSp(53) *)
	SECP256K1_ELEMENT_ID    = []byte{0x05, 0x5C, 0x00}       // "\005\092\000" (* GSp(54) *)

	// 54 byte hash magics
	SCRIPT_EXPR_HASH_ID = []byte{0x0D, 0x2C, 0x40, 0x1B} // "\013\044\064\027" (* expr(54) *)

	// 56 byte hash magics
	ED25519_ENCRYPTED_SEED_ID         = []byte{0x07, 0x5A, 0x3C, 0xB3, 0x29} // "\007\090\060\179\041" (* edesk(88) *)
	SECP256K1_ENCRYPTED_SECRET_KEY_ID = []byte{0x09, 0xED, 0xF1, 0xAE, 0x96} // "\009\237\241\174\150" (* spesk(88) *)
	P256_ENCRYPTED_SECRET_KEY_ID      = []byte{0x09, 0x30, 0x39, 0x73, 0xAB} // "\009\048\057\115\171" (* p2esk(88) *)

	// 60 byte hash magics
	SECP256K1_ENCRYPTED_SCALAR_ID = []byte{0x01, 0x83, 0x24, 0x56, 0xF8} // "\001\131\036\086\248" (* seesk(93) *)

	// 64 byte hash magics
	ED25519_SECRET_KEY_ID  = []byte{0x2B, 0xF6, 0x4E, 0x07}       // "\043\246\078\007" (* edsk(98) *)
	ED25519_SIGNATURE_ID   = []byte{0x09, 0xF5, 0xCD, 0x86, 0x12} // "\009\245\205\134\018" (* edsig(99) *)
	SECP256K1_SIGNATURE_ID = []byte{0x0D, 0x73, 0x65, 0x13, 0x3F} // "\013\115\101\019\063" (* spsig1(99) *)
	P256_SIGNATURE_ID      = []byte{0x36, 0xF0, 0x2C, 0x34}       // "\054\240\044\052" (* p2sig(98) *)
	GENERIC_SIGNATURE_ID   = []byte{0x04, 0x82, 0x2B}             // "\004\130\043" (* sig(96) *)

	// Sapling magics
	SAPLING_SPENDING_KEY_ID = []byte{0x0b, 0xED, 0x14, 0x5C} // "\011\237\020\092" (* sask(241) *)
	SAPLING_ADDRESS_ID      = []byte{0x12, 0x47, 0x28, 0xDF} // "\018\071\040\223" (* zet1(69) *)
)
View Source
var (
	ProtoGenesis   = ParseProtocolHashSafe("PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i")
	ProtoBootstrap = ParseProtocolHashSafe("PtYuensgYBb3G3x1hLLbCmcav8ue8Kyd2khADcL5LsT5R1hcXex")
	ProtoV000      = ParseProtocolHashSafe("Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P")
	ProtoV001      = ParseProtocolHashSafe("PtCJ7pwoxe8JasnHY8YonnLYjcVHmhiARPJvqcC6VfHT5s8k8sY")
	ProtoV002      = ParseProtocolHashSafe("PsYLVpVvgbLhAhoqAkMFUo6gudkJ9weNXhUYCiLDzcUpFpkk8Wt")
	ProtoV003      = ParseProtocolHashSafe("PsddFKi32cMJ2qPjf43Qv5GDWLDPZb3T3bF6fLKiF5HtvHNU7aP")
	ProtoV004      = ParseProtocolHashSafe("Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd")
	ProtoV005_2    = ParseProtocolHashSafe("PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS")
	ProtoV006_2    = ParseProtocolHashSafe("PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb")
	ProtoV007      = ParseProtocolHashSafe("PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo")
	ProtoV008_2    = ParseProtocolHashSafe("PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA")
	ProtoV009      = ParseProtocolHashSafe("PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i")
	ProtoV010      = ParseProtocolHashSafe("PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV")
	ProtoV011_2    = ParseProtocolHashSafe("PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx")
	ProtoV012_2    = ParseProtocolHashSafe("Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A")

	// aliases
	Pt24m4xi = ProtoV004
	PsBabyM1 = ProtoV005_2
	PsCARTHA = ProtoV006_2
	PsDELPH1 = ProtoV007
	PtEdo2   = ProtoV008_2
	PsFLoren = ProtoV009
	PtGRANAD = ProtoV010
	PtHangz2 = ProtoV011_2
	Psithaca = ProtoV012_2

	Mainnet      = MustParseChainIdHash("NetXdQprcVkpaWU")
	Hangzhounet2 = MustParseChainIdHash("NetXZSsxBpMQeAT")
	Ithacanet2   = MustParseChainIdHash("NetXnHfVqm9iesp")

	// Order of deployed protocols on different networks
	// required to lookup correct block/vote/cycle offsets
	ProtocolVersions = map[uint32][]ProtocolHash{
		Mainnet.Uint32(): {
			ProtoGenesis,
			ProtoV000,
			ProtoV001,
			ProtoV002,
			ProtoV003,
			ProtoV004,
			ProtoV005_2,
			ProtoV006_2,
			ProtoV007,
			ProtoV008_2,
			ProtoV009,
			ProtoV010,
			ProtoV011_2,
			ProtoV012_2,
		},
		Hangzhounet2.Uint32(): {
			ProtoGenesis,
			ProtoBootstrap,
			ProtoV010,
			ProtoV011_2,
		},
		Ithacanet2.Uint32(): {
			ProtoGenesis,
			ProtoBootstrap,
			ProtoV011_2,
			ProtoV012_2,
		},
	}
)
View Source
var (
	// ErrUnknownSignatureType describes an error where a type for a
	// signature is undefined.
	ErrUnknownSignatureType = errors.New("unknown signature type")

	// ErrSignature is returned when signature verification fails
	ErrSignature = errors.New("signature mismatch")

	// InvalidSignature represents an empty invalid signature
	InvalidSignature = Signature{Type: SignatureTypeInvalid, Data: nil}

	// ZeroSignature represents a valid signature derived from null bytes
	ZeroSignature = MustParseSignature("sigMzJ4GVAvXEd2RjsKGfG2H9QvqTSKCZsuB2KiHbZRGFz72XgF6KaKADznh674fQgBatxw3xdHqTtMHUZAGRprxy64wg1aq")
)
View Source
var (
	// DefaultParams defines the blockchain configuration for Mainnet under the latest
	// protocol. It is used to generate compliant transaction encodings. To change,
	// either overwrite this default or set custom params per operation using
	// op.WithParams().
	DefaultParams = NewParams().
		ForNetwork(Mainnet).
		ForProtocol(ProtoV011_2).
		Mixin(&Params{
			OperationTagsVersion: 1,
			TimeBetweenBlocks: [2]time.Duration{
				60 * time.Second,
				40 * time.Second,
			},
			MaxOperationsTTL:             120,
			HardGasLimitPerOperation:     1040000,
			HardGasLimitPerBlock:         5200000,
			OriginationSize:              257,
			CostPerByte:                  250,
			HardStorageLimitPerOperation: 60000,
			MinimalBlockDelay:            30 * time.Second,
		})
)

Functions

func BlindHash

func BlindHash(hash, secret []byte) ([]byte, error)

func EncodeAddress

func EncodeAddress(typ AddressType, addrhash []byte) (string, error)

func EncodeBlindedAddress

func EncodeBlindedAddress(hash, secret []byte) (string, error)

func HasAddressPrefix

func HasAddressPrefix(s string) bool

func HasKeyPrefix

func HasKeyPrefix(s string) bool

func HasSignaturePrefix

func HasSignaturePrefix(s string) bool

func IsAddressBytes

func IsAddressBytes(b []byte) bool

IsAddressBytes checks whether a buffer likely contains a binary encoded address.

func IsEncryptedKey

func IsEncryptedKey(s string) bool

func IsPrivateKey

func IsPrivateKey(s string) bool

func IsPublicKey

func IsPublicKey(s string) bool

func IsSignature

func IsSignature(s string) bool

func MatchBlindedAddress

func MatchBlindedAddress(a, b Address, secret []byte) bool

Checks if address a when blinded with secret equals blinded address b.

Types

type Address

type Address struct {
	Type AddressType
	Hash []byte
}

func BlindAddress

func BlindAddress(a Address, secret []byte) (Address, error)

func DecodeBlindedAddress

func DecodeBlindedAddress(addr string) (Address, error)

func MustParseAddress

func MustParseAddress(addr string) Address

func NewAddress

func NewAddress(typ AddressType, hash []byte) Address

func ParseAddress

func ParseAddress(addr string) (Address, error)

func (Address) BakerAddress

func (a Address) BakerAddress() string

BakerAddress returns the string encoding of the address when used as baker contract.

func (Address) Bytes

func (a Address) Bytes() []byte

Bytes returns the 21 (implicit) or 22 byte (contract) tagged and optionally padded binary hash value of the address.

func (Address) Bytes22

func (a Address) Bytes22() []byte

Bytes22 returns the 22 byte tagged and padded binary encoding for contracts and EOAs (tz1/2/3). In contrast to Bytes which outputs the 21 byte address for EOAs here we add a leading 0-byte.

func (Address) Clone

func (a Address) Clone() Address

func (Address) ContractAddress

func (a Address) ContractAddress() string

ContractAddress returns the string encoding of the address when used as originated contract.

func (*Address) DecodeBlindedString

func (a *Address) DecodeBlindedString(addr string) error

func (Address) Equal

func (a Address) Equal(b Address) bool

func (Address) IsContract

func (a Address) IsContract() bool

func (Address) IsEOA

func (a Address) IsEOA() bool

func (Address) IsValid

func (a Address) IsValid() bool

func (Address) MarshalBinary

func (a Address) MarshalBinary() ([]byte, error)

MarshalBinary always output the 22 byte version for contracts and EOAs.

func (Address) MarshalText

func (a Address) MarshalText() ([]byte, error)

func (Address) Short

func (a Address) Short() string

func (Address) String

func (a Address) String() string

String returns the string encoding of the address.

func (*Address) UnmarshalBinary

func (a *Address) UnmarshalBinary(b []byte) error

UnmarshalBinary reads a 21 byte or 22 byte address versions and is resilient to longer byte strings that contain extra padding or a suffix (e.g. an entrypoint suffix as found in smart contract data).

func (*Address) UnmarshalText

func (a *Address) UnmarshalText(data []byte) error

type AddressFilter

type AddressFilter struct {
	// contains filtered or unexported fields
}

func NewAddressFilter

func NewAddressFilter(addrs ...Address) *AddressFilter

func (*AddressFilter) Add

func (s *AddressFilter) Add(addr Address)

func (*AddressFilter) AddUnique

func (s *AddressFilter) AddUnique(addr Address) bool

func (AddressFilter) Contains

func (s AddressFilter) Contains(addr Address) bool

func (*AddressFilter) Len

func (s *AddressFilter) Len() int

func (*AddressFilter) Merge

func (s *AddressFilter) Merge(b *AddressFilter)

func (*AddressFilter) Remove

func (s *AddressFilter) Remove(addr Address)

type AddressSet

type AddressSet struct {
	// contains filtered or unexported fields
}

func NewAddressSet

func NewAddressSet(addrs ...Address) *AddressSet

func (*AddressSet) Add

func (s *AddressSet) Add(addr Address)

func (*AddressSet) AddUnique

func (s *AddressSet) AddUnique(addr Address) bool

func (AddressSet) Contains

func (s AddressSet) Contains(addr Address) bool

func (*AddressSet) Len

func (s *AddressSet) Len() int

func (AddressSet) Map

func (s AddressSet) Map() map[uint64]Address

func (*AddressSet) Merge

func (s *AddressSet) Merge(b *AddressSet)

func (*AddressSet) Remove

func (s *AddressSet) Remove(addr Address)

func (AddressSet) Slice

func (s AddressSet) Slice() []Address

type AddressType

type AddressType byte

AddressType represents the type of a Tezos signature.

const (
	AddressTypeInvalid AddressType = iota
	AddressTypeEd25519
	AddressTypeSecp256k1
	AddressTypeP256
	AddressTypeContract
	AddressTypeBlinded
	AddressTypeBaker
	AddressTypeSapling
)

func ParseAddressTag

func ParseAddressTag(b byte) AddressType

func ParseAddressType

func ParseAddressType(s string) AddressType

func (AddressType) HashType

func (t AddressType) HashType() HashType

func (AddressType) IsValid

func (t AddressType) IsValid() bool

func (AddressType) KeyType

func (t AddressType) KeyType() KeyType

func (AddressType) MarshalText

func (t AddressType) MarshalText() ([]byte, error)

func (AddressType) Prefix

func (t AddressType) Prefix() string

func (AddressType) String

func (t AddressType) String() string

func (AddressType) Tag

func (t AddressType) Tag() byte

func (*AddressType) UnmarshalText

func (t *AddressType) UnmarshalText(data []byte) error

type BallotVote

type BallotVote byte

BallotVote represents a named ballot in Tezos.

const (
	BallotVoteInvalid BallotVote = iota
	BallotVoteYay
	BallotVoteNay
	BallotVotePass
)

func ParseBallotTag

func ParseBallotTag(t byte) BallotVote

func ParseBallotVote

func ParseBallotVote(s string) BallotVote

func (BallotVote) IsValid

func (v BallotVote) IsValid() bool

func (BallotVote) MarshalText

func (v BallotVote) MarshalText() ([]byte, error)

func (BallotVote) String

func (v BallotVote) String() string

func (BallotVote) Tag

func (v BallotVote) Tag() byte

func (*BallotVote) UnmarshalBinary

func (v *BallotVote) UnmarshalBinary(data []byte) error

func (*BallotVote) UnmarshalText

func (v *BallotVote) UnmarshalText(data []byte) error

type BlockHash

type BlockHash struct {
	Hash
}

BlockHash

func MustParseBlockHash

func MustParseBlockHash(s string) BlockHash

func NewBlockHash

func NewBlockHash(buf []byte) BlockHash

func ParseBlockHash

func ParseBlockHash(s string) (BlockHash, error)

func (BlockHash) Clone

func (h BlockHash) Clone() BlockHash

func (BlockHash) Equal

func (h BlockHash) Equal(h2 BlockHash) bool

func (*BlockHash) UnmarshalBinary

func (h *BlockHash) UnmarshalBinary(data []byte) error

func (*BlockHash) UnmarshalText

func (h *BlockHash) UnmarshalText(data []byte) error

type Bool

type Bool byte
const (
	False Bool = 0x00
	True  Bool = 0xff
)

func (*Bool) DecodeBuffer

func (b *Bool) DecodeBuffer(buf *bytes.Buffer) error

func (Bool) EncodeBuffer

func (b Bool) EncodeBuffer(buf *bytes.Buffer) error

type ChainIdHash

type ChainIdHash struct {
	Hash
}

ChainIdHash

func MustParseChainIdHash

func MustParseChainIdHash(s string) ChainIdHash

func NewChainIdHash

func NewChainIdHash(buf []byte) ChainIdHash

func ParseChainIdHash

func ParseChainIdHash(s string) (ChainIdHash, error)

func (ChainIdHash) Clone

func (h ChainIdHash) Clone() ChainIdHash

func (ChainIdHash) Equal

func (h ChainIdHash) Equal(h2 ChainIdHash) bool

func (ChainIdHash) Uint32

func (h ChainIdHash) Uint32() uint32

func (*ChainIdHash) UnmarshalBinary

func (h *ChainIdHash) UnmarshalBinary(data []byte) error

func (*ChainIdHash) UnmarshalText

func (h *ChainIdHash) UnmarshalText(data []byte) error

type ContextHash

type ContextHash struct {
	Hash
}

ContextHash

func MustParseContextHash

func MustParseContextHash(s string) ContextHash

func NewContextHash

func NewContextHash(buf []byte) ContextHash

func ParseContextHash

func ParseContextHash(s string) (ContextHash, error)

func (ContextHash) Clone

func (h ContextHash) Clone() ContextHash

func (ContextHash) Equal

func (h ContextHash) Equal(h2 ContextHash) bool

func (*ContextHash) UnmarshalBinary

func (h *ContextHash) UnmarshalBinary(data []byte) error

func (*ContextHash) UnmarshalText

func (h *ContextHash) UnmarshalText(data []byte) error

type Costs

type Costs struct {
	Fee            int64 // the total fee paid in mutez
	Burn           int64 // total amount of mutez burned (not included in fee)
	GasUsed        int64 // gas used
	StorageUsed    int64 // new storage bytes allocated
	StorageBurn    int64 // mutez burned for allocating new storage (not included in fee)
	AllocationBurn int64 // mutez burned for allocating a new account (not included in fee)
}

Costs represents all costs paid by an operation in Tezos. Its contents depends on operation type and activity. Consensus and voting operations have no cost, user operations have variable cost. For transactions with internal results costs are a summary.

func (Costs) Add

func (x Costs) Add(y Costs) Costs

Add adds two costs z = x + y and returns the sum z without changing any of the inputs.

type ExprHash

type ExprHash struct {
	Hash
}

ExprHash

func MustParseExprHash

func MustParseExprHash(s string) ExprHash

func NewExprHash

func NewExprHash(buf []byte) ExprHash

func ParseExprHash

func ParseExprHash(s string) (ExprHash, error)

func (ExprHash) Clone

func (h ExprHash) Clone() ExprHash

func (ExprHash) Equal

func (h ExprHash) Equal(h2 ExprHash) bool

func (*ExprHash) UnmarshalBinary

func (h *ExprHash) UnmarshalBinary(data []byte) error

func (*ExprHash) UnmarshalText

func (h *ExprHash) UnmarshalText(data []byte) error

type Hash

type Hash struct {
	Type HashType
	Hash []byte
}

func NewHash

func NewHash(typ HashType, hash []byte) Hash

func ParseHash

func ParseHash(s string) (Hash, error)

func (Hash) Bytes

func (h Hash) Bytes() []byte

Bytes returns the raw byte representation of the hash without type info.

func (Hash) Clone

func (h Hash) Clone() Hash

func (Hash) Equal

func (h Hash) Equal(h2 Hash) bool

func (Hash) Int64

func (h Hash) Int64() int64

Int64 ensures interface compatibility with the RPC packages' BlockID type

func (Hash) IsEmpty

func (h Hash) IsEmpty() bool

func (Hash) IsValid

func (h Hash) IsValid() bool

func (Hash) IsZero

func (h Hash) IsZero() bool

func (Hash) MarshalBinary

func (h Hash) MarshalBinary() ([]byte, error)

func (Hash) MarshalText

func (h Hash) MarshalText() ([]byte, error)

func (*Hash) Reset

func (h *Hash) Reset()

func (Hash) Short

func (h Hash) Short() string

func (Hash) String

func (h Hash) String() string

String returns the string encoding of the hash.

func (*Hash) UnmarshalText

func (h *Hash) UnmarshalText(data []byte) error

type HashType

type HashType byte
const (
	HashTypeInvalid HashType = iota
	HashTypeChainId
	HashTypeId
	HashTypePkhEd25519
	HashTypePkhSecp256k1
	HashTypePkhP256
	HashTypePkhNocurve
	HashTypePkhBlinded
	HashTypePkhBaker
	HashTypeBlock
	HashTypeOperation
	HashTypeOperationList
	HashTypeOperationListList
	HashTypeProtocol
	HashTypeContext
	HashTypeNonce
	HashTypeSeedEd25519
	HashTypePkEd25519
	HashTypeSkEd25519
	HashTypePkSecp256k1
	HashTypeSkSecp256k1
	HashTypePkP256
	HashTypeSkP256
	HashTypeScalarSecp256k1
	HashTypeElementSecp256k1
	HashTypeScriptExpr
	HashTypeEncryptedSeedEd25519
	HashTypeEncryptedSkSecp256k1
	HashTypeEncryptedSkP256
	HashTypeSigEd25519
	HashTypeSigSecp256k1
	HashTypeSigP256
	HashTypeSigGeneric

	HashTypeBlockPayload
	HashTypeBlockMetadata
	HashTypeOperationMetadata
	HashTypeOperationMetadataList
	HashTypeOperationMetadataListList
	HashTypeEncryptedSecp256k1Scalar
	HashTypeSaplingSpendingKey
	HashTypeSaplingAddress
)

func ParseHashType

func ParseHashType(s string) HashType

func (HashType) Base58Len

func (t HashType) Base58Len() int

func (HashType) IsValid

func (t HashType) IsValid() bool

func (HashType) Len

func (t HashType) Len() int

func (HashType) MatchPrefix

func (t HashType) MatchPrefix(s string) bool

func (HashType) Prefix

func (t HashType) Prefix() string

func (HashType) PrefixBytes

func (t HashType) PrefixBytes() []byte

func (HashType) String

func (t HashType) String() string

type HexBytes

type HexBytes []byte

HexBytes represents bytes as a JSON string of hexadecimal digits

func (HexBytes) Bytes

func (h HexBytes) Bytes() []byte

Bytes type-casts HexBytes back to a byte slice

func (HexBytes) MarshalText

func (h HexBytes) MarshalText() ([]byte, error)

MarshalText converts a byte slice to a hex encoded string. It implements the encoding.TextMarshaler interface, so that HexBytes can be used in Go structs in combination with the standard JSON library.

func (HexBytes) String

func (h HexBytes) String() string

String converts a byte slice to a hex encoded string

func (*HexBytes) UnmarshalText

func (h *HexBytes) UnmarshalText(data []byte) error

UnmarshalText umarshals a hex string to bytes. It implements the encoding.TextUnmarshaler interface, so that HexBytes can be used in Go structs in combination with the standard JSON library.

type Key

type Key struct {
	Type KeyType
	Data []byte
}

Key represents a public key on the Tezos blockchain.

func DecodeKey

func DecodeKey(buf []byte) (Key, error)

func MustParseKey

func MustParseKey(key string) Key

func NewKey

func NewKey(typ KeyType, data []byte) Key

func ParseKey

func ParseKey(s string) (Key, error)

func (Key) Address

func (k Key) Address() Address

func (Key) Bytes

func (k Key) Bytes() []byte

func (Key) Clone

func (k Key) Clone() Key

func (*Key) DecodeBuffer

func (k *Key) DecodeBuffer(buf *bytes.Buffer) error

func (*Key) EncodeBuffer

func (k *Key) EncodeBuffer(buf *bytes.Buffer) error

func (Key) Hash

func (k Key) Hash() []byte

func (Key) IsEqual

func (k Key) IsEqual(k2 Key) bool

func (Key) IsValid

func (k Key) IsValid() bool

func (Key) MarshalBinary

func (k Key) MarshalBinary() ([]byte, error)

func (Key) MarshalText

func (k Key) MarshalText() ([]byte, error)

func (Key) String

func (k Key) String() string

func (*Key) UnmarshalBinary

func (k *Key) UnmarshalBinary(b []byte) error

func (*Key) UnmarshalText

func (k *Key) UnmarshalText(data []byte) error

func (Key) Verify

func (k Key) Verify(hash []byte, sig Signature) error

Verify verifies the signature using the public key.

type KeyType

type KeyType byte

KeyType is a type that describes which cryptograhic curve is used by a public or private key

const (
	KeyTypeEd25519 KeyType = iota
	KeyTypeSecp256k1
	KeyTypeP256
	KeyTypeInvalid
)

func ParseKeyTag

func ParseKeyTag(b byte) KeyType

func ParseKeyType

func ParseKeyType(s string) (KeyType, bool)

func (KeyType) AddressType

func (t KeyType) AddressType() AddressType

func (KeyType) Curve

func (t KeyType) Curve() elliptic.Curve

func (KeyType) IsValid

func (t KeyType) IsValid() bool

func (KeyType) PkHashType

func (t KeyType) PkHashType() HashType

func (KeyType) PkPrefix

func (t KeyType) PkPrefix() string

func (KeyType) PkPrefixBytes

func (t KeyType) PkPrefixBytes() []byte

func (KeyType) SkHashType

func (t KeyType) SkHashType() HashType

func (KeyType) SkPrefix

func (t KeyType) SkPrefix() string

func (KeyType) SkPrefixBytes

func (t KeyType) SkPrefixBytes() []byte

func (KeyType) SkePrefix

func (t KeyType) SkePrefix() string

func (KeyType) SkePrefixBytes

func (t KeyType) SkePrefixBytes() []byte

func (KeyType) String

func (t KeyType) String() string

func (KeyType) Tag

func (t KeyType) Tag() byte

type Limits

type Limits struct {
	Fee          int64
	GasLimit     int64
	StorageLimit int64
}

Limits represents all resource limits defined for an operation in Tezos.

func (Limits) Add

func (x Limits) Add(y Limits) Limits

Add adds two limits z = x + y and returns the sum z without changing any of the inputs.

type N

type N int64

A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells is this is the last byte in the sequence (0) or if there is more to read (1). Size bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

func NewN

func NewN(i int64) N

func (N) Clone

func (n N) Clone() N

func (*N) DecodeBuffer

func (n *N) DecodeBuffer(buf *bytes.Buffer) error

func (N) EncodeBuffer

func (n N) EncodeBuffer(buf *bytes.Buffer) error

func (N) Equal

func (n N) Equal(x N) bool

func (N) Int64

func (n N) Int64() int64

func (N) IsZero

func (n N) IsZero() bool

func (N) MarshalBinary

func (n N) MarshalBinary() ([]byte, error)

func (N) MarshalText

func (n N) MarshalText() ([]byte, error)

func (*N) SetInt64

func (n *N) SetInt64(i int64) *N

func (N) String

func (n N) String() string

func (*N) UnmarshalBinary

func (n *N) UnmarshalBinary(data []byte) error

func (*N) UnmarshalText

func (n *N) UnmarshalText(d []byte) error

type NonceHash

type NonceHash struct {
	Hash
}

NonceHash

func MustParseNonceHash

func MustParseNonceHash(s string) NonceHash

func NewNonceHash

func NewNonceHash(buf []byte) NonceHash

func ParseNonceHash

func ParseNonceHash(s string) (NonceHash, error)

func ParseNonceHashSafe

func ParseNonceHashSafe(s string) NonceHash

func (NonceHash) Clone

func (h NonceHash) Clone() NonceHash

func (NonceHash) Equal

func (h NonceHash) Equal(h2 NonceHash) bool

func (*NonceHash) UnmarshalBinary

func (h *NonceHash) UnmarshalBinary(data []byte) error

func (*NonceHash) UnmarshalText

func (h *NonceHash) UnmarshalText(data []byte) error

type OpHash

type OpHash struct {
	Hash
}

OpHash

func MustParseOpHash

func MustParseOpHash(s string) OpHash

func NewOpHash

func NewOpHash(buf []byte) OpHash

func ParseOpHash

func ParseOpHash(s string) (OpHash, error)

func (OpHash) Clone

func (h OpHash) Clone() OpHash

func (OpHash) Equal

func (h OpHash) Equal(h2 OpHash) bool

func (*OpHash) UnmarshalBinary

func (h *OpHash) UnmarshalBinary(data []byte) error

func (*OpHash) UnmarshalText

func (h *OpHash) UnmarshalText(data []byte) error

type OpListListHash

type OpListListHash struct {
	Hash
}

OpListListHash

func MustParseOpListListHash

func MustParseOpListListHash(s string) OpListListHash

func NewOpListListHash

func NewOpListListHash(buf []byte) OpListListHash

func ParseOpListListHash

func ParseOpListListHash(s string) (OpListListHash, error)

func (OpListListHash) Clone

func (h OpListListHash) Clone() OpListListHash

func (OpListListHash) Equal

func (h OpListListHash) Equal(h2 OpListListHash) bool

func (*OpListListHash) UnmarshalBinary

func (h *OpListListHash) UnmarshalBinary(data []byte) error

func (*OpListListHash) UnmarshalText

func (h *OpListListHash) UnmarshalText(data []byte) error

type OpStatus

type OpStatus byte
const (
	OpStatusInvalid OpStatus = iota // 0
	OpStatusApplied                 // 1 (success)
	OpStatusFailed
	OpStatusSkipped
	OpStatusBacktracked
)

func ParseOpStatus

func ParseOpStatus(s string) OpStatus

func (OpStatus) IsSuccess

func (t OpStatus) IsSuccess() bool

func (OpStatus) IsValid

func (t OpStatus) IsValid() bool

func (OpStatus) MarshalText

func (t OpStatus) MarshalText() ([]byte, error)

func (OpStatus) String

func (t OpStatus) String() string

func (*OpStatus) UnmarshalText

func (t *OpStatus) UnmarshalText(data []byte) error

type OpType

type OpType byte
const (
	OpTypeInvalid                      OpType = iota
	OpTypeActivateAccount                     // 1
	OpTypeDoubleBakingEvidence                // 2
	OpTypeDoubleEndorsementEvidence           // 3
	OpTypeSeedNonceRevelation                 // 4
	OpTypeTransaction                         // 5
	OpTypeOrigination                         // 6
	OpTypeDelegation                          // 7
	OpTypeReveal                              // 8
	OpTypeEndorsement                         // 9
	OpTypeProposals                           // 10
	OpTypeBallot                              // 11
	OpTypeFailingNoop                         // 12 v009
	OpTypeEndorsementWithSlot                 // 13 v009
	OpTypeRegisterConstant                    // 14 v011
	OpTypePreendorsement                      // 15 v012
	OpTypeDoublePreendorsementEvidence        // 16 v012
	OpTypeSetDepositsLimit                    // 17 v012
)

enums are allocated in chronological order

func ParseOpTag

func ParseOpTag(t byte) OpType

func ParseOpTagVersion

func ParseOpTagVersion(t byte, ver int) OpType

func ParseOpType

func ParseOpType(s string) OpType

func (OpType) IsValid

func (t OpType) IsValid() bool

func (OpType) ListId

func (t OpType) ListId() int

func (OpType) MarshalText

func (t OpType) MarshalText() ([]byte, error)

func (OpType) MinSize

func (t OpType) MinSize() int

func (OpType) MinSizeVersion

func (t OpType) MinSizeVersion(ver int) int

func (OpType) String

func (t OpType) String() string

func (OpType) Tag

func (t OpType) Tag() byte

func (OpType) TagVersion

func (t OpType) TagVersion(ver int) byte

func (*OpType) UnmarshalText

func (t *OpType) UnmarshalText(data []byte) error

type Params

type Params struct {
	// chain identity, not part of RPC
	Name        string       `json:"name"`
	Network     string       `json:"network"`
	Symbol      string       `json:"symbol"`
	Deployment  int          `json:"deployment"`
	Version     int          `json:"version"`
	ChainId     ChainIdHash  `json:"chain_id"`
	Protocol    ProtocolHash `json:"protocol"`
	StartHeight int64        `json:"start_height"`
	EndHeight   int64        `json:"end_height"`
	Decimals    int          `json:"decimals"`
	Token       int64        `json:"units"` // atomic units per token

	// Per-protocol configs
	NoRewardCycles               int64            `json:"no_reward_cycles"`
	SecurityDepositRampUpCycles  int64            `json:"security_deposit_ramp_up_cycles"`
	PreservedCycles              int64            `json:"preserved_cycles"`
	BlocksPerCycle               int64            `json:"blocks_per_cycle"`
	BlocksPerCommitment          int64            `json:"blocks_per_commitment"`
	BlocksPerRollSnapshot        int64            `json:"blocks_per_roll_snapshot"`
	BlocksPerVotingPeriod        int64            `json:"blocks_per_voting_period"`
	TimeBetweenBlocks            [2]time.Duration `json:"time_between_blocks"`
	EndorsersPerBlock            int              `json:"endorsers_per_block"`
	HardGasLimitPerOperation     int64            `json:"hard_gas_limit_per_operation"`
	HardGasLimitPerBlock         int64            `json:"hard_gas_limit_per_block"`
	ProofOfWorkThreshold         int64            `json:"proof_of_work_threshold"`
	ProofOfWorkNonceSize         int              `json:"proof_of_work_nonce_size"`
	TokensPerRoll                int64            `json:"tokens_per_roll"`
	MichelsonMaximumTypeSize     int              `json:"michelson_maximum_type_size"`
	SeedNonceRevelationTip       int64            `json:"seed_nonce_revelation_tip"`
	OriginationSize              int64            `json:"origination_size"`
	OriginationBurn              int64            `json:"origination_burn"`
	BlockSecurityDeposit         int64            `json:"block_security_deposit"`
	EndorsementSecurityDeposit   int64            `json:"endorsement_security_deposit"`
	BlockReward                  int64            `json:"block_reward"`
	EndorsementReward            int64            `json:"endorsement_reward"`
	CostPerByte                  int64            `json:"cost_per_byte"`
	HardStorageLimitPerOperation int64            `json:"hard_storage_limit_per_operation"`
	TestChainDuration            int64            `json:"test_chain_duration"`
	MaxOperationDataLength       int              `json:"max_operation_data_length"`
	MaxProposalsPerDelegate      int              `json:"max_proposals_per_delegate"`
	MaxRevelationsPerBlock       int              `json:"max_revelations_per_block"`
	NonceLength                  int              `json:"nonce_length"`

	// New in Bablyon v005
	MinProposalQuorum int64 `json:"min_proposal_quorum"`
	QuorumMin         int64 `json:"quorum_min"`
	QuorumMax         int64 `json:"quorum_max"`

	// New in Carthage v006
	BlockRewardV6       [2]int64 `json:"block_rewards_v6"`
	EndorsementRewardV6 [2]int64 `json:"endorsement_rewards_v6"`

	// New in Delphi v007
	MaxAnonOpsPerBlock int `json:"max_anon_ops_per_block"` // was max_revelations_per_block

	// New in Granada v010
	LiquidityBakingEscapeEmaThreshold int64         `json:"liquidity_baking_escape_ema_threshold"`
	LiquidityBakingSubsidy            int64         `json:"liquidity_baking_subsidy"`
	LiquidityBakingSunsetLevel        int64         `json:"liquidity_baking_sunset_level"`
	MinimalBlockDelay                 time.Duration `json:"minimal_block_delay"`

	// New in Hangzhou v011
	MaxMichelineNodeCount          int      `json:"max_micheline_node_count"`
	MaxMichelineBytesLimit         int      `json:"max_micheline_bytes_limit"`
	MaxAllowedGlobalConstantsDepth int      `json:"max_allowed_global_constants_depth"`
	CacheLayout                    []string `json:"cache_layout"`

	// New in Ithaca v012
	BlocksPerStakeSnapshot                           int64         `json:"blocks_per_stake_snapshot"`
	BakingRewardFixedPortion                         int64         `json:"baking_reward_fixed_portion,string"`
	BakingRewardBonusPerSlot                         int64         `json:"baking_reward_bonus_per_slot,string"`
	EndorsingRewardPerSlot                           int64         `json:"endorsing_reward_per_slot,string"`
	DelayIncrementPerRound                           time.Duration `json:"delay_increment_per_round,string"`
	ConsensusCommitteeSize                           int           `json:"consensus_committee_size"`
	ConsensusThreshold                               int           `json:"consensus_threshold"`
	MinimalParticipationRatio                        Ratio         `json:"minimal_participation_ratio"`
	MaxSlashingPeriod                                int64         `json:"max_slashing_period"`
	FrozenDepositsPercentage                         int           `json:"frozen_deposits_percentage"`
	DoubleBakingPunishment                           int64         `json:"double_baking_punishment,string"`
	RatioOfFrozenDepositsSlashedPerDoubleEndorsement Ratio         `json:"ratio_of_frozen_deposits_slashed_per_double_endorsement"`

	// extra features to follow protocol upgrades
	MaxOperationsTTL     int64 `json:"max_operations_ttl"`               // in block meta until v011, explicit from v012+
	OperationTagsVersion int   `json:"operation_tags_version,omitempty"` // 1 after v005
	NumVotingPeriods     int   `json:"num_voting_periods,omitempty"`     // 5 after v008, 4 before
	StartBlockOffset     int64 `json:"start_block_offset,omitempty"`     // correct start/end cycle since Granada
	StartCycle           int64 `json:"start_cycle,omitempty"`            // correction since Granada v10
	VoteBlockOffset      int64 `json:"vote_block_offset,omitempty"`      // correction for Edo + Florence Mainnet-only +1 bug
}

func NewParams

func NewParams() *Params

func (*Params) BlockTime

func (p *Params) BlockTime() time.Duration

func (Params) Clean

func (p Params) Clean() *Params

func (*Params) ContainsCycle

func (p *Params) ContainsCycle(cycle int64) bool

func (*Params) ContainsHeight

func (p *Params) ContainsHeight(height int64) bool

func (*Params) ConvertAmount

func (p *Params) ConvertAmount(value float64) int64

convertAmount converts a floating point number, which may or may not be representable as an integer, to an integer type by rounding to the nearest integer. This is performed consistent with the General Decimal Arithmetic spec and according to IEEE 754-2008 roundTiesToEven

func (*Params) ConvertValue

func (p *Params) ConvertValue(amount int64) float64

func (*Params) CycleEndHeight

func (p *Params) CycleEndHeight(cycle int64) int64

func (*Params) CycleFromHeight

func (p *Params) CycleFromHeight(height int64) int64

func (*Params) CycleStartHeight

func (p *Params) CycleStartHeight(cycle int64) int64

func (*Params) ForCycle

func (p *Params) ForCycle(c int64) *Params

func (*Params) ForHeight

func (p *Params) ForHeight(h int64) *Params

func (*Params) ForNetwork

func (p *Params) ForNetwork(net ChainIdHash) *Params

func (*Params) ForProtocol

func (p *Params) ForProtocol(proto ProtocolHash) *Params

func (*Params) IsCycleEnd

func (p *Params) IsCycleEnd(height int64) bool

func (*Params) IsCycleStart

func (p *Params) IsCycleStart(height int64) bool

func (*Params) IsMainnet

func (p *Params) IsMainnet() bool

func (*Params) IsPostBabylon

func (p *Params) IsPostBabylon() bool

func (*Params) IsPreBabylonHeight

func (p *Params) IsPreBabylonHeight(height int64) bool

func (*Params) IsSeedRequired

func (p *Params) IsSeedRequired(height int64) bool

func (*Params) IsSnapshotBlock

func (p *Params) IsSnapshotBlock(height int64) bool

func (*Params) IsVoteEnd

func (p *Params) IsVoteEnd(height int64) bool

func (*Params) IsVoteStart

func (p *Params) IsVoteStart(height int64) bool

func (*Params) MaxBlockReward

func (p *Params) MaxBlockReward() int64

func (*Params) MaxSnapshotIndex

func (p *Params) MaxSnapshotIndex() int64

func (*Params) Mixin

func (p *Params) Mixin(src *Params) *Params

func (*Params) SnapshotBaseCycle

func (p *Params) SnapshotBaseCycle(cycle int64) int64

func (*Params) SnapshotBlock

func (p *Params) SnapshotBlock(cycle int64, index int) int64

func (*Params) SnapshotBlocks

func (p *Params) SnapshotBlocks() int64

func (*Params) SnapshotIndex

func (p *Params) SnapshotIndex(height int64) int

func (*Params) VoteEndHeight

func (p *Params) VoteEndHeight(height int64) int64

func (*Params) VoteStartHeight

func (p *Params) VoteStartHeight(height int64) int64

func (*Params) VotingStartCycleFromHeight

func (p *Params) VotingStartCycleFromHeight(height int64) int64

type PassphraseFunc

type PassphraseFunc func() ([]byte, error)

PassphraseFunc is a callback used to obtain a passphrase for decrypting a private key

type PayloadHash

type PayloadHash struct {
	Hash
}

PayloadHash

func MustParsePayloadHash

func MustParsePayloadHash(s string) PayloadHash

func NewPayloadHash

func NewPayloadHash(buf []byte) PayloadHash

func ParsePayloadHash

func ParsePayloadHash(s string) (PayloadHash, error)

func (PayloadHash) Clone

func (h PayloadHash) Clone() PayloadHash

func (PayloadHash) Equal

func (h PayloadHash) Equal(h2 PayloadHash) bool

func (*PayloadHash) UnmarshalBinary

func (h *PayloadHash) UnmarshalBinary(data []byte) error

func (*PayloadHash) UnmarshalText

func (h *PayloadHash) UnmarshalText(data []byte) error

type PrivateKey

type PrivateKey struct {
	Type KeyType
	Data []byte
}

PrivateKey represents a typed private key used for signing messages.

func GenerateKey

func GenerateKey(typ KeyType) (PrivateKey, error)

GenerateKey creates a random private key.

func ParseEncryptedPrivateKey

func ParseEncryptedPrivateKey(s string, fn PassphraseFunc) (k PrivateKey, err error)

ParseEncryptedPrivateKey attempts to parse and optionally decrypt a Tezos private key. When an encrypted key is detected, fn is called and expected to return the decoding passphrase.

func ParsePrivateKey

func ParsePrivateKey(s string) (PrivateKey, error)

func (PrivateKey) Address

func (k PrivateKey) Address() Address

func (PrivateKey) Encrypt

func (k PrivateKey) Encrypt(fn PassphraseFunc) (string, error)

Encrypt encrypts the private key with a passphrase obtained from calling fn.

func (PrivateKey) IsValid

func (k PrivateKey) IsValid() bool

func (PrivateKey) MarshalText

func (k PrivateKey) MarshalText() ([]byte, error)

func (PrivateKey) Public

func (k PrivateKey) Public() Key

Public returns the public key associated with the private key.

func (PrivateKey) Sign

func (k PrivateKey) Sign(hash []byte) (Signature, error)

Sign signs the digest (hash) of a message with the private key.

func (PrivateKey) String

func (k PrivateKey) String() string

func (*PrivateKey) UnmarshalText

func (k *PrivateKey) UnmarshalText(data []byte) error

type ProtocolHash

type ProtocolHash struct {
	Hash
}

ProtocolHash

func MustParseProtocolHash

func MustParseProtocolHash(s string) ProtocolHash

func NewProtocolHash

func NewProtocolHash(buf []byte) ProtocolHash

func ParseProtocolHash

func ParseProtocolHash(s string) (ProtocolHash, error)

func ParseProtocolHashSafe

func ParseProtocolHashSafe(s string) ProtocolHash

func (ProtocolHash) Clone

func (h ProtocolHash) Clone() ProtocolHash

func (ProtocolHash) Equal

func (h ProtocolHash) Equal(h2 ProtocolHash) bool

func (*ProtocolHash) UnmarshalBinary

func (h *ProtocolHash) UnmarshalBinary(data []byte) error

func (*ProtocolHash) UnmarshalText

func (h *ProtocolHash) UnmarshalText(data []byte) error

type Ratio

type Ratio struct {
	Num int `json:"numerator"`
	Den int `json:"denominator"`
}

Ratio represents a numeric ratio used in Ithaca constants

func (Ratio) Float64

func (r Ratio) Float64() float64

type RightType

type RightType byte
const (
	RightTypeInvalid RightType = iota
	RightTypeBaking
	RightTypeEndorsing
)

func ParseRightType

func ParseRightType(s string) RightType

func (RightType) IsValid

func (r RightType) IsValid() bool

func (RightType) MarshalText

func (r RightType) MarshalText() ([]byte, error)

func (RightType) String

func (r RightType) String() string

func (*RightType) UnmarshalText

func (r *RightType) UnmarshalText(data []byte) error

type Signature

type Signature struct {
	Type SignatureType
	Data []byte
}

Signature represents a typed Tezos signature.

func MustParseSignature

func MustParseSignature(s string) Signature

func NewSignature

func NewSignature(typ SignatureType, data []byte) Signature

func ParseSignature

func ParseSignature(s string) (Signature, error)

func (Signature) Bytes

func (s Signature) Bytes() []byte

func (Signature) Clone

func (s Signature) Clone() Signature

func (*Signature) DecodeBuffer

func (s *Signature) DecodeBuffer(buf *bytes.Buffer) error

func (Signature) Generic

func (s Signature) Generic() string

Signature converts a typed Tezos signature into a generic signature string.

func (Signature) IsEqual

func (s Signature) IsEqual(s2 Signature) bool

func (Signature) IsValid

func (s Signature) IsValid() bool

func (Signature) MarshalBinary

func (s Signature) MarshalBinary() ([]byte, error)

func (Signature) MarshalText

func (s Signature) MarshalText() ([]byte, error)

func (Signature) String

func (s Signature) String() string

func (*Signature) UnmarshalBinary

func (s *Signature) UnmarshalBinary(b []byte) error

func (*Signature) UnmarshalText

func (s *Signature) UnmarshalText(data []byte) error

type SignatureType

type SignatureType byte

SignatureType represents the type of a Tezos signature.

const (
	SignatureTypeEd25519 SignatureType = iota
	SignatureTypeSecp256k1
	SignatureTypeP256
	SignatureTypeGeneric
	SignatureTypeInvalid
)

func ParseSignatureTag

func ParseSignatureTag(b byte) SignatureType

func (SignatureType) HashType

func (t SignatureType) HashType() HashType

func (SignatureType) IsValid

func (t SignatureType) IsValid() bool

func (SignatureType) Len

func (t SignatureType) Len() int

func (SignatureType) Prefix

func (t SignatureType) Prefix() string

func (SignatureType) PrefixBytes

func (t SignatureType) PrefixBytes() []byte

func (SignatureType) String

func (t SignatureType) String() string

func (SignatureType) Tag

func (t SignatureType) Tag() byte

type VotingPeriodKind

type VotingPeriodKind byte

VotingPeriodKind represents a named voting period in Tezos.

const (
	VotingPeriodInvalid VotingPeriodKind = iota
	VotingPeriodProposal
	VotingPeriodExploration
	VotingPeriodCooldown
	VotingPeriodPromotion
	VotingPeriodAdoption
)

func ParseVotingPeriod

func ParseVotingPeriod(s string) VotingPeriodKind

func ToVotingPeriod

func ToVotingPeriod(i int) VotingPeriodKind

func (VotingPeriodKind) IsValid

func (v VotingPeriodKind) IsValid() bool

func (VotingPeriodKind) MarshalText

func (v VotingPeriodKind) MarshalText() ([]byte, error)

func (VotingPeriodKind) Num

func (v VotingPeriodKind) Num() int

func (VotingPeriodKind) String

func (v VotingPeriodKind) String() string

func (*VotingPeriodKind) UnmarshalText

func (v *VotingPeriodKind) UnmarshalText(data []byte) error

type Z

type Z big.Int

A variable length sequence of bytes, encoding a Zarith number. Each byte has a running unary size bit: the most significant bit of each byte tells if this is the last byte in the sequence (0) or if there is more to read (1). The second most significant bit of the first byte is reserved for the sign (positive if zero). Size and sign bits ignored, data is then the binary representation of the absolute value of the number in little endian order.

func NewZ

func NewZ(i int64) Z

func (Z) Big

func (z Z) Big() *big.Int

func (Z) Clone

func (z Z) Clone() Z

func (*Z) DecodeBuffer

func (z *Z) DecodeBuffer(buf *bytes.Buffer) error

func (*Z) EncodeBuffer

func (z *Z) EncodeBuffer(buf *bytes.Buffer) error

func (Z) Equal

func (z Z) Equal(x Z) bool

func (Z) Int64

func (z Z) Int64() int64

func (Z) IsZero

func (z Z) IsZero() bool

func (Z) MarshalBinary

func (z Z) MarshalBinary() ([]byte, error)

func (Z) MarshalText

func (z Z) MarshalText() ([]byte, error)

func (*Z) Set

func (z *Z) Set(b *big.Int) *Z

func (*Z) SetInt64

func (z *Z) SetInt64(i int64) *Z

func (Z) String

func (z Z) String() string

func (*Z) UnmarshalBinary

func (z *Z) UnmarshalBinary(data []byte) error

func (*Z) UnmarshalText

func (z *Z) UnmarshalText(d []byte) error

Jump to

Keyboard shortcuts

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