key

package
v1.5.2 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 9 Imported by: 2

README

This package unites all types of identification used in the Casper network. The majority of them are represented as 32-byte hashes, although some of them contain prefixes (such as account, contract, contract package, and transfer).

The Key represents a complex and universal key type used in the Casper network. (See documentation for more information.)

The Unforgeable Reference (URef) stores access rights apart from the hash and prefix. (See documentation for more information.)

The exception to the 32-byte hash rule is the identifier for the Era, which is represented as a uint value. (See documentation for more information.)

Documentation

Index

Constants

View Source
const (
	UrefAccessNone = iota
	UrefAccessRead
	UrefAccessWrite
	UrefAccessAdd
	UrefAccessReadWrite
	UrefAccessReadAdd
	UrefAccessAddWrite
	UrefAccessReadAddWrite
)
View Source
const ByteHashLen = 32
View Source
const StingHashLen = 64

Variables

View Source
var (
	ErrIncorrectUrefFormat = errors.New("incorrect uref format")
)
View Source
var ErrNotFoundPrefix = errors.New("prefix is not found")

Functions

func NewHashFromString

func NewHashFromString[T any](source string) (T, error)

func StringsToHashList

func StringsToHashList[T any](source []string) ([]T, error)

Types

type AccountHash

type AccountHash struct {
	Hash
	// contains filtered or unexported fields
}

func NewAccountHash

func NewAccountHash(source string) (AccountHash, error)

func (AccountHash) MarshalJSON

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

func (AccountHash) ToPrefixedString

func (h AccountHash) ToPrefixedString() string

func (*AccountHash) UnmarshalJSON

func (h *AccountHash) UnmarshalJSON(data []byte) error

type ContractHash

type ContractHash struct {
	Hash
	// contains filtered or unexported fields
}

func NewContract

func NewContract(source string) (ContractHash, error)

func (ContractHash) MarshalJSON

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

func (ContractHash) ToPrefixedString

func (h ContractHash) ToPrefixedString() string

func (ContractHash) ToPrefixedWasmString

func (h ContractHash) ToPrefixedWasmString() string

func (*ContractHash) UnmarshalJSON

func (h *ContractHash) UnmarshalJSON(data []byte) error

type ContractPackageHash

type ContractPackageHash struct {
	Hash
	// contains filtered or unexported fields
}

func NewContractPackage

func NewContractPackage(source string) (ContractPackageHash, error)

func (ContractPackageHash) MarshalJSON

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

func (ContractPackageHash) ToPrefixedString

func (h ContractPackageHash) ToPrefixedString() string

func (*ContractPackageHash) UnmarshalJSON

func (h *ContractPackageHash) UnmarshalJSON(data []byte) error

type Era

type Era uint64

func NewEra

func NewEra(val uint64) *Era

func NewEraFromBuffer

func NewEraFromBuffer(buf *bytes.Buffer) (*Era, error)

func NewEraFromString

func NewEraFromString(source string) (res Era, err error)

func (Era) Bytes

func (k Era) Bytes() []byte

func (Era) MarshalJSON

func (k Era) MarshalJSON() ([]byte, error)

func (*Era) UnmarshalJSON

func (k *Era) UnmarshalJSON(data []byte) error

type Hash

type Hash [ByteHashLen]byte

func NewByteHashFromBuffer

func NewByteHashFromBuffer(buf *bytes.Buffer) (result Hash, err error)

func NewHash

func NewHash(source string) (result Hash, err error)

func NewHashFromBytes

func NewHashFromBytes(source []byte) (result Hash, err error)

func (Hash) Bytes

func (h Hash) Bytes() []byte

func (Hash) MarshalJSON

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

func (*Hash) Scan

func (h *Hash) Scan(value interface{}) error

func (Hash) String

func (h Hash) String() string

func (Hash) ToHex

func (h Hash) ToHex() string

func (*Hash) UnmarshalJSON

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

func (*Hash) UnmarshalText

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

func (Hash) Value

func (h Hash) Value() (driver.Value, error)

type Key

type Key struct {
	Type TypeID
	// A `Key` under which a user account is stored.
	Account *AccountHash
	// A `Key` under which a smart contract is stored and which is the pseudo-hash of the contract.
	Hash *Hash
	// A `Key` which is a [`URef`], under which most types of data can be stored.
	URef *URef
	// A `Key` under which we store a transfer.
	Transfer *TransferHash
	// A `Key` under which we store a deploy info.
	Deploy *Hash
	// A `Key` under which we store an era info.
	Era *Era
	// A `Key` under which we store a purse balance.
	Balance *Hash
	// A `Key` under which we store bid information
	Bid *AccountHash
	// A `Key` under which we store withdraw information.
	Withdraw *AccountHash
	// A `Key` variant whose value is derived by hashing [`URef`]s address and arbitrary data.
	Dictionary *Hash
	// A `Key` variant under which system contract hashes are stored.
	SystemContactRegistry *Hash
	// A `Key` under which we store current era info.
	EraSummary *Hash
	// A `Key` under which we store unbond information.
	Unbond *AccountHash
	// A `Key` variant under which chainspec and other hashes are stored.
	ChainspecRegistry *Hash
	// A `Key` variant under which we store a registry of checksums.
	ChecksumRegistry *Hash
}

