structs

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2021 License: Apache-2.0 Imports: 8 Imported by: 38

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound = errors.New("record not found")
)

Functions

This section is empty.

Types

type Account

type Account struct {
	// Unique account identifier
	ID string `json:"id"`
	// External optional account details (if applies)
	Details *AccountDetails `json:"detail,omitempty"`
}

Account - Extended Account information

type AccountDetails

type AccountDetails struct {
	// Description of account
	Description string `json:"description,omitempty"`
	// Contact information
	Contact string `json:"contact,omitempty"`
	// Name of account
	Name string `json:"name,omitempty"`
	// Website address
	Website string `json:"website,omitempty"`
}

AccountDetails External optional account details (if applies)

type Argument

type Argument struct {
	Name    string   `json:"name,omitempty"`
	Indexed bool     `json:"indexed,omitempty"`
	Order   int      `json:"order,omitempty"`
	Type    string   `json:"type,omitempty"`
	Value   []string `json:"value,omitempty"`
}

type BalanceSummary

type BalanceSummary struct {
	Height uint64              `json:"height"`
	Time   time.Time           `json:"time"`
	Amount []TransactionAmount `json:"balances"`
}

type Block

type Block struct {
	// ID
	ID uuid.UUID `json:"id,omitempty"`
	// CreatedAt of block creation time in database
	CreatedAt *time.Time `json:"created_at,omitempty"`
	// UpdatedAt of block update time in database
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Hash of the Block
	Hash string `json:"hash,omitempty"`
	// Height of the Block
	Height uint64 `json:"height,omitempty"`
	// Time of the Block
	Time    time.Time `json:"time,omitempty"`
	Epoch   string    `json:"epoch,omitempty"`
	ChainID string    `json:"chain_id,omitempty"`

	NumberOfTransactions uint64 `json:"num_txs,omitempty"`
}

Block contains the block details

type BlockWithMeta

type BlockWithMeta struct {
	// Network name
	Network string `json:"network,omitempty"`
	// ChainID
	ChainID string `json:"chain_id,omitempty"`
	// Version of block details
	Version string `json:"version,omitempty"`
	// Block details
	Block Block `json:"block,omitempty"`
}

BlockWithMeta contains the block deails with metadata

type ClaimedReward

type ClaimedReward struct {
	// ID UniqueID of reward
	ID string `json:"id,omitempty"`
	// Created at
	CreatedAt *time.Time `json:"created_at,omitempty"`
	// Updated at
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Reward recipient account address
	Account string `json:"account,omitempty"`
	// Chain id of reward
	ChainID string `json:"chain_id,omitempty"`
	// Validator rewards
	ClaimedReward []RewardAmount `json:"claimed_reward,omitempty"`
	// Epoch
	Epoch string `json:"epoch,omitempty"`
	// Height from which reward come from
	Height uint64 `json:"height,omitempty"`
	// Name of the network
	Network string `json:"network,omitempty"`
	// Address of validator
	Validator string `json:"validator,omitempty"`
	// Version of reward
	Version string `json:"version,omitempty"`
	// Reward time
	Time time.Time `json:"time,omitempty"`
}

type Delegation

type Delegation struct {
	Delegator string       `json:"delegator"`
	Validator Validator    `json:"validator"`
	Shares    RewardAmount `json:"shares"`
	Balance   RewardAmount `json:"balance"`
}

type EMFunction

type EMFunction struct {
	// Address of the smart contract
	Address string `json:"address,omitempty"`
	// Caller account address
	Caller string `json:"caller,omitempty"`
	// From account address
	From string `json:"from,omitempty"`
	// To account address
	To string `json:"to,omitempty"`
	// Transaction value
	Value big.Int `json:"value,omitempty"`
	// Undecoded input
	Input string `json:"input,omitempty"`
	// Undecoded output
	Output string `json:"output,omitempty"`

	// Execution error
	Error string `json:"error,omitempty"`
	// Method function
	Function string `json:"func,omitempty"`
	// Smart contract method function hash
	FunctionHash string `json:"funcHash,omitempty"`
	// Method name
	Name string `json:"name,omitempty"`
	// Input details
	Inputs []Argument `json:"inputs,omitempty"`
	// Output details
	Outputs []Argument `json:"outputs,omitempty"`
}

