tezos

package
v1.13.2 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2022 License: MIT Imports: 23 Imported by: 46

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
	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

	// base58 prefixes for rollup hash magics
	BLS12_381_PUBLIC_KEY_HASH_PREFIX      = "tz4"
	GENERIC_AGGREGATE_SIGNATURE_PREFIX    = "asig"
	BLS12_381_SIGNATURE_PREFIX            = "BLsig"
	BLS12_381_PUBLIC_KEY_PREFIX           = "BLpk"
	BLS12_381_SECRET_KEY_PREFIX           = "BLsk"
	BLS12_381_ENCRYPTED_SECRET_KEY_PREFIX = "BLesk"
	TORU_ADDRESS_PREFIX                   = "txr1"
	TORU_INBOX_HASH_PREFIX                = "txi"
	TORU_MESSAGE_HASH_PREFIX              = "txm"
	TORU_COMMITMENT_HASH_PREFIX           = "txc"
	TORU_MESSAGE_RESULT_HASH_PREFIX       = "txmr"
	TORU_MESSAGE_RESULT_LIST_HASH_PREFIX  = "txM"
	TORU_WITHDRAW_LIST_HASH_PREFIX        = "txw"

	// sidechains
	DEKU_CONTRACT_HASH_PREFIX = "DK1"
)

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()))
	EmptyExprHash = MustParseExprHash("expru5X1yxJG6ezR2uHMotwMLNmSzQyh5t1vUnhjx4cS6Pv9qE1Sdo")
)
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) *)
	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) *)

	// Rollup hash magics
	BLS12_381_PUBLIC_KEY_HASH_ID      = []byte{6, 161, 166}       // "\006\161\166" tz4(36) 20
	GENERIC_AGGREGATE_SIGNATURE_ID    = []byte{2, 075, 234, 101}  // "\002\075\234\101" asig(96) 141
	BLS12_381_SIGNATURE_ID            = []byte{40, 171, 064, 207} // "\040\171\064\207" (* BLsig(96) *) 142
	BLS12_381_PUBLIC_KEY_ID           = []byte{6, 149, 135, 204}  // "\006\149\135\204" (* BLpk(48) *) 76
	BLS12_381_SECRET_KEY_ID           = []byte{3, 150, 192, 40}   // "\003\150\192\040" (* BLsk(32) *) 54
	BLS12_381_ENCRYPTED_SECRET_KEY_ID = []byte{2, 5, 30, 53, 25}  // "\002\005\030\053\025" (* BLesk(58) *) 88
	TORU_ADDRESS_ID                   = []byte{1, 128, 120, 31}   // "\001\128\120\031" txr1(37) 20
	TORU_INBOX_HASH_ID                = []byte{79, 148, 196}      // "\079\148\196" txi(53) 32
	TORU_MESSAGE_HASH_ID              = []byte{79, 149, 30}       // "\079\149\030" txm(53) 32
	TORU_COMMITMENT_HASH_ID           = []byte{79, 148, 17}       // "\079\148\017" txc(53) 32
	TORU_MESSAGE_RESULT_HASH_ID       = []byte{18, 7, 206, 87}    // "\018\007\206\087" txmr(54) 32
	TORU_MESSAGE_RESULT_LIST_HASH_ID  = []byte{79, 146, 82}       // "\079\146\082" txM(53) 32
	TORU_WITHDRAW_LIST_HASH_ID        = []byte{79, 150, 72}       // "\079\150\072" txw(53) 32

	// Sidechains
	DEKU_CONTRACT_HASH_ID = []byte{1, 146, 6} // "\001\146\006" (* DK1(36) *)
)
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(ProtoV012_2).
					Mixin(&Params{
			OperationTagsVersion:         2,
			MaxOperationsTTL:             120,
			HardGasLimitPerOperation:     1040000,
			HardGasLimitPerBlock:         5200000,
			OriginationSize:              257,
			CostPerByte:                  250,
			HardStorageLimitPerOperation: 60000,
			MinimalBlockDelay:            30 * time.Second,
		})

	// GhostnetParams defines the blockchain configuration for Ithaca testnet.
	// To produce compliant transactions, use these defaults in op.WithParams().
	GhostnetParams = NewParams().
					ForNetwork(Ghostnet).
					ForProtocol(ProtoV013_2).
					Mixin(&Params{
			OperationTagsVersion:         2,
			MaxOperationsTTL:             120,
			HardGasLimitPerOperation:     1040000,
			HardGasLimitPerBlock:         5200000,
			OriginationSize:              257,
			CostPerByte:                  250,
			HardStorageLimitPerOperation: 60000,
			MinimalBlockDelay:            15 * time.Second,
		})

	// JakartanetParams defines the blockchain configuration for Ithaca testnet.
	// To produce compliant transactions, use these defaults in op.WithParams().
	JakartanetParams = NewParams().
						ForNetwork(Jakartanet).
						ForProtocol(ProtoV013_2).
						Mixin(&Params{
			OperationTagsVersion:         2,
			MaxOperationsTTL:             120,
			HardGasLimitPerOperation:     1040000,
			HardGasLimitPerBlock:         5200000,
			OriginationSize:              257,
			CostPerByte:                  250,
			HardStorageLimitPerOperation: 60000,
			MinimalBlockDelay:            15 * time.Second,
		})
)
View Source
var (
	ProtoGenesis   = ParseProtocolHashSafe("PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i")
	ProtoBootstrap = 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")
	ProtoV013_2    = ParseProtocolHashSafe("PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY")

	// aliases
	PtAthens = ProtoV004
	PsBabyM1 = ProtoV005_2
	PsCARTHA = ProtoV006_2
	PsDELPH1 = ProtoV007
	PtEdo2Zk = ProtoV008_2
	PsFLoren = ProtoV009
	PtGRANAD = ProtoV010
	PtHangz2 = ProtoV011_2
	Psithaca = ProtoV012_2
	PtJakart = ProtoV013_2

	Mainnet    = MustParseChainIdHash("NetXdQprcVkpaWU")
	Jakartanet = MustParseChainIdHash("NetXLH1uAxK7CCh")
	Ghostnet   = MustParseChainIdHash("NetXnHfVqm9iesp")

	// Order of deployed protocols on different networks
	// required to lookup correct block/vote/cycle offsets
	ProtocolVersions = map[uint32][]ProtocolHash{
		Mainnet.Uint32(): {
			ProtoGenesis,
			ProtoBootstrap,
			ProtoV001,
			ProtoV002,
			ProtoV003,
			ProtoV004,
			ProtoV005_2,
			ProtoV006_2,
			ProtoV007,
			ProtoV008_2,
			ProtoV009,
			ProtoV010,
			ProtoV011_2,
			ProtoV012_2,
			ProtoV013_2,
		},
		Jakartanet.Uint32(): {
			ProtoGenesis,
			ProtoBootstrap,
			ProtoV012_2,
			ProtoV013_2,
		},
		Ghostnet.Uint32(): {
			ProtoGenesis,
			ProtoBootstrap,
			ProtoV011_2,
			ProtoV012_2,
			ProtoV013_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")
)

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 added in v0.17.3

func IsEncryptedKey(s string) bool

func IsPrivateKey added in v0.17.3

func IsPrivateKey(s string) bool

func IsPublicKey added in v0.17.3

func IsPublicKey(s string) bool

func IsSignature added in v0.17.3

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) 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) DekuAddress added in v1.13.2

