models

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2021 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CChainIn     CChainType = 1
	CchainOut    CChainType = 2
	CChainImport CChainType = 1
	CChainExport CChainType = 2

	OutputTypesSECP2556K1Transfer OutputType = 7
	OutputTypesSECP2556K1Mint     OutputType = 6
	OutputTypesNFTMint            OutputType = 10
	OutputTypesNFTTransfer        OutputType = 11
	OutputTypesAtomicExportTx     OutputType = 0xFFFFFFF1
	OutputTypesAtomicImportTx     OutputType = 0xFFFFFFF2

	BlockTypeProposal BlockType = 0x0
	BlockTypeAbort    BlockType = 0x1
	BlockTypeCommit   BlockType = 0x2
	BlockTypeStandard BlockType = 0x3
	BlockTypeAtomic   BlockType = 0x4

	TransactionTypeBase               TransactionType = 0x0
	TransactionTypeCreateAsset        TransactionType = 0x1
	TransactionTypeOperation          TransactionType = 0x2
	TransactionTypeAVMImport          TransactionType = 0x3
	TransactionTypeAVMExport          TransactionType = 0x4
	TransactionTypeAddValidator       TransactionType = 0xc
	TransactionTypeAddSubnetValidator TransactionType = 0xd
	TransactionTypeAddDelegator       TransactionType = 0xe
	TransactionTypeCreateChain        TransactionType = 0xf
	TransactionTypeCreateSubnet       TransactionType = 0x10
	TransactionTypePVMImport          TransactionType = 0x11
	TransactionTypePVMExport          TransactionType = 0x12
	TransactionTypeAdvanceTime        TransactionType = 0x13
	TransactionTypeRewardValidator    TransactionType = 0x14

	ResultTypeTransaction SearchResultType = "transaction"
	ResultTypeAsset       SearchResultType = "asset"
	ResultTypeAddress     SearchResultType = "address"
	ResultTypeOutput      SearchResultType = "output"

	TypeUnknown = "unknown"
)

Bech32HRP is the human-readable part of bech32 addresses. It needs to be available to Address.MarshalJSON is there is no other way to give it this data

Functions

func SetBech32HRP

func SetBech32HRP(networkID uint32)

SetBech32HRP sets the package-wide beck32HRP to use for Address marshaling.

Types

type Address

type Address StringShortID

Address represents an address; a short ID that is shown to users as bech32.

func ToAddress

func ToAddress(id ids.ShortID) Address

ToAddress converts an ids.ShortID into an Address.

func (Address) Equals

func (addr Address) Equals(oAddr2 Address) bool

Equals returns true if and only if the two Addresses represent the same.

func (Address) MarshalJSON

func (addr Address) MarshalJSON() ([]byte, error)

MarshalJSON encodes an Address to JSON by converting it to bech32.

func (Address) MarshalString added in v1.1.1

func (addr Address) MarshalString() ([]byte, error)

type AddressChainInfo added in v1.1.1

type AddressChainInfo struct {
	Address   Address   `json:"address"`
	ChainID   StringID  `json:"chainID"`
	CreatedAt time.Time `json:"timestamp"`
}

type AddressChains added in v1.1.1

type AddressChains struct {
	AddressChains map[string][]StringID `json:"addressChains"`
}

type AddressInfo added in v1.1.0

type AddressInfo struct {
	ChainID   StringID `json:"chainID"`
	Address   Address  `json:"address"`
	PublicKey []byte   `json:"publicKey"`

	Assets map[StringID]AssetInfo `json:"assets"`

	Score uint64 `json:"-"`
}

type AddressList added in v1.1.0

type AddressList struct {
	ListMetadata
	Addresses []*AddressInfo `json:"addresses"`
}

type Aggregates added in v1.1.0

type Aggregates struct {
	// Idx is used internally when creating a histogram of Aggregates.
	// It is exported only so it can be written to by dbr.
	Idx int `json:"-"`

	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`

	TransactionVolume TokenAmount `json:"transactionVolume"`
	TransactionCount  uint64      `json:"transactionCount"`
	AddressCount      uint64      `json:"addressCount"`
	OutputCount       uint64      `json:"outputCount"`
	AssetCount        uint64      `json:"assetCount"`
}

type AggregatesHistogram added in v1.1.0

type AggregatesHistogram struct {
	Aggregates   Aggregates    `json:"aggregates"`
	IntervalSize time.Duration `json:"intervalSize,omitempty"`
	Intervals    []Aggregates  `json:"intervals,omitempty"`

	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`
}

type Asset added in v1.1.0