EMFunction contains smart contract method details

type EMInternal

type EMInternal struct {
	*EMFunction
	Type string `json:"type,omitempty"`
	Raw  []byte `json:"raw,omitempty"`
}

type EMLogs

type EMLogs struct {
	// Address of the smart contract
	Address string `json:"address,omitempty"`
	// Event data
	Data string `json:"data,omitempty"`
	// Event function
	Function string `json:"func,omitempty"`
	// Event name
	Name string `json:"name,omitempty"`
	// Event topics
	Topics []string `json:"topics,omitempty"`
	// Input details
	Inputs []Argument `json:"inputs,omitempty"`
	// Output details
	Outputs []Argument `json:"outputs,omitempty"`
	// Raw event
	Raw []byte `json:"raw,omitempty"`
}

EMLogs contains smart contract event details

type EventTransfer

type EventTransfer struct {
	// Account recipient
	Account Account `json:"account,omitempty"`
	// Amounts from Transfer
	Amounts []TransactionAmount `json:"amounts,omitempty"`
}

EventTransfer - Account and Amounts pair

type GetAccountBalanceResponse

type GetAccountBalanceResponse struct {
	Height   uint64              `json:"height"`
	Balances []TransactionAmount `json:"balances"`
}

type GetAccountDelegationsResponse

type GetAccountDelegationsResponse struct {
	Height      uint64       `json:"height"`
	Delegations []Delegation `json:"delegations"`
}

type GetClaimedRewardResponse

type GetClaimedRewardResponse struct {
	Height         uint64          `json:"height"`
	ClaimedRewards []ClaimedReward `json:"claimed_rewards"`
}

type GetRewardResponse

type GetRewardResponse struct {
	Height  uint64              `json:"height"`
	Rewards RewardsPerValidator `json:"rewards"`
}

type GetUnclaimedRewardResponse

type GetUnclaimedRewardResponse struct {
	Height           uint64            `json:"height"`
	UnclaimedRewards []UnclaimedReward `json:"unclaimed_rewards"`
}

type HeightAccount

type HeightAccount struct {
	Epoch   string
	Height  uint64
	Account string

	ChainID string
	Network string
}

type HeightHash

type HeightHash struct {
	Epoch  string
	Height uint64
	Hash   string

	ChainID string
	Network string
}

type HeightRange

type HeightRange struct {
	Epoch       string
	Hash        string
	StartHeight uint64
	EndHeight   uint64

	ChainID string
	Network string
}

type Heights

type Heights struct {
	Heights    []uint64           `json:"heights"`
	ErrorAt    []uint64           `json:"error_at"`
	LatestData LatestDataResponse `json:"latest"`

	NumberOfTx      uint64 `json:"num_tx"`
	NumberOfHeights uint64 `json:"num_heights"`
}

type LatestDataRequest

type LatestDataRequest struct {
	Network string `json:"network"`
	ChainID string `json:"chain_id"`
	Version string `json:"version"`
	TaskID  string `json:"task_id"`

	LastHash   string    `json:"last_hash"`
	LastEpoch  string    `json:"last_epoch"`
	LastHeight uint64    `json:"last_height"`
	LastTime   time.Time `json:"last_time"`
	RetryCount uint64    `json:"retry_count"`
	Nonce      []byte    `json:"nonce"`

	SelfCheck bool `json:"self_check"`
}

func (*LatestDataRequest) FromMapStringInterface

func (ldr *LatestDataRequest) FromMapStringInterface(m map[string]interface{})

type LatestDataResponse

type LatestDataResponse struct {
	LastHash   string    `json:"last_hash"`
	LastHeight uint64    `json:"last_height"`
	LastTime   time.Time `json:"last_time"`
	LastEpoch  string    `json:"last_epoch"`
	Nonce      []byte    `json:"nonce"`

	Error      []byte `json:"error"`
	Processing bool   `json:"processing"`
}