func (a Address) DekuAddress() string

DekuAddress returns the string encoding of the address when used as rollup contract.

func (Address) Equal

func (a Address) Equal(b Address) bool

func (Address) IsContract added in v0.11.0

func (a Address) IsContract() bool

func (Address) IsDekuContract added in v1.13.2

func (a Address) IsDekuContract() bool

func (Address) IsEOA added in v0.11.0

func (a Address) IsEOA() bool

func (Address) IsRollup added in v0.17.3

func (a Address) IsRollup() 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 added in v0.9.6

func (a Address) Short() string

func (Address) String

func (a Address) String() string

String returns the string encoding of the address.

func (Address) ToruAddress added in v1.13.0

func (a Address) ToruAddress() string

ToruAddress returns the string encoding of the address when used as rollup contract.

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) HasCollisions added in v0.17.3

func (s AddressSet) HasCollisions() 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 added in v0.9.9

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
	AddressTypeSapling
	AddressTypeBls12_381
	AddressTypeToru
	AddressTypeDekuContract
)

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 added in v0.9.8

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 added in v0.9.8

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 added in v0.17.3

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 added in v0.17.3

func (v BallotVote) Tag() byte

func (*BallotVote) UnmarshalBinary added in v0.17.3

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 added in v0.17.3

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