type Asset struct {
	ID      StringID `json:"id"`
	ChainID StringID `json:"chainID"`

	Name          string      `json:"name"`
	Symbol        string      `json:"symbol"`
	Alias         string      `json:"alias"`
	CurrentSupply TokenAmount `json:"currentSupply"`
	CreatedAt     time.Time   `json:"timestamp"`

	Score uint64 `json:"-"`

	Denomination uint8 `json:"denomination"`
	VariableCap  uint8 `json:"variableCap"`
	Nft          uint8 `json:"nft"`
}

type AssetAggregate added in v1.2.3

type AssetAggregate struct {
	Asset     ids.ID               `json:"asset"`
	Aggregate *AggregatesHistogram `json:"aggregate"`
}

type AssetInfo added in v1.1.0

type AssetInfo struct {
	AssetID StringID `json:"id"`

	TransactionCount uint64      `json:"transactionCount"`
	UTXOCount        uint64      `json:"utxoCount"`
	Balance          TokenAmount `json:"balance"`
	TotalReceived    TokenAmount `json:"totalReceived"`
	TotalSent        TokenAmount `json:"totalSent"`
}

type AssetList added in v1.1.0

type AssetList struct {
	ListMetadata
	Assets []*Asset `json:"assets"`
}

type AssetTokenCounts added in v1.1.0

type AssetTokenCounts map[StringID]TokenAmount

AssetTokenCounts maps asset IDs to a TokenAmount for that asset.

type Block added in v1.1.0

type Block struct {
	ID        StringID  `json:"id"`
	ParentID  StringID  `json:"parentID"`
	ChainID   StringID  `json:"chainID"`
	Type      BlockType `json:"type"`
	CreatedAt time.Time `json:"createdAt"`
}

type BlockList added in v1.1.0

type BlockList struct {
	ListMetadata
	Blocks []*Block `json:"blocks"`
}

type BlockType added in v1.1.0

type BlockType uint16

BlockType represents a sub class of Block.

type CChainType added in v1.1.3

type CChainType uint16

type CTransactionData added in v1.2.3

type CTransactionData struct {
	Type          int       `json:"type"`
	Block         string    `json:"block"`
	Hash          string    `json:"hash"`
	CreatedAt     time.Time `json:"createdAt"`
	Nonce         uint64    `json:"nonce"`
	GasPrice      *string   `json:"gasPrice,omitempty"`
	GasFeeCap     *string   `json:"maxFeePerGas,omitempty"`
	GasTipCap     *string   `json:"maxPriorityFeePerGas,omitempty"`
	GasLimit      uint64    `json:"gasLimit"`
	BlockGasUsed  uint64    `json:"blockGasUsed"`
	BlockGasLimit uint64    `json:"blockGasLimit"`
	BlockNonce    uint64    `json:"blockNonce"`
	BlockHash     string    `json:"blockHash"`
	Recipient     *string   `json:"recipient,omitempty"`
	Amount        *string   `json:"value,omitempty"`
	Payload       *string   `json:"input,omitempty"`
	ToAddr        string    `json:"toAddr"`
	FromAddr      string    `json:"fromAddr"`

	// Signature values
	V *string `json:"v,omitempty"`
	R *string `json:"r,omitempty"`
	S *string `json:"s,omitempty"`

	Traces    []*CvmTransactionsTxDataTrace          `json:"traces"`
	TracesMax uint32                                 `json:"-"`
	TracesMap map[uint32]*CvmTransactionsTxDataTrace `json:"-"`
}

type CTransactionList added in v1.2.3