type RewardAPRSummary

type RewardAPRSummary struct {
	Height       uint64       `json:"start_height"`
	TimeBucket   time.Time    `json:"time_bucket"`
	Apr          string       `json:"apr"`
	Bonded       RewardAmount `json:"bonded"`
	TotalRewards RewardAmount `json:"total_rewards"`
	Validator    Validator    `json:"validator"`
}

type RewardAmount

type RewardAmount struct {
	// Textual representation of Amount
	Text string `json:"text,omitempty"`
	// The currency in what amount is returned (if applies)
	Currency string `json:"currency,omitempty"`

	// Numeric part of the amount
	Numeric *big.Int `json:"numeric,omitempty"`
	// Exponential part of amount obviously 0 by default
	Exp int32 `json:"exp,omitempty"`
}

RewardAmount structure holding amount information with decimal implementation (numeric * 10 ^ exp)

type RewardQuery

type RewardQuery struct {
	// Network identifier to search in
	//
	// required: true
	// example: cosmos
	Network string `json:"network"`
	// ChainID to search in
	//
	// required: true
	// example: 'cosmoshub-3'
	ChainID string `json:"chain_id"`
	// AfterHeight gets all transaction bigger than given height
	// Has to be bigger than BeforeHeight
	//
	// min: 0
	AfterHeight uint64 `json:"after_height"`
	// BeforeHeight gets all transaction lower than given height
	// Has to be lesser than AfterHeight
	//
	// min: 0
	BeforeHeight uint64 `json:"before_height"`
	// Account - the account identifier to look for
	Account string `json:"account"`
	// The time of transaction (if not given by chain API, the same as block)
	AfterTime time.Time `json:"after_time"`
	// The time of transaction (if not given by chain API, the same as block)
	BeforeTime time.Time `json:"before_time"`
	// Limit of how many requests to get in one request
	//
	// default: 100
	// max: 1000
	Limit uint64 `json:"limit"`
	// Offset the offset number or
	Offset uint64 `json:"offset"`
}

RewardQuery - A set of fields used as params for search swagger:model

type RewardSummary

type RewardSummary struct {
	Start     uint64         `json:"start"`
	End       uint64         `json:"end"`
	Time      time.Time      `json:"time"`
	Validator Validator      `json:"validator"`
	Amount    []RewardAmount `json:"rewards"`
}

type RewardsPerValidator

type RewardsPerValidator map[Validator][]RewardAmount

type SearchArr

type SearchArr struct {
	Value []string `json:"value"`
	Any   bool     `json:"any"`
}

type SmartContractDataEVM

type SmartContractDataEVM struct {
	// Contract method
	Input EMFunction `json:"input,omitempty"`
	// Contract events
	Output []EMLogs `json:"output,omitempty"`
	// List of Internal Transactions
	Internals []EMInternal `json:"internals,omitempty"`
}

SmartContractDataEVM contains the smart contract details

type SubsetEvent

type SubsetEvent struct {
	// ID UniqueID of subsetevent
	ID string `json:"id,omitempty"`
	// Type of transaction
	Type   []string `json:"type,omitempty"`
	Action string   `json:"action,omitempty"`
	// Collection from where transaction came from
	Module string `json:"module,omitempty"`
	// List of sender accounts with optional amounts
	Sender []EventTransfer `json:"sender,omitempty"`
	// List of recipient accounts with optional amounts
	Recipient []EventTransfer `json:"recipient,omitempty"`
	// The list of all accounts that took part in the subsetevent
	Node map[string][]Account `json:"node,omitempty"`
	// Transaction nonce
	Nonce string `json:"nonce,omitempty"`
	// Completion time
	Completion *time.Time `json:"completion,omitempty"`
	// List of Amounts
	Amount map[string]TransactionAmount `json:"amount,omitempty"`
	// List of Transfers with amounts and optional recipients
	Transfers map[string][]EventTransfer `json:"transfers,omitempty"`
	// Optional error if occurred
	Error *SubsetEventError `json:"error,omitempty"`
	// Set of additional parameters attached to transaction (used as last resort)
	Additional map[string][]string `json:"additional,omitempty"`
	// SubEvents because some messages are in fact carying another messages inside
	Sub []SubsetEvent `json:"sub,omitempty"`
	// List of smart contracts details
	SmartContracts []SmartContractDataEVM `json:"smart_contracts,omitempty"`
}