func (*Bool) DecodeBuffer added in v0.17.3

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

func (Bool) EncodeBuffer added in v0.17.3

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 added in v0.11.0

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 added in v0.17.3

type ContextHash struct {
	Hash
}

ContextHash

func MustParseContextHash added in v0.17.3

func MustParseContextHash(s string) ContextHash

func NewContextHash added in v0.17.3

func NewContextHash(buf []byte) ContextHash

func ParseContextHash added in v0.17.3

func ParseContextHash(s string) (ContextHash, error)

func (ContextHash) Clone added in v0.17.3

func (h ContextHash) Clone() ContextHash

func (ContextHash) Equal added in v0.17.3

func (h ContextHash) Equal(h2 ContextHash) bool

func (*ContextHash) UnmarshalBinary added in v0.17.3

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

func (*ContextHash) UnmarshalText added in v0.17.3

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

type Costs added in v0.17.3

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 added in v0.17.3

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 added in v0.11.0

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 added in v1.12.0

func (h Hash) Int64() int64

Int64 ensures interface compatibility with the RPC packages' BlockID type

func (Hash) IsEmpty added in v1.12.0

func (h Hash) IsEmpty() bool

func (Hash) IsValid

func (h Hash) IsValid() bool

func (Hash) IsZero added in v1.12.0

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 added in v0.9.6

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
	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

	HashTypePkhBls12_381
	HashTypeSigGenericAggregate
	HashTypeSigBls12_381
	HashTypePkBls12_381
	HashTypeSkBls12_381
	HashTypeEncryptedSkBls12_381
	HashTypeToruAddress
	HashTypeToruInbox
	HashTypeToruMessage
	HashTypeToruCommitment
	HashTypeToruMessageResult
	HashTypeToruMessageResultList
	HashTypeToruWithdrawList

	HashTypeDekuContract
)

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 added in v0.17.3

type HexBytes []byte

HexBytes represents bytes as a JSON string of hexadecimal digits

func (HexBytes) Bytes added in v0.17.3

func (h HexBytes) Bytes() []byte

Bytes type-casts HexBytes back to a byte slice

func (HexBytes) MarshalText added in v0.17.3

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 added in v0.17.3

func (h HexBytes) String() string

String converts a byte slice to a hex encoded string

func (*HexBytes) UnmarshalText added in v0.17.3

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 added in v0.9.4

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 added in v0.17.3

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

func (*Key) EncodeBuffer added in v0.17.3

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 added in v0.17.3

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
	KeyTypeBls12_381
	KeyTypeInvalid
)

func ParseKeyTag

func ParseKeyTag(b byte) KeyType

func ParseKeyType added in v0.17.3

func ParseKeyType(s string) (KeyType, bool)

func (KeyType) AddressType

func (t KeyType) AddressType() AddressType

func (KeyType) Curve added in v0.17.3

func (t KeyType) Curve() elliptic.Curve

func (KeyType) IsValid

func (t KeyType) IsValid() bool

func (KeyType) PkHashType added in v0.17.3

func (t KeyType) PkHashType() HashType

func (KeyType) PkPrefix added in v0.17.3

func (t KeyType) PkPrefix() string

func (KeyType) PkPrefixBytes added in v0.17.3

func (t KeyType) PkPrefixBytes() []byte

func (KeyType) SkHashType added in v0.17.3

func (t KeyType) SkHashType() HashType

func (KeyType) SkPrefix added in v0.17.3

func (t KeyType) SkPrefix() string

func (KeyType) SkPrefixBytes added in v0.17.3

func (t KeyType) SkPrefixBytes() []byte

func (KeyType) SkePrefix added in v0.17.3

func (t KeyType) SkePrefix() string

func (KeyType) SkePrefixBytes added in v0.17.3

func (t KeyType) SkePrefixBytes() []byte

func (KeyType) String

func (t KeyType) String() string

func (KeyType) Tag

func (t KeyType) Tag() byte

type LbVote added in v0.17.3

type LbVote byte

LbVote represents liquidity baking votes in Tezos block headers.

