Documentation ¶
Overview ¶
Package resource contains the type definitions for all of horizons response resources.
Index ¶
- Variables
- func KeyTypeFromAddress(address string) (string, error)
- func MustKeyTypeFromAddress(address string) string
- type Account
- type AccountFlags
- type AccountThresholds
- type Asset
- type AssetStat
- type Balance
- type HistoryAccount
- type Ledger
- type Offer
- type OrderBookSummary
- type Path
- type Price
- type PriceLevel
- type Root
- type Signer
- type Trade
- type TradeAggregation
- type TradeEffect
- type Transaction
- type TransactionResultCodes
- type TransactionSuccess
Constants ¶
This section is empty.
Variables ¶
var KeyTypeNames = map[strkey.VersionByte]string{ strkey.VersionByteAccountID: "ed25519_public_key", strkey.VersionByteSeed: "ed25519_secret_seed", strkey.VersionByteHashX: "sha256_hash", strkey.VersionByteHashTx: "preauth_tx", }
KeyTypeNames maps from strkey version bytes into json string values to use in horizon responses.
Functions ¶
func KeyTypeFromAddress ¶
KeyTypeFromAddress converts the version byte of the provided strkey encoded value (for example an account id or a signer key) and returns the appropriate horizon-specific type name.
func MustKeyTypeFromAddress ¶
MustKeyTypeFromAddress is the panicking variant of KeyTypeFromAddress.
Types ¶
type Account ¶
type Account struct { Links struct { Self hal.Link `json:"self"` Transactions hal.Link `json:"transactions"` Operations hal.Link `json:"operations"` Payments hal.Link `json:"payments"` Effects hal.Link `json:"effects"` Offers hal.Link `json:"offers"` Trades hal.Link `json:"trades"` Data hal.Link `json:"data"` } `json:"_links"` HistoryAccount Sequence string `json:"sequence"` SubentryCount int32 `json:"subentry_count"` InflationDestination string `json:"inflation_destination,omitempty"` HomeDomain string `json:"home_domain,omitempty"` Thresholds AccountThresholds `json:"thresholds"` Flags AccountFlags `json:"flags"` Balances []Balance `json:"balances"` Signers []Signer `json:"signers"` Data map[string]string `json:"data"` }
Account is the summary of an account
func (Account) GetCreditBalance ¶
GetCreditBalance returns the balance for given code and issuer
func (*Account) GetData ¶
GetData returns decoded value for a given key. If the key does not exist, empty slice will be returned.
func (Account) GetNativeBalance ¶
GetNativeBalance returns the native balance of the account
func (*Account) MustGetData ¶
MustGetData returns decoded value for a given key. If the key does not exist, empty slice will be returned. If there is an error decoding a value, it will panic.
type AccountFlags ¶
type AccountFlags struct { AuthRequired bool `json:"auth_required"` AuthRevocable bool `json:"auth_revocable"` AuthImmutable bool `json:"auth_immutable"` }
AccountFlags represents the state of an account's flags
type AccountThresholds ¶
type AccountThresholds struct { LowThreshold byte `json:"low_threshold"` MedThreshold byte `json:"med_threshold"` HighThreshold byte `json:"high_threshold"` }
AccountThresholds represents an accounts "thresholds", the numerical values needed to satisfy the authorization of a given operation.
type AssetStat ¶
type AssetStat struct { Links struct { Toml hal.Link `json:"toml"` } `json:"_links"` base.Asset PT string `json:"paging_token"` Amount string `json:"amount"` NumAccounts int32 `json:"num_accounts"` Flags AccountFlags `json:"flags"` }
AssetStat represents the statistics for a single Asset
func (AssetStat) PagingToken ¶
PagingToken implementation for hal.Pageable
type Balance ¶
type Balance struct { Balance string `json:"balance"` Limit string `json:"limit,omitempty"` BuyingLiabilities string `json:"buying_liabilities"` SellingLiabilities string `json:"selling_liabilities"` base.Asset }
Balance represents an account's holdings for a single currency type
type HistoryAccount ¶
type HistoryAccount struct { ID string `json:"id"` PT string `json:"paging_token"` AccountID string `json:"account_id"` }
HistoryAccount is a simple resource, used for the account collection actions. It provides only the "TotalOrderID" of the account and its account id.
type Ledger ¶
type Ledger struct { Links struct { Self hal.Link `json:"self"` Transactions hal.Link `json:"transactions"` Operations hal.Link `json:"operations"` Payments hal.Link `json:"payments"` Effects hal.Link `json:"effects"` } `json:"_links"` ID string `json:"id"` PT string `json:"paging_token"` Hash string `json:"hash"` PrevHash string `json:"prev_hash,omitempty"` Sequence int32 `json:"sequence"` // Deprecated - remove in: horizon-v0.17.0 TransactionCount int32 `json:"transaction_count"` SuccessfulTransactionCount int32 `json:"successful_transaction_count"` FailedTransactionCount *int32 `json:"failed_transaction_count"` OperationCount int32 `json:"operation_count"` ClosedAt time.Time `json:"closed_at"` TotalCoins string `json:"total_coins"` FeePool string `json:"fee_pool"` BaseFee int32 `json:"base_fee_in_stroops"` BaseReserve int32 `json:"base_reserve_in_stroops"` MaxTxSetSize int32 `json:"max_tx_set_size"` ProtocolVersion int32 `json:"protocol_version"` HeaderXDR string `json:"header_xdr"` }
Ledger represents a single closed ledger
func (Ledger) PagingToken ¶
type Offer ¶
type Offer struct { Links struct { Self hal.Link `json:"self"` OfferMaker hal.Link `json:"offer_maker"` } `json:"_links"` ID int64 `json:"id"` PT string `json:"paging_token"` Seller string `json:"seller"` Selling Asset `json:"selling"` Buying Asset `json:"buying"` Amount string `json:"amount"` PriceR Price `json:"price_r"` Price string `json:"price"` LastModifiedLedger int32 `json:"last_modified_ledger"` LastModifiedTime *time.Time `json:"last_modified_time"` }
Offer is the display form of an offer to trade currency.
func (Offer) PagingToken ¶
type OrderBookSummary ¶
type OrderBookSummary struct { Bids []PriceLevel `json:"bids"` Asks []PriceLevel `json:"asks"` Selling Asset `json:"base"` Buying Asset `json:"counter"` }
OrderBookSummary represents a snapshot summary of a given order book
type Path ¶
type Path struct { SourceAssetType string `json:"source_asset_type"` SourceAssetCode string `json:"source_asset_code,omitempty"` SourceAssetIssuer string `json:"source_asset_issuer,omitempty"` SourceAmount string `json:"source_amount"` DestinationAssetType string `json:"destination_asset_type"` DestinationAssetCode string `json:"destination_asset_code,omitempty"` DestinationAssetIssuer string `json:"destination_asset_issuer,omitempty"` DestinationAmount string `json:"destination_amount"` Path []Asset `json:"path"` }
Path represents a single payment path.
func (Path) PagingToken ¶
stub implementation to satisfy pageable interface
type PriceLevel ¶
type PriceLevel struct { PriceR Price `json:"price_r"` Price string `json:"price"` Amount string `json:"amount"` }
PriceLevel represents an aggregation of offers that share a given price
type Root ¶
type Root struct { Links struct { Account hal.Link `json:"account"` AccountTransactions hal.Link `json:"account_transactions"` Assets hal.Link `json:"assets"` Friendbot *hal.Link `json:"friendbot,omitempty"` Metrics hal.Link `json:"metrics"` OrderBook hal.Link `json:"order_book"` Self hal.Link `json:"self"` Transaction hal.Link `json:"transaction"` Transactions hal.Link `json:"transactions"` } `json:"_links"` HorizonVersion string `json:"horizon_version"` StellarCoreVersion string `json:"core_version"` HorizonSequence int32 `json:"history_latest_ledger"` HistoryElderSequence int32 `json:"history_elder_ledger"` CoreSequence int32 `json:"core_latest_ledger"` NetworkPassphrase string `json:"network_passphrase"` // Deprecated - remove in: horizon-v0.17.0 ProtocolVersion int32 `json:"protocol_version"` CurrentProtocolVersion int32 `json:"current_protocol_version"` CoreSupportedProtocolVersion int32 `json:"core_supported_protocol_version"` }
Root is the initial map of links into the api.
type Signer ¶
type Signer struct { // Deprecated - remove in: horizon-v0.17.0 PublicKey string `json:"public_key"` Weight int32 `json:"weight"` Key string `json:"key"` Type string `json:"type"` }
Signer represents one of an account's signers.
type Trade ¶
type Trade struct { Links struct { Self hal.Link `json:"self"` Base hal.Link `json:"base"` Counter hal.Link `json:"counter"` Operation hal.Link `json:"operation"` } `json:"_links"` ID string `json:"id"` PT string `json:"paging_token"` LedgerCloseTime time.Time `json:"ledger_close_time"` OfferID string `json:"offer_id"` BaseOfferID string `json:"base_offer_id"` BaseAccount string `json:"base_account"` BaseAmount string `json:"base_amount"` BaseAssetType string `json:"base_asset_type"` BaseAssetCode string `json:"base_asset_code,omitempty"` BaseAssetIssuer string `json:"base_asset_issuer,omitempty"` CounterOfferID string `json:"counter_offer_id"` CounterAccount string `json:"counter_account"` CounterAmount string `json:"counter_amount"` CounterAssetType string `json:"counter_asset_type"` CounterAssetCode string `json:"counter_asset_code,omitempty"` CounterAssetIssuer string `json:"counter_asset_issuer,omitempty"` BaseIsSeller bool `json:"base_is_seller"` Price *Price `json:"price"` }
Trade represents a horizon digested trade
func (Trade) PagingToken ¶
PagingToken implementation for hal.Pageable
type TradeAggregation ¶
type TradeAggregation struct { Timestamp int64 `json:"timestamp"` TradeCount int64 `json:"trade_count"` BaseVolume string `json:"base_volume"` CounterVolume string `json:"counter_volume"` Average string `json:"avg"` High string `json:"high"` HighR xdr.Price `json:"high_r"` Low string `json:"low"` LowR xdr.Price `json:"low_r"` Open string `json:"open"` OpenR xdr.Price `json:"open_r"` Close string `json:"close"` CloseR xdr.Price `json:"close_r"` }
TradeAggregation represents trade data aggregation over a period of time
func (TradeAggregation) PagingToken ¶
func (res TradeAggregation) PagingToken() string
PagingToken implementation for hal.Pageable. Not actually used
type TradeEffect ¶
type TradeEffect struct { Links struct { Self hal.Link `json:"self"` Seller hal.Link `json:"seller"` Buyer hal.Link `json:"buyer"` Operation hal.Link `json:"operation"` } `json:"_links"` ID string `json:"id"` PT string `json:"paging_token"` OfferID string `json:"offer_id"` Seller string `json:"seller"` SoldAmount string `json:"sold_amount"` SoldAssetType string `json:"sold_asset_type"` SoldAssetCode string `json:"sold_asset_code,omitempty"` SoldAssetIssuer string `json:"sold_asset_issuer,omitempty"` Buyer string `json:"buyer"` BoughtAmount string `json:"bought_amount"` BoughtAssetType string `json:"bought_asset_type"` BoughtAssetCode string `json:"bought_asset_code,omitempty"` BoughtAssetIssuer string `json:"bought_asset_issuer,omitempty"` LedgerCloseTime time.Time `json:"created_at"` }
TradeEffect represents a trade effect resource. NOTE (scott, 2017-12-08): this resource is being added back in temporarily to deal with a deploy snafu. I didn't properly message the community that we were changing the response format, and so we're adding this back in to allow transition.
type Transaction ¶
type Transaction struct { Links struct { Self hal.Link `json:"self"` Account hal.Link `json:"account"` Ledger hal.Link `json:"ledger"` Operations hal.Link `json:"operations"` Effects hal.Link `json:"effects"` Precedes hal.Link `json:"precedes"` Succeeds hal.Link `json:"succeeds"` } `json:"_links"` ID string `json:"id"` PT string `json:"paging_token"` Hash string `json:"hash"` Ledger int32 `json:"ledger"` LedgerCloseTime time.Time `json:"created_at"` Account string `json:"source_account"` AccountSequence string `json:"source_account_sequence"` FeePaid int32 `json:"fee_paid"` OperationCount int32 `json:"operation_count"` EnvelopeXdr string `json:"envelope_xdr"` ResultXdr string `json:"result_xdr"` ResultMetaXdr string `json:"result_meta_xdr"` FeeMetaXdr string `json:"fee_meta_xdr"` MemoType string `json:"memo_type"` Memo string `json:"memo,omitempty"` Signatures []string `json:"signatures"` ValidAfter string `json:"valid_after,omitempty"` ValidBefore string `json:"valid_before,omitempty"` }
Transaction represents a single, successful transaction
func (Transaction) MarshalJSON ¶
func (t Transaction) MarshalJSON() ([]byte, error)
MarshalJSON implements a custom marshaler for Transaction. The memo field should be omitted if and only if the memo_type is "none".
func (Transaction) PagingToken ¶
func (res Transaction) PagingToken() string
PagingToken implementation for hal.Pageable
type TransactionResultCodes ¶
type TransactionResultCodes struct { TransactionCode string `json:"transaction"` OperationCodes []string `json:"operations,omitempty"` }
TransactionResultCodes represent a summary of result codes returned from a single xdr TransactionResult
type TransactionSuccess ¶
type TransactionSuccess struct { Links struct { Transaction hal.Link `json:"transaction"` } `json:"_links"` Hash string `json:"hash"` Ledger int32 `json:"ledger"` Env string `json:"envelope_xdr"` Result string `json:"result_xdr"` Meta string `json:"result_meta_xdr"` }
TransactionSuccess represents the result of a successful transaction submission.