SubsetEvent - structure storing main contents of transacion

type SubsetEventError

type SubsetEventError struct {
	// Message from error event
	Message string `json:"message,omitempty"`
}

SubsetEventError error structure for event

type SyncDataRequest

type SyncDataRequest struct {
	Network string `json:"network"`
	ChainID string `json:"chain_id"`
	Version string `json:"version"`
	TaskID  string `json:"task_id"`

	LastHeight  uint64 `json:"last_height"`
	FinalHeight uint64 `json:"final_height"`

	LastHash   string    `json:"last_hash"`
	LastEpoch  string    `json:"last_epoch"`
	LastTime   time.Time `json:"last_time"`
	RetryCount uint64    `json:"retry_count"`
	Nonce      []byte    `json:"nonce"`

	SelfCheck bool `json:"selfCheck"`
}

func (*SyncDataRequest) FromMapStringInterface

func (sdr *SyncDataRequest) FromMapStringInterface(m map[string]interface{})

type SyncDataResponse

type SyncDataResponse struct {
	LastHash   string    `json:"last_hash"`
	LastHeight uint64    `json:"last_height"`
	LastTime   time.Time `json:"last_time"`
	LastEpoch  string    `json:"last_epoch"`
	RetryCount uint64    `json:"retry_count"`
	Nonce      []byte    `json:"nonce"`
	Error      []byte    `json:"error"`

	Processing bool `json:"processing"`
}

type TimeAccount added in v0.7.1

type TimeAccount struct {
	Epoch   string
	Time    time.Time
	Account string

	ChainID string
	Network string
}

type Transaction

type Transaction struct {
	// ID of transaction assigned on database write
	ID uuid.UUID `json:"id,omitempty"`
	// Created at
	CreatedAt *time.Time `json:"created_at,omitempty"`
	// Updated at
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Hash of the transaction
	Hash string `json:"hash,omitempty"`
	// BlockHash - hash of the block of transaction
	BlockHash string `json:"block_hash,omitempty"`
	// Height - height of the block of transaction
	Height uint64 `json:"height,omitempty"`

	Epoch string `json:"epoch,omitempty"`
	// ChainID - chain id of transacion
	ChainID string `json:"chain_id,omitempty"`
	// Time - time of transaction
	Time time.Time `json:"time,omitempty"`

	// Fee - Fees for transaction (if applies)
	Fee []TransactionAmount `json:"transaction_fee,omitempty"`
	// GasWanted
	GasWanted uint64 `json:"gas_wanted,omitempty"`
	// GasUsed
	GasUsed uint64 `json:"gas_used,omitempty"`
	// Memo - the description attached to transactions
	Memo string `json:"memo,omitempty"`

	// Version - Version of transaction record
	Version string `json:"version"`
	// Events - Transaction contents
	Events TransactionEvents `json:"events,omitempty"`

	// Raw - Raw transaction bytes
	Raw []byte `json:"raw,omitempty"`

	// RawLog - RawLog transaction's log bytes
	RawLog []byte `json:"raw_log,omitempty"`

	// HasErrors - indicates if Transaction has any errors inside
	HasErrors bool `json:"has_errors"`
}

Transaction contains the blockchain transaction details

type TransactionAmount

type TransactionAmount struct {
	// Textual representation of Amount
	Text string `json:"text,omitempty"`
	// The currency in what amount is returned (if applies)
	Currency string `json:"currency,omitempty"`

	// Numeric part of the amount
	Numeric *big.Int `json:"numeric,omitempty"`
	// Exponential part of amount obviously 0 by default
	Exp int32 `json:"exp,omitempty"`
}

TransactionAmount structure holding amount information with decimal implementation (numeric * 10 ^ exp)

func (*TransactionAmount) GetFloat