const (
	LbVoteInvalid LbVote = iota
	LbVoteOn
	LbVoteOff
	LbVotePass
)

func ParseLbVoteTag added in v0.17.3

func ParseLbVoteTag(t byte) LbVote

func (LbVote) IsValid added in v0.17.3

func (v LbVote) IsValid() bool

func (LbVote) MarshalText added in v0.17.3

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

func (LbVote) String added in v0.17.3

func (v LbVote) String() string

func (LbVote) Tag added in v0.17.3

func (v LbVote) Tag() byte

func (*LbVote) UnmarshalBinary added in v0.17.3

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

func (*LbVote) UnmarshalJSON added in v0.17.3

func (v *LbVote) UnmarshalJSON(data []byte) error

type Limits added in v0.17.3

type Limits struct {
	Fee          int64
	GasLimit     int64
	StorageLimit int64
}

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

func (Limits) Add added in v0.17.3

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 added in v0.17.3

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 added in v0.17.3

func NewN(i int64) N

func (N) Clone added in v0.17.3

func (n N) Clone() N

func (N) Decimals added in v0.17.3

func (n N) Decimals(d int) string

func (*N) DecodeBuffer added in v0.17.3

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

func (N) EncodeBuffer added in v0.17.3

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

func (N) Equal added in v0.17.3

func (n N) Equal(x N) bool

func (N) Int64 added in v0.17.3

func (n N) Int64() int64

func (N) IsZero added in v0.17.3

func (n N) IsZero() bool

func (N) MarshalBinary added in v0.17.3

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

func (N) MarshalText added in v0.17.3

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

func (*N) SetInt64 added in v0.17.3

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

func (N) String added in v0.17.3

func (n N) String() string

func (*N) UnmarshalBinary added in v0.17.3

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

func (*N) UnmarshalText added in v0.17.3

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 added in v0.17.3

type OpListListHash struct {
	Hash
}

OpListListHash

func MustParseOpListListHash added in v0.17.3

func MustParseOpListListHash(s string) OpListListHash

func NewOpListListHash added in v0.17.3

func NewOpListListHash(buf []byte) OpListListHash

func ParseOpListListHash added in v0.17.3

func ParseOpListListHash(s string) (OpListListHash, error)

func (OpListListHash) Clone added in v0.17.3

func (h OpListListHash) Clone() OpListListHash

func (OpListListHash) Equal added in v0.17.3

func (h OpListListHash) Equal(h2 OpListListHash) bool

func (*OpListListHash) UnmarshalBinary added in v0.17.3

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

func (*OpListListHash) UnmarshalText added in v0.17.3

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
	OpTypeToruOrigination                     // 18 v013
	OpTypeToruSubmitBatch                     // 19 v013
	OpTypeToruCommit                          // 20 v013
	OpTypeToruReturnBond                      // 21 v013
	OpTypeToruFinalizeCommitment              // 22 v013
	OpTypeToruRemoveCommitment                // 23 v013
	OpTypeToruRejection                       // 24 v013
	OpTypeToruDispatchTickets                 // 25 v013
	OpTypeTransferTicket                      // 26 v013
	OpTypeScruOriginate                       // 27 v013
	OpTypeScruAddMessages                     // 28 v013
	OpTypeScruCement                          // 29 v013
	OpTypeScruPublish                         // 30 v013
)

enums are allocated in chronological order

func ParseOpTag

func ParseOpTag(t byte) OpType

func ParseOpTagVersion added in v0.17.3

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 added in v0.9.6

func (t OpType) ListId() int

func (OpType) MarshalText

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

func (OpType) MinSize added in v0.17.3

func (t OpType) MinSize() int

func (OpType) MinSizeVersion added in v0.17.3

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 added in v0.17.3

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,omitempty"`
	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 added in v0.10.0

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

func (Params) Clean added in v0.10.0

func (p Params) Clean() *Params

func (*Params) ContainsCycle added in v0.10.0

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) CyclePosition added in v0.17.3

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

func (*Params) CycleStartHeight

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

func (*Params) ForCycle added in v0.10.0

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

func (*Params) ForHeight added in v0.10.0

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 added in v0.10.0

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

func (*Params) IsSnapshotBlock added in v0.10.0

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 added in v1.12.0

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