type CTransactionList struct {
	Transactions []*CTransactionData
	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`
}

type ChainCounts added in v1.4.0

type ChainCounts struct {
	ChainID StringID `json:"chainID"`
	Total   string   `json:"total"`
}

type ChainInfo

type ChainInfo struct {
	ID          StringID `json:"chainID"`
	Alias       string   `json:"chainAlias"`
	VM          string   `json:"vm"`
	AVAXAssetID StringID `json:"avaxAssetID"`
	NetworkID   uint32   `json:"networkID"`
}

ChainInfo represents an overview of data about a given chain

type ControlSignature added in v1.1.0

type ControlSignature []byte

type CvmOutput added in v1.1.3

type CvmOutput struct {
	Type            CChainType  `json:"type"`
	TransactionType CChainType  `json:"transactionType"`
	Idx             uint64      `json:"idx"`
	Amount          TokenAmount `json:"amount"`
	Nonce           uint64      `json:"nonce"`
	ID              StringID    `json:"id"`
	TransactionID   StringID    `json:"transactionID"`
	Address         string      `json:"address"`
	AssetID         StringID    `json:"assetID"`
	CreatedAt       time.Time   `json:"timestamp"`
	ChainID         StringID    `json:"chainID"`
	Block           string      `json:"block"`
}

type CvmTransactionsTxDataTrace added in v1.2.3

type CvmTransactionsTxDataTrace struct {
	Hash                       *string `json:"hash,omitempty"`
	Idx                        *uint32 `json:"idx,omitempty"`
	CallType                   string  `json:"callType"`
	ToAddr                     string  `json:"to"`
	FromAddr                   string  `json:"from"`
	Type                       string  `json:"type"`
	GasUsed                    string  `json:"gasUsed"`
	Gas                        string  `json:"gas"`
	Input                      *string `json:"input,omitempty"`
	Output                     *string `json:"output,omitempty"`
	Value                      string  `json:"value"`
	CreatedContractAddressHash *string `json:"createdContractAddressHash,omitempty"`
	Init                       *string `json:"init,omitempty"`
	CreatedContractCode        *string `json:"createdContractCode,omitempty"`
	Error                      *string `json:"error,omitempty"`
	RevertReason               *string `json:"revertReason,omitempty"`
	RevertReasonUnpacked       *string `json:"revertReasonUnpacked,omitempty"`
	TraceAddress               []int   `json:"traceAddress,omitempty"`
}

type Input added in v1.1.0

type Input struct {
	Output *Output            `json:"output"`
	Creds  []InputCredentials `json:"credentials"`
}

type InputCredentials added in v1.1.0

type InputCredentials struct {
	Address   Address `json:"address"`
	PublicKey []byte  `json:"public_key"`
	Signature []byte  `json:"signature"`
}

type ListMetadata added in v1.1.0

type ListMetadata struct {
	Count *uint64 `json:"count,omitempty"`
}

type Output added in v1.1.0

type Output struct {
	ID                     StringID    `json:"id"`
	TransactionID          StringID    `json:"transactionID"`
	OutputIndex            uint64      `json:"outputIndex"`
	AssetID                StringID    `json:"assetID"`
	Stake                  bool        `json:"stake"`
	Frozen                 bool        `json:"frozen"`
	Stakeableout           bool        `json:"stakeableout"`
	Genesisutxo            bool        `json:"genesisutxo"`
	OutputType             OutputType  `json:"outputType"`
	Amount                 TokenAmount `json:"amount"`
	Locktime               uint64      `json:"locktime"`
	StakeLocktime          uint64      `json:"stakeLocktime"`
	Threshold              uint64      `json:"threshold"`
	Addresses              []Address   `json:"addresses"`
	CAddresses             []string    `json:"caddresses"`
	CreatedAt              time.Time   `json:"timestamp"`
	RedeemingTransactionID StringID    `json:"redeemingTransactionID"`
	ChainID                StringID    `json:"chainID"`
	InChainID              StringID    `json:"inChainID"`
	OutChainID             StringID    `json:"outChainID"`
	GroupID                uint64      `json:"groupID"`
	Payload                []byte      `json:"payload"`
	Block                  string      `json:"block"`
	Nonce                  uint64      `json:"nonce"`
	RewardUtxo             bool        `json:"rewardUtxo"`
	Score                  uint64      `json:"-"`
}

type OutputAddress added in v1.1.0

type OutputAddress struct {
	OutputID  StringID `json:"output_id"`
	Address   Address  `json:"address"`
	Signature []byte   `json:"signature"`
	PublicKey []byte   `json:"-"`
}

type OutputList added in v1.1.0

type OutputList struct {
	ListMetadata
	Outputs []*Output `json:"outputs"`
}

type OutputType added in v1.1.0

type OutputType uint32

OutputType represents a sub class of Output.

func (OutputType) String added in v1.1.0

func (t OutputType) String() string

type PvmProposerModel added in v1.6.0

type PvmProposerModel struct {
	ID           StringID  `json:"id"`
	ParentID     StringID  `json:"parentID"`
	PChainHeight uint64    `json:"pchainHeight"`
	Proposer     StringID  `json:"proposer"`
	TimeStamp    time.Time `json:"timestamp"`
}

type RawTx added in v1.2.3

type RawTx struct {
	Tx string `json:"tx"`
}

type SearchResult added in v1.1.0

type SearchResult struct {
	// SearchResultType is the type of object found
	SearchResultType `json:"type"`

	// Data is the object itself
	Data interface{} `json:"data"`

	// Score is a rank of how well this result matches the query
	Score uint64 `json:"score"`
}

SearchResult represents a single item matching a search query.

type SearchResultSet added in v1.1.0

type SearchResultSet []SearchResult

func (SearchResultSet) Len added in v1.1.0

func (s SearchResultSet) Len() int

func (SearchResultSet) Less added in v1.1.0

func (s SearchResultSet) Less(i, j int) bool

func (SearchResultSet) Swap added in v1.1.0

func (s SearchResultSet) Swap(i, j int)

type SearchResultType added in v1.1.0

type SearchResultType string

SearchResultType is the type for an object found from a search query.

type SearchResults added in v1.1.0

type SearchResults struct {
	// Count is the total number of matching results
	Count uint64 `json:"count"`

	// Results is a list of SearchResult
	Results SearchResultSet `json:"results"`
}

SearchResults represents a set of items returned for a search query.

type StringID

type StringID string

StringID represents a 256bit hash encoded as a base58 string.

func ToStringID

func ToStringID(id ids.ID) StringID

ToStringID converts an ids.ID into a StringID.

func (StringID) Equals

func (rid StringID) Equals(oRID StringID) bool

Equals returns true if and only if the two stringIDs represent the same ID.

type StringShortID

type StringShortID string

StringShortID represents a 160bit hash encoded as a base58 string.

func ToShortStringID

func ToShortStringID(id ids.ShortID) StringShortID

ToShortStringID converts an ids.ShortID into a StringShortID.

func (StringShortID) Equals

func (rid StringShortID) Equals(oRID StringShortID) bool

Equals returns true if and only if the two stringShortIDs represent the same ID.

type TokenAmount added in v1.1.0

type TokenAmount string

TokenAmount represents some number of tokens as a string.

func TokenAmountForUint64 added in v1.1.0

func TokenAmountForUint64(i uint64) TokenAmount

TokenAmountForUint64 returns an TokenAmount for the given uint64.

type Transaction added in v1.1.0

type Transaction struct {
	ID      StringID `json:"id"`
	ChainID StringID `json:"chainID"`
	Type    string   `json:"type"`

	Inputs  []*Input  `json:"inputs"`
	Outputs []*Output `json:"outputs"`

	Memo []byte `json:"memo"`

	InputTotals         AssetTokenCounts `json:"inputTotals"`
	OutputTotals        AssetTokenCounts `json:"outputTotals"`
	ReusedAddressTotals AssetTokenCounts `json:"reusedAddressTotals"`

	CanonicalSerialization []byte    `json:"canonicalSerialization,omitempty"`
	CreatedAt              time.Time `json:"timestamp"`

	Txfee uint64 `json:"txFee"`

	Genesis bool `json:"genesis"`

	Rewarded     bool       `json:"rewarded"`
	RewardedTime *time.Time `json:"rewardedTime"`

	Epoch uint64 `json:"epoch"`

	VertexID StringID `json:"vertexId"`

	ValidatorNodeID StringID `json:"validatorNodeID"`
	ValidatorStart  uint64   `json:"validatorStart"`
	ValidatorEnd    uint64   `json:"validatorEnd"`

	TxBlockID StringID `json:"txBlockId"`

	Proposer *PvmProposerModel `json:"proposer,omitempty"`

	Score uint64 `json:"-"`
}

type TransactionList added in v1.1.0

type TransactionList struct {
	ListMetadata

	Transactions []*Transaction `json:"transactions"`

	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`

	Next *string `json:"next,omitempty"`
}

type TransactionType added in v1.1.0

type TransactionType uint16

TransactionType represents a sub class of Transaction.

func (TransactionType) String added in v1.1.0

func (t TransactionType) String() string

type TxfeeAggregates added in v1.1.2

type TxfeeAggregates struct {
	// Idx is used internally when creating a histogram of Aggregates.
	// It is exported only so it can be written to by dbr.
	Idx int `json:"-"`

	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`

	Txfee TokenAmount `json:"txfee"`
}

type TxfeeAggregatesHistogram added in v1.1.2

type TxfeeAggregatesHistogram struct {
	TxfeeAggregates TxfeeAggregates   `json:"aggregates"`
	IntervalSize    time.Duration     `json:"intervalSize,omitempty"`
	Intervals       []TxfeeAggregates `json:"intervals,omitempty"`

	// StartTime is the calculated start time rounded to the nearest
	// TransactionRoundDuration.
	StartTime time.Time `json:"startTime"`

	// EndTime is the calculated end time rounded to the nearest
	// TransactionRoundDuration.
	EndTime time.Time `json:"endTime"`
}

Jump to

Keyboard shortcuts

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