func NewKey

func NewKey(source string) (result Key, err error)

func NewKeyFromBuffer

func NewKeyFromBuffer(buffer *bytes.Buffer) (result Key, err error)

func NewKeyFromBytes

func NewKeyFromBytes(data []byte) (Key, error)

func (Key) Bytes

func (k Key) Bytes() []byte

func (Key) MarshalJSON

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

func (*Key) Scan

func (k *Key) Scan(value any) (err error)

func (Key) String

func (k Key) String() string

func (Key) ToPrefixedString

func (k Key) ToPrefixedString() string

func (*Key) UnmarshalJSON

func (k *Key) UnmarshalJSON(i []byte) error

func (Key) Value

func (k Key) Value() (driver.Value, error)

type PrefixName

type PrefixName = string
const (
	PrefixNameAccount                PrefixName = "account-hash-"
	PrefixNameHash                   PrefixName = "hash-"
	PrefixNameContractPackageWasm    PrefixName = "contract-package-wasm"
	PrefixNameContractPackage        PrefixName = "contract-package-"
	PrefixNameContractWasm           PrefixName = "contract-wasm-"
	PrefixNameContract               PrefixName = "contract-"
	PrefixNameURef                   PrefixName = "uref-"
	PrefixNameTransfer               PrefixName = "transfer-"
	PrefixNameDeployInfo             PrefixName = "deploy-"
	PrefixNameEraId                  PrefixName = "era-"
	PrefixNameBid                    PrefixName = "bid-"
	PrefixNameBalance                PrefixName = "balance-"
	PrefixNameWithdraw               PrefixName = "withdraw-"
	PrefixNameDictionary             PrefixName = "dictionary-"
	PrefixNameSystemContractRegistry PrefixName = "system-contract-registry-"
	PrefixNameEraSummary             PrefixName = "era-summary-"
	PrefixNameUnbond                 PrefixName = "unbond-"
	PrefixNameChainspecRegistry      PrefixName = "chainspec-registry-"
	PrefixNameChecksumRegistry       PrefixName = "checksum-registry-"
)

type TransferHash

type TransferHash struct {
	Hash
	// contains filtered or unexported fields
}

func NewTransferHash

func NewTransferHash(source string) (TransferHash, error)

func (TransferHash) MarshalJSON

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

func (TransferHash) ToPrefixedString

func (h TransferHash) ToPrefixedString() string

func (*TransferHash) UnmarshalJSON

func (h *TransferHash) UnmarshalJSON(data []byte) error

type TypeID

type TypeID = byte
const (
	TypeIDAccount TypeID = iota
	TypeIDHash
	TypeIDURef
	TypeIDTransfer
	TypeIDDeployInfo
	TypeIDEraId
	TypeIDBalance
	TypeIDBid
	TypeIDWithdraw
	TypeIDDictionary
	TypeIDSystemContractRegistry
	TypeIDEraSummary
	TypeIDUnbond
	TypeIDChainspecRegistry
	TypeIDChecksumRegistry
)

type TypeName

type TypeName = string
const (
	TypeNameAccount                TypeName = "Account"
	TypeNameHash                   TypeName = "Hash"
	TypeNameURef                   TypeName = "URef"
	TypeNameTransfer               TypeName = "Transfer"
	TypeNameDeployInfo             TypeName = "Deploy"
	TypeNameEraId                  TypeName = "Era"
	TypeNameBid                    TypeName = "Bid"
	TypeNameBalance                TypeName = "Balance"
	TypeNameWithdraw               TypeName = "Withdraw"
	TypeNameDictionary             TypeName = "Dictionary"
	TypeNameSystemContractRegistry TypeName = "SystemContractRegistry"
	TypeNameEraSummary             TypeName = "EraSummary"
	TypeNameUnbond                 TypeName = "Unbond"
	TypeNameChainspecRegistry      TypeName = "ChainspecRegistry"
	TypeNameChecksumRegistry       TypeName = "ChecksumRegistry"
)

type URef

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

func NewURef

func NewURef(source string) (res URef, err error)

func NewURefFromBuffer

func NewURefFromBuffer(buffer *bytes.Buffer) (res URef, err error)

func NewURefFromBytes

func NewURefFromBytes(source []byte) (URef, error)

func (URef) Bytes

func (v URef) Bytes() []byte

func (*URef) GobDecode

func (v *URef) GobDecode(i []byte) error

func (URef) GobEncode

func (v URef) GobEncode() ([]byte, error)

func (URef) MarshalJSON

func (v URef) MarshalJSON() ([]byte, error)

func (*URef) Scan

func (v *URef) Scan(value interface{}) error

func (*URef) SetAccess added in v1.5.0

func (v *URef) SetAccess(access UrefAccess)

func (URef) String

func (v URef) String() string

func (URef) ToPrefixedString

func (v URef) ToPrefixedString() string

func (*URef) UnmarshalJSON

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

func (*URef) UnmarshalText

func (v *URef) UnmarshalText(text []byte) error

func (URef) Value

func (v URef) Value() (driver.Value, error)

type UrefAccess

type UrefAccess = byte

Jump to

Keyboard shortcuts

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