func (*Params) NumEndorsers added in v1.12.1

func (p *Params) NumEndorsers() int

func (*Params) SnapshotBaseCycle added in v0.17.3

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

func (*Params) SnapshotBlock

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

func (*Params) SnapshotBlocks added in v1.12.0

func (p *Params) SnapshotBlocks() int64

func (*Params) SnapshotIndex added in v0.10.0

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

func (*Params) VoteEndHeight added in v0.10.0

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

func (*Params) VoteStartHeight added in v0.10.0

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

func (*Params) VotingStartCycleFromHeight

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

type PassphraseFunc added in v0.17.3

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

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

type PayloadHash added in v0.17.3

type PayloadHash struct {
	Hash
}

PayloadHash

func MustParsePayloadHash added in v0.17.3

func MustParsePayloadHash(s string) PayloadHash

func NewPayloadHash added in v0.17.3

func NewPayloadHash(buf []byte) PayloadHash

func ParsePayloadHash added in v0.17.3

func ParsePayloadHash(s string) (PayloadHash, error)

func (PayloadHash) Clone added in v0.17.3

func (h PayloadHash) Clone() PayloadHash

func (PayloadHash) Equal added in v0.17.3

func (h PayloadHash) Equal(h2 PayloadHash) bool

func (*PayloadHash) UnmarshalBinary added in v0.17.3

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

func (*PayloadHash) UnmarshalText added in v0.17.3

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

type PrivateKey added in v0.17.3

type PrivateKey struct {
	Type KeyType
	Data []byte
}

PrivateKey represents a typed private key used for signing messages.

func GenerateKey added in v0.17.3

func GenerateKey(typ KeyType) (PrivateKey, error)

GenerateKey creates a random private key.

func MustParsePrivateKey added in v0.17.3

func MustParsePrivateKey(key string) PrivateKey

func ParseEncryptedPrivateKey added in v0.17.3

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 added in v0.17.3

func ParsePrivateKey(s string) (PrivateKey, error)

func (PrivateKey) Address added in v0.17.3

func (k PrivateKey) Address() Address

func (PrivateKey) Encrypt added in v0.17.3

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

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

func (PrivateKey) IsValid added in v0.17.3

func (k PrivateKey) IsValid() bool

func (PrivateKey) MarshalText added in v0.17.3

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

func (PrivateKey) Public added in v0.17.3

func (k PrivateKey) Public() Key

Public returns the public key associated with the private key.

func (PrivateKey) Sign added in v0.17.3

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

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

func (PrivateKey) String added in v0.17.3

func (k PrivateKey) String() string

func (*PrivateKey) UnmarshalText added in v0.17.3

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 added in v0.17.3

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

Ratio represents a numeric ratio used in Ithaca constants

func (Ratio) Float64 added in v0.17.3

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 added in v0.17.3

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 added in v0.17.3

func (s Signature) Bytes() []byte

func (Signature) Clone

func (s Signature) Clone() Signature

func (*Signature) DecodeBuffer added in v0.17.3

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

func (Signature) Generic added in v0.17.3

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 added in v0.17.3

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 added in v0.17.3

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 added in v0.17.3

func NewZ(i int64) Z

func (Z) Add added in v0.17.3

func (z Z) Add(y Z) Z

func (Z) Big added in v0.17.3

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

func (Z) Clone added in v0.17.3

func (z Z) Clone() Z

func (Z) Decimals added in v0.17.3

func (z Z) Decimals(d int) string

func (*Z) DecodeBuffer added in v0.17.3

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

func (*Z) EncodeBuffer added in v0.17.3

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

func (Z) Equal added in v0.17.3

func (z Z) Equal(x Z) bool

func (Z) Int64 added in v0.17.3

func (z Z) Int64() int64

func (Z) IsZero added in v0.17.3

func (z Z) IsZero() bool

func (Z) MarshalBinary added in v0.17.3

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

func (Z) MarshalText added in v0.17.3

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

func (Z) Neg added in v0.17.3

func (z Z) Neg() Z

func (*Z) Set added in v0.17.3

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

func (*Z) SetInt64 added in v0.17.3

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

func (Z) String added in v0.17.3

func (z Z) String() string

func (*Z) UnmarshalBinary added in v0.17.3

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

func (*Z) UnmarshalText added in v0.17.3

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