func (t *TransactionAmount) GetFloat() *big.Float

type TransactionEvent

type TransactionEvent struct {
	// ID UniqueID of event
	ID string `json:"id,omitempty"`
	// The Kind of event
	Kind string `json:"kind,omitempty"`
	// Type of transaction
	Type []string `json:"type,omitempty"`
	// Collection from where transaction came from
	Module string `json:"module,omitempty"`
	// List of sender accounts with optional amounts
	// Subcontents of event
	Sub []SubsetEvent `json:"sub,omitempty"`
}

TransactionEvent part of transaction contents

type TransactionEvents

type TransactionEvents []TransactionEvent

TransactionEvents - a set of TransactionEvent

func (*TransactionEvents) Scan

func (te *TransactionEvents) Scan(value interface{}) error

type TransactionSearch

type TransactionSearch struct {
	Network  string   `json:"network"`
	ChainIDs []string `json:"chain_ids"`
	Epoch    string   `json:"epoch"`

	Height     uint64    `json:"height"`
	Type       []string  `json:"type"`
	BlockHash  string    `json:"block_hash"`
	Hash       string    `json:"hash"`
	Account    []string  `json:"account"`
	Sender     []string  `json:"sender"`
	Receiver   []string  `json:"receiver"`
	Memo       string    `json:"memo"`
	BeforeTime time.Time `json:"before_time"`
	AfterTime  time.Time `json:"after_time"`
	Limit      uint64    `json:"limit"`
	Offset     uint64    `json:"offset"`

	AfterHeight  uint64 `form:"after_id"`
	BeforeHeight uint64 `form:"before_id"`

	WithRaw    bool `json:"with_raw"`
	WithRawLog bool `json:"with_raw_log"`
}

type TransactionSearchInternal

type TransactionSearchInternal struct {
	Height    uint64    `json:"height"`
	Type      SearchArr `json:"type"`
	BlockHash string    `json:"block_hash"`
	Hash      string    `json:"hash"`
	Account   []string  `json:"account"`
	Sender    []string  `json:"sender"`
	Receiver  []string  `json:"receiver"`
	Memo      string    `json:"memo"`

	AfterTime  time.Time `json:"before_time"`
	BeforeTime time.Time `json:"after_time"`

	AfterHeight  uint64 `json:"after_height"`
	BeforeHeight uint64 `json:"before_height"`
	Limit        uint64 `json:"limit"`
	Offset       uint64 `json:"offset"`

	Network  string   `json:"network"`
	ChainIDs []string `json:"chain_ids"`
	Epoch    string   `json:"epoch"`

	WithRaw    bool `json:"with_raw"`
	WithRawLog bool `json:"with_raw_log"`

	HasErrors bool `json:"has_errors"`
}

type TransactionWithMeta

type TransactionWithMeta struct {
	Network     string      `json:"network,omitempty"`
	Version     string      `json:"version,omitempty"`
	ChainID     string      `json:"chain_id,omitempty"`
	Transaction Transaction `json:"transaction,omitempty"`
}

type UnclaimedReward

type UnclaimedReward struct {
	// ID UniqueID of reward
	ID string `json:"id,omitempty"`
	// Created at
	CreatedAt *time.Time `json:"created_at,omitempty"`
	// Updated at
	UpdatedAt *time.Time `json:"updated_at,omitempty"`

	// Reward recipient account address
	Account string `json:"account,omitempty"`
	// Chain id of reward
	ChainID string `json:"chain_id,omitempty"`
	// Epoch
	Epoch string `json:"epoch,omitempty"`
	// Height from which reward come from
	Height uint64 `json:"height,omitempty"`
	// Name of the network
	Network string `json:"network,omitempty"`
	// Validator rewards
	UnclaimedReward []RewardAmount `json:"unclaimed_reward,omitempty"`
	// Address of validator
	Validator string `json:"validator,omitempty"`
	// Version of reward
	Version string `json:"version,omitempty"`
	// Reward time
	Time time.Time `json:"time,omitempty"`
}

type Validator

type Validator string

Jump to

Keyboard shortcuts

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