Documentation ¶
Overview ¶
Package koios provides api client library to interact with Koios API endpoints and Cardano Blockchain. Sub package ./cmd/koios-rest provides cli application. Koios is best described as a Decentralized and Elastic RESTful query layer for exploring data on Cardano blockchain to consume within applications/wallets/explorers/etc.
Index ¶
- Constants
- Variables
- func ReadAndUnmarshalResponse(rsp *http.Response, res *Response, dest interface{}) error
- func ReadResponseBody(rsp *http.Response) (body []byte, err error)
- type AccountAction
- type AccountAddressesResponse
- type AccountAsset
- type AccountAssetsResponse
- type AccountHistoryEntry
- type AccountHistoryResponse
- type AccountInfo
- type AccountInfoResponse
- type AccountListResponse
- type AccountRewards
- type AccountRewardsResponse
- type AccountUpdatesResponse
- type Address
- type AddressAssetsResponse
- type AddressInfo
- type AddressInfoResponse
- type AddressTx
- type AddressTxsResponse
- type AddressUTxO
- type Asset
- type AssetAddressListResponse
- type AssetHistory
- type AssetHistoryResponse
- type AssetHolder
- type AssetInfo
- type AssetInfoResponse
- type AssetListItem
- type AssetListResponse
- type AssetMintTX
- type AssetName
- type AssetPolicyInfoResponse
- type AssetSummary
- type AssetSummaryResponse
- type AssetTxsResponse
- type Block
- type BlockHash
- type BlockInfoResponse
- type BlockTxsHashesResponse
- type BlocksInfoResponse
- type BlocksResponse
- type Certificate
- type Client
- func (c *Client) BaseURL() string
- func (c *Client) GET(ctx context.Context, path string, opts *RequestOptions) (*http.Response, error)
- func (c *Client) GetAccountAddresses(ctx context.Context, addr StakeAddress, opts *RequestOptions) (res *AccountAddressesResponse, err error)
- func (c *Client) GetAccountAssets(ctx context.Context, addr StakeAddress, opts *RequestOptions) (res *AccountAssetsResponse, err error)
- func (c *Client) GetAccountHistory(ctx context.Context, addr StakeAddress, opts *RequestOptions) (res *AccountHistoryResponse, err error)
- func (c *Client) GetAccountInfo(ctx context.Context, addr Address, opts *RequestOptions) (res *AccountInfoResponse, err error)
- func (c *Client) GetAccountList(ctx context.Context, opts *RequestOptions) (res *AccountListResponse, err error)
- func (c *Client) GetAccountRewards(ctx context.Context, addr StakeAddress, epoch *EpochNo, opts *RequestOptions) (res *AccountRewardsResponse, err error)
- func (c *Client) GetAccountUpdates(ctx context.Context, addr StakeAddress, opts *RequestOptions) (res *AccountUpdatesResponse, err error)
- func (c *Client) GetAddressAssets(ctx context.Context, addr Address, opts *RequestOptions) (res *AddressAssetsResponse, err error)
- func (c *Client) GetAddressInfo(ctx context.Context, addr Address, opts *RequestOptions) (res *AddressInfoResponse, err error)
- func (c *Client) GetAddressTxs(ctx context.Context, addrs []Address, h uint64, opts *RequestOptions) (*AddressTxsResponse, error)
- func (c *Client) GetAssetAddressList(ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions) (res *AssetAddressListResponse, err error)
- func (c *Client) GetAssetHistory(ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions) (res *AssetHistoryResponse, err error)
- func (c *Client) GetAssetInfo(ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions) (res *AssetInfoResponse, err error)
- func (c *Client) GetAssetList(ctx context.Context, opts *RequestOptions) (res *AssetListResponse, err error)
- func (c *Client) GetAssetPolicyInfo(ctx context.Context, policy PolicyID, opts *RequestOptions) (res *AssetPolicyInfoResponse, err error)
- func (c *Client) GetAssetSummary(ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions) (res *AssetSummaryResponse, err error)
- func (c *Client) GetAssetTxs(ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions) (res *AssetTxsResponse, err error)
- func (c *Client) GetBlockInfo(ctx context.Context, hash BlockHash, opts *RequestOptions) (res *BlockInfoResponse, err error)
- func (c *Client) GetBlockTxHashes(ctx context.Context, hash BlockHash, opts *RequestOptions) (res *BlockTxsHashesResponse, err error)
- func (c *Client) GetBlocks(ctx context.Context, opts *RequestOptions) (res *BlocksResponse, err error)
- func (c *Client) GetBlocksInfo(ctx context.Context, hashes []BlockHash, opts *RequestOptions) (res *BlocksInfoResponse, err error)
- func (c *Client) GetCredentialTxs(ctx context.Context, creds []PaymentCredential, h uint64, opts *RequestOptions) (res *CredentialTxsResponse, err error)
- func (c *Client) GetEpochInfo(ctx context.Context, epoch *EpochNo, opts *RequestOptions) (res *EpochInfoResponse, err error)
- func (c *Client) GetEpochParams(ctx context.Context, epoch *EpochNo, opts *RequestOptions) (res *EpochParamsResponse, err error)
- func (c *Client) GetGenesis(ctx context.Context, opts *RequestOptions) (*GenesisResponse, error)
- func (c *Client) GetNativeScriptList(ctx context.Context, opts *RequestOptions) (res *NativeScriptListResponse, err error)
- func (c *Client) GetPlutusScriptList(ctx context.Context, opts *RequestOptions) (res *PlutusScriptListResponse, err error)
- func (c *Client) GetPoolBlocks(ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions) (res *PoolBlocksResponse, err error)
- func (c *Client) GetPoolDelegators(ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions) (res *PoolDelegatorsResponse, err error)
- func (c *Client) GetPoolHistory(ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions) (res *PoolHistoryResponse, err error)
- func (c *Client) GetPoolInfo(ctx context.Context, pid PoolID, opts *RequestOptions) (res *PoolInfoResponse, err error)
- func (c *Client) GetPoolInfos(ctx context.Context, pids []PoolID, opts *RequestOptions) (res *PoolInfosResponse, err error)
- func (c *Client) GetPoolList(ctx context.Context, opts *RequestOptions) (res *PoolListResponse, err error)
- func (c *Client) GetPoolMetadata(ctx context.Context, pids []PoolID, opts *RequestOptions) (res *PoolMetadataResponse, err error)
- func (c *Client) GetPoolRelays(ctx context.Context, opts *RequestOptions) (res *PoolRelaysResponse, err error)
- func (c *Client) GetPoolUpdates(ctx context.Context, pid *PoolID, opts *RequestOptions) (res *PoolUpdatesResponse, err error)
- func (c *Client) GetScriptRedeemers(ctx context.Context, sh ScriptHash, opts *RequestOptions) (res *ScriptRedeemersResponse, err error)
- func (c *Client) GetTip(ctx context.Context, opts *RequestOptions) (res *TipResponse, err error)
- func (c *Client) GetTotals(ctx context.Context, epoch *EpochNo, opts *RequestOptions) (*TotalsResponse, error)
- func (c *Client) GetTxInfo(ctx context.Context, tx TxHash, opts *RequestOptions) (res *TxInfoResponse, err error)
- func (c *Client) GetTxMetaLabels(ctx context.Context, opts *RequestOptions) (*TxMetaLabelsResponse, error)
- func (c *Client) GetTxMetadata(ctx context.Context, tx TxHash, opts *RequestOptions) (res *TxMetadataResponse, err error)
- func (c *Client) GetTxStatus(ctx context.Context, tx TxHash, opts *RequestOptions) (res *TxStatusResponse, err error)
- func (c *Client) GetTxUTxOs(ctx context.Context, tx TxHash, opts *RequestOptions) (res *TxUTxOsResponse, err error)
- func (c *Client) GetTxsInfo(ctx context.Context, txs []TxHash, opts *RequestOptions) (*TxsInfosResponse, error)
- func (c *Client) GetTxsMetadata(ctx context.Context, txs []TxHash, opts *RequestOptions) (*TxsMetadataResponse, error)
- func (c *Client) GetTxsStatuses(ctx context.Context, txs []TxHash, opts *RequestOptions) (*TxsStatusesResponse, error)
- func (c *Client) GetTxsUTxOs(ctx context.Context, txs []TxHash, opts *RequestOptions) (*TxsUTxOsResponse, error)
- func (c *Client) HEAD(ctx context.Context, path string, opts *RequestOptions) (*http.Response, error)
- func (c *Client) NewRequestOptions() *RequestOptions
- func (c *Client) POST(ctx context.Context, path string, body io.Reader, opts *RequestOptions) (*http.Response, error)
- func (c *Client) SubmitSignedTx(ctx context.Context, stx TxBodyJSON, opts *RequestOptions) (*SubmitSignedTxResponse, error)
- func (c *Client) WithOptions(opts ...Option) (*Client, error)
- type CredentialTxsResponse
- type EpochInfo
- type EpochInfoResponse
- type EpochNo
- type EpochParams
- type EpochParamsResponse
- type Genesis
- type GenesisResponse
- type Lovelace
- type NativeScriptListItem
- type NativeScriptListResponse
- type Option
- type PaymentAddr
- type PaymentCredential
- type PlutusScriptListItem
- type PlutusScriptListResponse
- type PolicyID
- type PoolBlockInfo
- type PoolBlocksResponse
- type PoolDelegator
- type PoolDelegatorsResponse
- type PoolHistory
- type PoolHistoryResponse
- type PoolID
- type PoolInfo
- type PoolInfoResponse
- type PoolInfosResponse
- type PoolListItem
- type PoolListResponse
- type PoolMetaJSON
- type PoolMetadata
- type PoolMetadataResponse
- type PoolRelays
- type PoolRelaysResponse
- type PoolUpdateInfo
- type PoolUpdatesResponse
- type Relay
- type RequestOptions
- func (ro *RequestOptions) Clone() (*RequestOptions, error)
- func (ro *RequestOptions) HeadersAdd(key, val string)
- func (ro *RequestOptions) HeadersApply(h http.Header)
- func (ro *RequestOptions) HeadersSet(key, val string)
- func (ro *RequestOptions) Page(page uint)
- func (ro *RequestOptions) PageSize(size uint)
- func (ro *RequestOptions) QueryAdd(key, val string)
- func (ro *RequestOptions) QueryApply(h url.Values)
- func (ro *RequestOptions) QuerySet(key, val string)
- type RequestStats
- type Response
- type ResponseError
- type ScriptHash
- type ScriptRedeemer
- type ScriptRedeemers
- type ScriptRedeemersResponse
- type StakeAddress
- type SubmitSignedTxResponse
- type TX
- type Time
- type Tip
- type TipResponse
- type TokenRegistryMetadata
- type Totals
- type TotalsResponse
- type TxBodyJSON
- type TxHash
- type TxInfo
- type TxInfoMetadata
- type TxInfoResponse
- type TxInput
- type TxMetaLabelsResponse
- type TxMetadata
- type TxMetadataResponse
- type TxMetalabel
- type TxOutput
- type TxStatus
- type TxStatusResponse
- type TxUTxOsResponse
- type TxsInfosResponse
- type TxsMetadataResponse
- type TxsStatusesResponse
- type TxsUTxOsResponse
- type TxsWithdrawal
- type UTxO
Constants ¶
const ( MainnetHost = "api.koios.rest" GuildHost = "guild.koios.rest" TestnetHost = "testnet.koios.rest" DefaultAPIVersion = "v0" DefaultPort uint16 = 443 DefaultScheme = "https" LibraryVersion = "v0" DefaultRateLimit int = 10 // https://api.koios.rest/#overview--limits DefaultOrigin = "https://github.com/cardano-community/koios-go-client" PageSize uint = 1000 )
MainnetHost : is primay and default api host. GuildHost : is Guild network host. TestnetHost : is api host for testnet. DefaultAPIVersion : is openapi spec version e.g. /v0. DefaultPort : default port used by api client. DefaultSchema : default schema used by api client. LibraryVersion : koios go library version. DefaultRateLimit : is default rate limit used by api client. DefaultOrigin : is default origin header used by api client.
Variables ¶
var ( ErrURLValuesLenght = errors.New("if presenent then only single url.Values should be provided") ErrHTTPClientTimeoutSetting = errors.New("http.Client.Timeout should never be 0 in production") ErrHTTPClientChange = errors.New("http.Client can only be set as option to koios.New") ErrOriginSet = errors.New("origin can only be set as option to koios.New") ErrRateLimitRange = errors.New("rate limit must be between 1-255 requests per sec") ErrResponseIsNotJSON = errors.New("got non json response") ErrNoTxHash = errors.New("missing transaxtion hash(es)") ErrNoAddress = errors.New("missing address") ErrNoPoolID = errors.New("missing pool id") ErrResponse = errors.New("got unexpected response") ErrSchema = errors.New("scheme must be http or https") ErrReqOptsAlreadyUsed = errors.New("request options can only be used once") ErrUnexpectedResponseField = errors.New("unexpected response field") ZeroLovelace = NewLovelace(0, 1) //nolint: gochecknoglobals )
Predefined errors used by the library.
Functions ¶
func ReadAndUnmarshalResponse ¶ added in v0.4.0
ReadAndUnmarshalResponse is helper to unmarchal json responses.
Types ¶
type AccountAction ¶
AccountAction data entry for `/account_updates`.
type AccountAddressesResponse ¶
AccountAddressesResponse represents response from `/account_addresses` endpoint.
type AccountAsset ¶
type AccountAsset struct { // Name Asset Name (hex). Name string `json:"asset_name"` // PolicyID Asset Policy ID (hex). PolicyID PolicyID `json:"asset_policy"` // Quantity of assets Quantity Lovelace `json:"quantity"` }
AccountAsset asset list item when requesting account info.
type AccountAssetsResponse ¶
type AccountAssetsResponse struct { Response Data []AccountAsset `json:"response"` }
AccountAssetsResponse represents response from `/account_assets` endpoint.
type AccountHistoryEntry ¶
type AccountHistoryEntry struct { StakeAddress StakeAddress `json:"stake_address"` PoolID PoolID `json:"pool_id"` Epoch EpochNo `json:"epoch_no"` ActiveStake Lovelace `json:"active_stake"` }
AccountHistoryEntry history entry list item.
type AccountHistoryResponse ¶
type AccountHistoryResponse struct { Response Data []AccountHistoryEntry `json:"response"` }
AccountHistoryResponse represents response from `/account_history` endpoint.
type AccountInfo ¶
type AccountInfo struct { Status string `json:"status"` DelegatedPool PoolID `json:"delegated_pool"` TotalBalance Lovelace `json:"total_balance"` UTxO Lovelace `json:"utxo"` Rewards Lovelace `json:"rewards"` Withdrawals Lovelace `json:"withdrawals"` RewardsAvailable Lovelace `json:"rewards_available"` Reserves Lovelace `json:"reserves"` Treasury Lovelace `json:"treasury"` }
AccountInfo data returned by `/account_info`.
type AccountInfoResponse ¶
type AccountInfoResponse struct { Response Data *AccountInfo `json:"response"` }
AccountInfoResponse represents response from `/account_info` endpoint.
type AccountListResponse ¶
type AccountListResponse struct { Response Data []StakeAddress `json:"response"` }
AccountListResponse represents response from `/account_list` endpoint.
type AccountRewards ¶
type AccountRewards struct { PoolID PoolID `json:"pool_id"` EarnedEpoch EpochNo `json:"earned_epoch"` SpendableEpoch EpochNo `json:"spendable_epoch"` Amount Lovelace `json:"amount"` Type string `json:"type"` }
AccountRewards data returned by `/account_rewards`.
type AccountRewardsResponse ¶
type AccountRewardsResponse struct { Response Data []AccountRewards `json:"response"` }
AccountRewardsResponse represents response from `/account_rewards` endpoint.
type AccountUpdatesResponse ¶
type AccountUpdatesResponse struct { Response Data []AccountAction `json:"response"` }
AccountUpdatesResponse represents response from `/account_rewards` endpoint.
type AddressAssetsResponse ¶
AddressAssetsResponse represents response from `/address_info` endpoint.
type AddressInfo ¶
type AddressInfo struct { // Balance ADA Lovelace balance of address Balance Lovelace `json:"balance"` // StakeAddress associated with address StakeAddress StakeAddress `json:"stake_address,omitempty"` UTxOs []AddressUTxO `json:"utxo_set"` }
AddressInfo esponse for `/address_info`.
type AddressInfoResponse ¶
type AddressInfoResponse struct { Response Data *AddressInfo `json:"response"` }
AddressInfoResponse represents response from `/address_info` endpoint.
type AddressTxsResponse ¶
AddressTxsResponse represents response from `/address_txs` endpoint.
type AddressUTxO ¶
type AddressUTxO struct { // Hash of Transaction for input UTxO. TxHash TxHash `json:"tx_hash"` // Index of input UTxO on the mentioned address used for input. TxIndex int `json:"tx_index"` // Balance on the selected input transaction. Value Lovelace `json:"value"` // An array of assets contained on UTxO. AssetList []Asset `json:"asset_list"` }
AddressUTxO UTxO attached to address.
type Asset ¶
type Asset struct { // Asset Name (hex). Name string `json:"asset_name"` // Asset Policy ID (hex). PolicyID PolicyID `json:"policy_id"` // Quantity // Input: asset balance on the selected input transaction. // Output: sum of assets for output UTxO. // Mint: sum of minted assets (negative on burn). Quantity Lovelace `json:"quantity"` }
Asset represents Cardano Asset.
type AssetAddressListResponse ¶
type AssetAddressListResponse struct { Response Data []AssetHolder `json:"response"` }
AssetAddressListResponse represents response from `/asset_address_list` endpoint.
type AssetHistory ¶ added in v0.4.0
type AssetHistory struct { PolicyID PolicyID `json:"policy_id"` AssetName AssetName `json:"asset_name"` MintingTXs []AssetMintTX `json:"minting_txs"` }
AssetHistory holds given asset mint/burn tx's.
type AssetHistoryResponse ¶ added in v0.4.0
type AssetHistoryResponse struct { Response Data *AssetHistory `json:"response"` }
AssetHistoryResponse represents response from `/asset_history` endpoint.
type AssetHolder ¶
type AssetHolder struct { PaymentAddress Address `json:"payment_address"` Quantity Lovelace `json:"quantity"` }
AssetHolder payment addresses holding the given token (including balance).
type AssetInfo ¶
type AssetInfo struct { // Asset Name (hex). Name AssetName `json:"asset_name"` // Asset Name (ASCII) NameASCII string `json:"asset_name_ascii"` // The CIP14 fingerprint of the asset Fingerprint string `json:"fingerprint"` // MintingTxMetadata minting Tx JSON payload if it can be decoded as JSON MintingTxMetadata []TxInfoMetadata `json:"minting_tx_metadata"` // Asset metadata registered on the Cardano Token Registry TokenRegistryMetadata *TokenRegistryMetadata `json:"token_registry_metadata"` // Asset Policy ID (hex). PolicyID PolicyID `json:"policy_id,omitempty"` // TotalSupply of Asset TotalSupply Lovelace `json:"total_supply"` // CreationTime of Asset CreationTime Time `json:"creation_time"` // MintCnt count of mint transactions MintCnt int `json:"mint_cnt"` // BurnCnt count of burn transactions BurnCnt int `json:"burn_cnt"` // MintingTxHash mint tx MintingTxHash TxHash `json:"minting_tx_hash"` }
AssetInfo info about the asset.
type AssetInfoResponse ¶
AssetInfoResponse represents response from `/asset_info` endpoint.
type AssetListItem ¶
type AssetListItem struct { PolicyID PolicyID `json:"policy_id"` AssetNames struct { HEX []string `json:"hex"` ASCII []string `json:"ascii"` } `json:"asset_names"` }
AssetListItem used to represent response from /asset_list`.
type AssetListResponse ¶
type AssetListResponse struct { Response Data []AssetListItem `json:"response"` }
AssetListResponse represents response from `/asset_list` endpoint.
type AssetMintTX ¶ added in v0.4.0
AssetMintTX holds specific mint tx hash and amount.
type AssetPolicyInfoResponse ¶ added in v0.4.0
AssetPolicyInfoResponse represents response from `/asset_policy_info` endpoint.
type AssetSummary ¶
type AssetSummary struct { // Asset Name (hex) AssetName AssetName `json:"asset_name"` // Asset Policy ID (hex) PolicyID PolicyID `json:"policy_id"` // Total number of registered wallets holding the given asset StakedWallets uint64 `json:"staked_wallets"` // Total number of transactions including the given asset TotalTransactions uint64 `json:"total_transactions"` // Total number of payment addresses (not belonging // to registered wallets) holding the given asset UnstakedAddresses uint64 `json:"unstaked_addresses"` }
AssetSummary aggregated asset summary.
type AssetSummaryResponse ¶
type AssetSummaryResponse struct { Response Data *AssetSummary `json:"response"` }
AssetSummaryResponse represents response from `/asset_summary` endpoint.
type AssetTxsResponse ¶
AssetTxsResponse represents response from `/asset_txs` endpoint.
type Block ¶
type Block struct { // Hash block hash Hash BlockHash `json:"hash"` // Epoch number. Epoch EpochNo `json:"epoch"` // AbsoluteSlot is overall slot number (slots from genesis block of chain). AbsoluteSlot int `json:"abs_slot"` // EpochSlot slot number within epoch. EpochSlot int `json:"epoch_slot"` // Height is block number on chain where transaction was included. Height int `json:"block_height"` // Size of block. Size int `json:"block_size"` // Time time of the block. Time Time `json:"block_time"` // TxCount transactions count in block. TxCount int `json:"tx_count"` // VrfKey is pool VRF key. VrfKey string `json:"vrf_key"` // OpCert latest ool operational certificate hash OpCert string `json:"op_cert,omitempty"` // Pool ID. Pool string `json:"pool"` // OpCertCounter is pool latest operational certificate counter value. OpCertCounter int `json:"op_cert_counter"` // ParentHash parent block hash ParentHash BlockHash `json:"parent_hash,omitempty"` // ChildHash child block hash ChildHash BlockHash `json:"child_hash,omitempty"` }
Block defines model for block.
func (*Block) UnmarshalJSON ¶ added in v1.2.0
handle api json tags Block.epoch and Block.epoch_no.
type BlockInfoResponse ¶
BlockInfoResponse represents response from `/block_info` endpoint.
type BlockTxsHashesResponse ¶
BlockTxsHashesResponse represents response from `/block_txs` endpoint.
type BlocksInfoResponse ¶ added in v1.0.0
BlockInfoResponse represents response from `/block_info` endpoint.
type BlocksResponse ¶
BlocksResponse represents response from `/blocks` endpoint.
type Certificate ¶
type Certificate struct { // Index of the certificate Index int `json:"index"` // Info is A JSON object containing information from the certificate. Info map[string]interface{} `json:"info"` // Type of certificate could be: // delegation, stake_registration, stake_deregistraion, pool_update, // pool_retire, param_proposal, reserve_MIR, treasury_MIR). Type string `json:"type"` }
Certificate information.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is api client instance.
func New ¶
New creates thread-safe API client you can freerly pass this client to multiple go routines.
Call to New without options is same as call with default options. e.g. api, err := koios.New(
koios.Host(koios.MainnetHost), koios.APIVersion(koios.DefaultAPIVersion), koios.Port(koios.DefaultPort), koios.Schema(koios.DefaultSchema), koios.HttpClient(koios.DefaultHttpClient),
).
func (*Client) BaseURL ¶
BaseURL returns currently used base url e.g. https://api.koios.rest/api/v0
func (*Client) GET ¶
func (c *Client) GET( ctx context.Context, path string, opts *RequestOptions, ) (*http.Response, error)
GET sends api http GET request to provided relative path with query params and returns an HTTP response. When using GET method you are expected to handle the response according to net/http.Do documentation. e.g. Caller should close resp.Body when done reading from it.
func (*Client) GetAccountAddresses ¶
func (c *Client) GetAccountAddresses( ctx context.Context, addr StakeAddress, opts *RequestOptions, ) (res *AccountAddressesResponse, err error)
GetAccountAddresses retruns all addresses associated with an account.
func (*Client) GetAccountAssets ¶
func (c *Client) GetAccountAssets( ctx context.Context, addr StakeAddress, opts *RequestOptions, ) (res *AccountAssetsResponse, err error)
GetAccountAssets retruns all the native asset balance of an account.
func (*Client) GetAccountHistory ¶
func (c *Client) GetAccountHistory( ctx context.Context, addr StakeAddress, opts *RequestOptions, ) (res *AccountHistoryResponse, err error)
GetAccountHistory retruns the staking history of an account.
func (*Client) GetAccountInfo ¶
func (c *Client) GetAccountInfo( ctx context.Context, addr Address, opts *RequestOptions, ) (res *AccountInfoResponse, err error)
func (*Client) GetAccountList ¶
func (c *Client) GetAccountList( ctx context.Context, opts *RequestOptions, ) (res *AccountListResponse, err error)
GetAccountList returns a list of all accounts.
func (*Client) GetAccountRewards ¶
func (c *Client) GetAccountRewards( ctx context.Context, addr StakeAddress, epoch *EpochNo, opts *RequestOptions, ) (res *AccountRewardsResponse, err error)
GetAccountRewards retruns the full rewards history (including MIR) for a stake address, or certain epoch if specified.
func (*Client) GetAccountUpdates ¶
func (c *Client) GetAccountUpdates( ctx context.Context, addr StakeAddress, opts *RequestOptions, ) (res *AccountUpdatesResponse, err error)
GetAccountUpdates (History) retruns the account updates (registration, deregistration, delegation and withdrawals).
func (*Client) GetAddressAssets ¶
func (c *Client) GetAddressAssets( ctx context.Context, addr Address, opts *RequestOptions, ) (res *AddressAssetsResponse, err error)
GetAddressAssets returns the list of all the assets (policy, name and quantity) for a given address.
func (*Client) GetAddressInfo ¶
func (c *Client) GetAddressInfo( ctx context.Context, addr Address, opts *RequestOptions, ) (res *AddressInfoResponse, err error)
func (*Client) GetAddressTxs ¶
func (c *Client) GetAddressTxs( ctx context.Context, addrs []Address, h uint64, opts *RequestOptions, ) (*AddressTxsResponse, error)
func (*Client) GetAssetAddressList ¶
func (c *Client) GetAssetAddressList( ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions, ) (res *AssetAddressListResponse, err error)
GetAssetAddressList returns the list of all addresses holding a given asset.
func (*Client) GetAssetHistory ¶ added in v0.4.0
func (c *Client) GetAssetHistory( ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions, ) (res *AssetHistoryResponse, err error)
GetAssetHistory returns mint/burn history of an asset.
func (*Client) GetAssetInfo ¶
func (c *Client) GetAssetInfo( ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions, ) (res *AssetInfoResponse, err error)
GetAssetInfo returns the information of an asset including first minting & token registry metadata.
func (*Client) GetAssetList ¶
func (c *Client) GetAssetList( ctx context.Context, opts *RequestOptions, ) (res *AssetListResponse, err error)
GetAssetList returns the list of all native assets (paginated).
func (*Client) GetAssetPolicyInfo ¶ added in v0.4.0
func (c *Client) GetAssetPolicyInfo( ctx context.Context, policy PolicyID, opts *RequestOptions, ) (res *AssetPolicyInfoResponse, err error)
GetAssetPolicyInfo returns information for all assets under the same policy.
func (*Client) GetAssetSummary ¶
func (c *Client) GetAssetSummary( ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions, ) (res *AssetSummaryResponse, err error)
GetAssetSummary returns the summary of an asset (total transactions exclude minting/total wallets include only wallets with asset balance).
func (*Client) GetAssetTxs ¶
func (c *Client) GetAssetTxs( ctx context.Context, policy PolicyID, name AssetName, opts *RequestOptions, ) (res *AssetTxsResponse, err error)
GetAssetTxs returns the list of all asset transaction hashes (newest first).
func (*Client) GetBlockInfo ¶
func (c *Client) GetBlockInfo( ctx context.Context, hash BlockHash, opts *RequestOptions, ) (res *BlockInfoResponse, err error)
GetBlockInfo returns detailed information about a specific block.
func (*Client) GetBlockTxHashes ¶
func (c *Client) GetBlockTxHashes( ctx context.Context, hash BlockHash, opts *RequestOptions, ) (res *BlockTxsHashesResponse, err error)
GetBlockTxHashes returns a list of all transactions hashes included in a provided block.
func (*Client) GetBlocks ¶
func (c *Client) GetBlocks( ctx context.Context, opts *RequestOptions, ) (res *BlocksResponse, err error)
GetBlocks returns summarised details about all blocks (paginated - latest first).
func (*Client) GetBlocksInfo ¶ added in v1.0.0
func (c *Client) GetBlocksInfo( ctx context.Context, hashes []BlockHash, opts *RequestOptions, ) (res *BlocksInfoResponse, err error)
GetBlocksInfo returns detailed information about a set of blocks.
func (*Client) GetCredentialTxs ¶
func (c *Client) GetCredentialTxs( ctx context.Context, creds []PaymentCredential, h uint64, opts *RequestOptions, ) (res *CredentialTxsResponse, err error)
func (*Client) GetEpochInfo ¶
func (c *Client) GetEpochInfo( ctx context.Context, epoch *EpochNo, opts *RequestOptions, ) (res *EpochInfoResponse, err error)
GetEpochInfo returns the epoch information, all epochs if no epoch specified.
func (*Client) GetEpochParams ¶
func (c *Client) GetEpochParams( ctx context.Context, epoch *EpochNo, opts *RequestOptions, ) (res *EpochParamsResponse, err error)
GetEpochParams returns the protocol parameters for specific epoch, and information about all epochs if no epoch specified.
func (*Client) GetGenesis ¶
func (c *Client) GetGenesis( ctx context.Context, opts *RequestOptions, ) (*GenesisResponse, error)
GetGenesis returns the Genesis parameters used to start specific era on chain.
func (*Client) GetNativeScriptList ¶ added in v0.4.0
func (c *Client) GetNativeScriptList( ctx context.Context, opts *RequestOptions, ) (res *NativeScriptListResponse, err error)
GetNativeScriptList returns list of all existing native script hashes along with their creation transaction hashes.
func (*Client) GetPlutusScriptList ¶ added in v0.4.0
func (c *Client) GetPlutusScriptList( ctx context.Context, opts *RequestOptions, ) (res *PlutusScriptListResponse, err error)
GetPlutusScriptList returns all existing Plutus script hashes along with their creation transaction hashes.
func (*Client) GetPoolBlocks ¶
func (c *Client) GetPoolBlocks( ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions, ) (res *PoolBlocksResponse, err error)
GetPoolBlocks returns information about blocks minted by a given pool in current epoch (or _epoch_no if provided).
func (*Client) GetPoolDelegators ¶
func (c *Client) GetPoolDelegators( ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions, ) (res *PoolDelegatorsResponse, err error)
GetPoolDelegators returns information about delegators by a given pool and optional epoch (current if omitted).
func (*Client) GetPoolHistory ¶ added in v0.4.0
func (c *Client) GetPoolHistory( ctx context.Context, pid PoolID, epoch *EpochNo, opts *RequestOptions, ) (res *PoolHistoryResponse, err error)
GetPoolHistory returns information about pool stake, block and reward history in a given epoch _epoch_no (or all epochs that pool existed for, in descending order if no _epoch_no was provided).
func (*Client) GetPoolInfo ¶
func (c *Client) GetPoolInfo( ctx context.Context, pid PoolID, opts *RequestOptions, ) (res *PoolInfoResponse, err error)
GetPoolInfo returns current pool status and details for a specified pool.
func (*Client) GetPoolInfos ¶
func (c *Client) GetPoolInfos( ctx context.Context, pids []PoolID, opts *RequestOptions, ) (res *PoolInfosResponse, err error)
GetPoolInfos returns current pool statuses and details for a specified list of pool ids.
func (*Client) GetPoolList ¶
func (c *Client) GetPoolList( ctx context.Context, opts *RequestOptions, ) (res *PoolListResponse, err error)
GetPoolList returns the list of all currently registered/retiring (not retired) pools.
func (*Client) GetPoolMetadata ¶
func (c *Client) GetPoolMetadata( ctx context.Context, pids []PoolID, opts *RequestOptions, ) (res *PoolMetadataResponse, err error)
GetPoolMetadata returns Metadata(on & off-chain) for all currently registered/retiring (not retired) pools.
func (*Client) GetPoolRelays ¶
func (c *Client) GetPoolRelays( ctx context.Context, opts *RequestOptions, ) (res *PoolRelaysResponse, err error)
GetPoolRelays returns a list of registered relays for all currently registered/retiring (not retired) pools.
func (*Client) GetPoolUpdates ¶
func (c *Client) GetPoolUpdates( ctx context.Context, pid *PoolID, opts *RequestOptions, ) (res *PoolUpdatesResponse, err error)
GetPoolUpdates returns all pool updates for all pools or only updates for specific pool if specified.
func (*Client) GetScriptRedeemers ¶
func (c *Client) GetScriptRedeemers( ctx context.Context, sh ScriptHash, opts *RequestOptions, ) (res *ScriptRedeemersResponse, err error)
GetScriptRedeemers returns a list of all redeemers for a given script hash.
func (*Client) GetTip ¶
func (c *Client) GetTip( ctx context.Context, opts *RequestOptions, ) (res *TipResponse, err error)
GetTip returns the tip info about the latest block seen by chain.
func (*Client) GetTotals ¶
func (c *Client) GetTotals( ctx context.Context, epoch *EpochNo, opts *RequestOptions, ) (*TotalsResponse, error)
GetTotals returns the circulating utxo, treasury, rewards, supply and reserves in lovelace for specified epoch, all epochs if empty.
func (*Client) GetTxInfo ¶
func (c *Client) GetTxInfo( ctx context.Context, tx TxHash, opts *RequestOptions, ) (res *TxInfoResponse, err error)
GetTxInfo returns detailed information about transaction.
func (*Client) GetTxMetaLabels ¶
func (c *Client) GetTxMetaLabels( ctx context.Context, opts *RequestOptions, ) (*TxMetaLabelsResponse, error)
GetTxMetaLabels retruns a list of all transaction metalabels.
func (*Client) GetTxMetadata ¶
func (c *Client) GetTxMetadata( ctx context.Context, tx TxHash, opts *RequestOptions, ) (res *TxMetadataResponse, err error)
GetTxMetadata returns metadata information (if any) for given transaction.
func (*Client) GetTxStatus ¶
func (c *Client) GetTxStatus( ctx context.Context, tx TxHash, opts *RequestOptions, ) (res *TxStatusResponse, err error)
GetTxStatus returns status of transaction.
func (*Client) GetTxUTxOs ¶ added in v1.1.0
func (c *Client) GetTxUTxOs( ctx context.Context, tx TxHash, opts *RequestOptions, ) (res *TxUTxOsResponse, err error)
GetTxUTxOs returns UTxO set (inputs/outputs) of transaction.
func (*Client) GetTxsInfo ¶ added in v1.1.0
func (c *Client) GetTxsInfo( ctx context.Context, txs []TxHash, opts *RequestOptions, ) (*TxsInfosResponse, error)
GetTxsInfo returns detailed information about transaction(s).
func (*Client) GetTxsMetadata ¶
func (c *Client) GetTxsMetadata( ctx context.Context, txs []TxHash, opts *RequestOptions, ) (*TxsMetadataResponse, error)
GetTxsMetadata returns metadata for requested transaction(s).
func (*Client) GetTxsStatuses ¶
func (c *Client) GetTxsStatuses( ctx context.Context, txs []TxHash, opts *RequestOptions, ) (*TxsStatusesResponse, error)
GetTxsStatuses returns status of transaction(s).
func (*Client) GetTxsUTxOs ¶
func (c *Client) GetTxsUTxOs( ctx context.Context, txs []TxHash, opts *RequestOptions, ) (*TxsUTxOsResponse, error)
GetTxsUTxOs returns UTxO set (inputs/outputs) of transactions.
func (*Client) HEAD ¶
func (c *Client) HEAD( ctx context.Context, path string, opts *RequestOptions, ) (*http.Response, error)
HEAD sends api http HEAD request to provided relative path with query params and returns an HTTP response.
func (*Client) NewRequestOptions ¶ added in v1.0.0
func (c *Client) NewRequestOptions() *RequestOptions
func (*Client) POST ¶
func (c *Client) POST( ctx context.Context, path string, body io.Reader, opts *RequestOptions, ) (*http.Response, error)
POST sends api http POST request to provided relative path with query params and returns an HTTP response. When using POST method you are expected to handle the response according to net/http.Do documentation. e.g. Caller should close resp.Body when done reading from it.
func (*Client) SubmitSignedTx ¶
func (c *Client) SubmitSignedTx( ctx context.Context, stx TxBodyJSON, opts *RequestOptions, ) (*SubmitSignedTxResponse, error)
SubmitSignedTx Submit an transaction to the network.
type CredentialTxsResponse ¶
CredentialTxsResponse represents response from `/credential_txs` endpoint.
type EpochInfo ¶
type EpochInfo struct { // Rewards accumulated as of given epoch (in lovelaces) ActiveStake Lovelace `json:"active_stake"` // Number of blocks created in epoch BlkCount int64 `json:"blk_count"` // Epoch number Epoch EpochNo `json:"epoch_no"` // Total fees incurred by transactions in epoch Fees Lovelace `json:"fees"` // Timestamp for first block created in epoch FirstBlockTime Time `json:"first_block_time"` // Timestamp for last block created in epoch LastBlockTime Time `json:"last_block_time"` // Total output value across all transactions in epoch OutSum Lovelace `json:"out_sum"` // Number of transactions submitted in epoch TxCount int64 `json:"tx_count"` // EndTime of epoch EndTime Time `json:"end_time"` // StartTime of epoch StartTime Time `json:"start_time"` }
EpochInfo defines model for epoch_info.
type EpochInfoResponse ¶
EpochInfoResponse response of /epoch_info.
type EpochParams ¶
type EpochParams struct { // The hash of the first block where these parameters are valid BlockHash BlockHash `json:"block_hash"` // The cost per UTxO word CoinsPerUtxoSize Lovelace `json:"coins_per_utxo_size"` // The percentage of the tx fee which must be provided as collateral // when including non-native scripts CollateralPercent int64 `json:"collateral_percent"` // The per language cost models CostModels string `json:"cost_models"` // The decentralisation parameter (1 fully centralised, 0 fully decentralised) Decentralisation float64 `json:"decentralisation"` // The hash of 32-byte string of extra random-ness added into // the protocol's entropy pool Entropy string `json:"entropy"` // Epoch number Epoch EpochNo `json:"epoch_no"` // The pledge influence on pool rewards Influence float64 `json:"influence"` // The amount (in lovelace) required for a deposit to register a stake address KeyDeposit Lovelace `json:"key_deposit"` // The maximum block header size (in bytes) MaxBhSize int `json:"max_bh_size"` // The maximum number of execution memory allowed to be used in a single block MaxBlockExMem float32 `json:"max_block_ex_mem"` // The maximum number of execution steps allowed to be used in a single block MaxBlockExSteps float32 `json:"max_block_ex_steps"` // The maximum block size (in bytes) MaxBlockSize int `json:"max_block_size"` // The maximum number of collateral inputs allowed in a transaction MaxCollateralInputs int `json:"max_collateral_inputs"` // The maximum number of epochs in the future that a pool retirement // is allowed to be scheduled for MaxEpoch int `json:"max_epoch"` // The maximum number of execution memory allowed to be used in a single transaction MaxTxExMem float32 `json:"max_tx_ex_mem"` // The maximum number of execution steps allowed to be used in a single transaction MaxTxExSteps float32 `json:"max_tx_ex_steps"` // The maximum transaction size (in bytes) MaxTxSize int `json:"max_tx_size"` // The maximum Val size MaxValSize float32 `json:"max_val_size"` // The 'a' parameter to calculate the minimum transaction fee MinFeeA decimal.Decimal `json:"min_fee_a"` // The 'b' parameter to calculate the minimum transaction fee MinFeeB decimal.Decimal `json:"min_fee_b"` // The minimum pool cost MinPoolCost Lovelace `json:"min_pool_cost"` // The minimum value of a UTxO entry MinUtxoValue Lovelace `json:"min_utxo_value"` // The monetary expansion rate MonetaryExpandRate float64 `json:"monetary_expand_rate"` // The nonce value for this epoch Nonce string `json:"nonce"` // The optimal number of stake pools OptimalPoolCount int `json:"optimal_pool_count"` // The amount (in lovelace) required for a deposit to register a stake pool PoolDeposit Lovelace `json:"pool_deposit"` // The per word cost of script memory usage PriceMem Lovelace `json:"price_mem"` // The cost of script execution step usage PriceStep Lovelace `json:"price_step"` // The protocol major version ProtocolMajor int `json:"protocol_major"` // The protocol minor version ProtocolMinor int `json:"protocol_minor"` // The treasury growth rate TreasuryGrowthRate float64 `json:"treasury_growth_rate"` }
EpochParams defines model for epoch_params.
type EpochParamsResponse ¶
type EpochParamsResponse struct { Response Data []EpochParams `json:"data"` }
EpochParamsResponse response of /epoch_params.
type Genesis ¶
type Genesis struct { // Active Slot Co-Efficient (f) - determines the _probability_ of number of // slots in epoch that are expected to have blocks // (so mainnet, this would be: 432000 * 0.05 = 21600 estimated blocks). Activeslotcoeff decimal.Decimal `json:"activeslotcoeff"` // A JSON dump of Alonzo Genesis. Alonzogenesis string `json:"alonzogenesis"` // Number of slots in an epoch. Epochlength decimal.Decimal `json:"epochlength"` // Number of KES key evolutions that will automatically occur before a KES // (hot) key is expired. This parameter is for security of a pool, // in case an operator had access to his hot(online) machine compromised. Maxkesrevolutions decimal.Decimal `json:"maxkesrevolutions"` // Maximum smallest units (lovelaces) supply for the blockchain. Maxlovelacesupply Lovelace `json:"maxlovelacesupply"` // Network ID used at various CLI identification to distinguish between // Mainnet and other networks. Networkid string `json:"networkid"` // Unique network identifier for chain. Networkmagic string `json:"networkmagic"` // A unit (k) used to divide epochs to determine stability window // (used in security checks like ensuring atleast 1 block was // created in 3*k/f period, or to finalize next epoch's nonce // at 4*k/f slots before end of epoch). Securityparam string `json:"securityparam"` // Duration of a single slot (in seconds). Slotlength decimal.Decimal `json:"slotlength"` // Number of slots that represent a single KES period // (a unit used for validation of KES key evolutions). Slotsperkesperiod decimal.Decimal `json:"slotsperkesperiod"` // Timestamp for first block (genesis) on chain. Systemstart Time `json:"systemstart"` // Number of BFT members that need to approve // (via vote) a Protocol Update Proposal. Updatequorum string `json:"updatequorum"` }
Genesis defines model for genesis.
func (*Genesis) AlonzoGenesisMap ¶ added in v1.2.0
type GenesisResponse ¶
GenesisResponse response of /genesis.
type Lovelace ¶
Lovelace defines type for ADA lovelaces. This library uses forked snapshot of github.com/shopspring/decimal package to provide. JSON and XML serialization/deserialization and make it ease to work with calculations and deciimal precisions of ADA lovelace and native assets.
For API of decimal package see https://pkg.go.dev/github.com/shopspring/decimal
func NewLovelace ¶ added in v1.2.0
func NewLovelaceFromString ¶ added in v1.2.0
type NativeScriptListItem ¶ added in v0.4.0
type NativeScriptListItem struct { // Hash of the script creation transaction CreationTxHash TxHash `json:"creation_tx_hash"` // Hash of a script ScriptHash string `json:"script_hash"` Type string `json:"type"` Script struct { Type string `json:"type"` Scripts []map[string]interface{} `json:"scripts"` } `json:"script"` }
NativeScriptListItem item of native script list.
type NativeScriptListResponse ¶ added in v0.4.0
type NativeScriptListResponse struct { Response Data []NativeScriptListItem `json:"response"` }
NativeScriptListResponse represents response from `/native_script_list` endpoint.
type Option ¶
type Option struct {
// contains filtered or unexported fields
}
Option is callback function to apply configurations options of API Client.
func APIVersion ¶
APIVersion returns option to apply change of the baseurl api version https://api.koios.rest/api/<version>/
func CollectRequestsStats ¶
CollectRequestsStats when enabled uses httptrace is used to collect detailed timing information about the request.
func HTTPClient ¶
HTTPClient enables to set htt.Client to be used for requests.
func Host ¶
Host returns option apply func which can be used to change the baseurl hostname https://<host>/api/v0/
func Origin ¶
Origin sets Origin header for outgoing api requests. Recomoended is to set it to URL or FQDN of your project using this library.
In case you appliation goes rouge this could help to keep api.koios.rest service stable and up and running while temporary limiting requests it accepts from your application.
It's not required, but considered as good practice so that Cardano Community can provide HA services for Cardano ecosystem.
func Port ¶
Port returns option apply func which can be used to change the baseurl port https://api.koios.rest:<port>/api/v0/
type PaymentAddr ¶
type PaymentAddr struct { // Bech32 is Cardano payment/base address (bech32 encoded) // for transaction's or change to be returned. Bech32 string `json:"bech32"` // Payment credential. Cred PaymentCredential `json:"cred"` }
PaymentAddr info.
type PaymentCredential ¶
type PaymentCredential string
PaymentCredential type def.
func (PaymentCredential) String ¶ added in v1.0.0
func (v PaymentCredential) String() string
String returns PaymentCredential as string.
type PlutusScriptListItem ¶ added in v0.4.0
type PlutusScriptListItem struct { // Hash of the script creation transaction CreationTxHash TxHash `json:"creation_tx_hash"` // Hash of a script ScriptHash string `json:"script_hash"` }
PlutusScriptListItem item of plutus script list.
type PlutusScriptListResponse ¶ added in v0.4.0
type PlutusScriptListResponse struct { Response Data []PlutusScriptListItem `json:"response"` }
PlutusScriptListResponse represents response from `/plutus_script_list` endpoint.
type PoolBlockInfo ¶
type PoolBlockInfo struct { // Slot is overall slot number (slots from genesis block of chain). AbsSlot uint64 `json:"abs_slot"` // Hash block hash Hash BlockHash `json:"block_hash"` // BlockHeight ogf the block Height uint64 `json:"block_height"` // Time time of the block. Time Time `json:"block_time"` // Epoch number. Epoch EpochNo `json:"epoch_no"` // EpochSlot slot number within epoch. EpochSlot uint64 `json:"epoch_slot"` }
PoolBlockInfo block info.
type PoolBlocksResponse ¶
type PoolBlocksResponse struct { Response Data []PoolBlockInfo `json:"response"` }
PoolBlocksResponse represents response from `/pool_blocks` endpoint.
type PoolDelegator ¶
type PoolDelegator struct { StakeAddress StakeAddress `json:"stake_address"` Amount Lovelace `json:"amount"` Epoch EpochNo `json:"active_epoch_no"` }
PoolDelegator info.
type PoolDelegatorsResponse ¶
type PoolDelegatorsResponse struct { Response Data []PoolDelegator `json:"response"` }
PoolDelegatorsResponse represents response from `/pool_delegators` endpoint.
type PoolHistory ¶ added in v0.4.0
type PoolHistory struct { // Epoch number. Epoch EpochNo `json:"epoch_no"` // ActiveStake Pool active stake. ActiveStake Lovelace `json:"active_stake"` ActiveStakePCT float64 `json:"active_stake_pct"` SaturationPCT float64 `json:"saturation_pct"` BlockCNT int `json:"block_cnt"` DelegatorCNT int `json:"delegator_cnt"` Margin float64 `json:"margin"` FixedCost Lovelace `json:"fixed_cost"` PoolFees Lovelace `json:"pool_fees"` DelegRewards Lovelace `json:"deleg_rewards"` EpochROS float64 `json:"epoch_ros"` }
PoolHistory entry.
type PoolHistoryResponse ¶ added in v0.4.0
type PoolHistoryResponse struct { Response Data []PoolHistory `json:"response"` }
PoolHistoryResponse represents response from `/pool_history` endpoint.
type PoolInfo ¶
type PoolInfo struct { // ActiveEpochNo Block number on chain where transaction was included. ActiveEpoch EpochNo `json:"active_epoch_no"` // ActiveStake Pool active stake. ActiveStake Lovelace `json:"active_stake"` // Total pool blocks on chain BlockCount uint64 `json:"block_count"` // FixedCost Pool fixed cost per epoch FixedCost Lovelace `json:"fixed_cost"` // LiveDelegators Pool live delegator count LiveDelegators uint64 `json:"live_delegators"` // LiveSaturation Pool live saturation (decimal format) LiveSaturation float32 `json:"live_saturation"` // LiveStake Pool live stake LiveStake Lovelace `json:"live_stake"` // LivePledge Pool live pledge LivePledge Lovelace `json:"live_pledge"` // Margin (decimal format) Margin float32 `json:"margin"` // MetaHash Pool metadata hash MetaHash string `json:"meta_hash"` // MetaJson pool meta json MetaJSON PoolMetaJSON `json:"meta_json"` // MetaUrl Pool metadata URL MetaURL string `json:"meta_url"` // OpCert Pool latest operational certificate hash OpCert string `json:"op_cert"` // OpCertCounter Pool latest operational certificate counter value OpCertCounter int `json:"op_cert_counter"` // Owners of the pool Owners []StakeAddress `json:"owners"` // Pledge pledge in lovelace Pledge Lovelace `json:"pledge"` // ID (bech32 format) ID PoolID `json:"pool_id_bech32"` // IDHex Pool ID (Hex format) IDHex string `json:"pool_id_hex"` // Pool status (registered | retiring | retired) Status string `json:"pool_status"` // Announced retiring epoch (nullable) RetiringEpoch *EpochNo `json:"retiring_epoch"` // Pool reward address RewardAddr StakeAddress `json:"reward_addr"` // Pool VRF key hash VrfKeyHash string `json:"vrf_key_hash"` // Relays of the pool Relays []Relay `json:"relays"` }
PoolInfo defines model for pool_info.
type PoolInfoResponse ¶
PoolInfoResponse represents response from `/pool_info` endpoint. when requesting info about single pool.
type PoolInfosResponse ¶
PoolInfosResponse represents response from `/pool_info` endpoint.
type PoolListItem ¶
type PoolListItem struct { // PoolID Bech32 representation of pool ID. PoolID PoolID `json:"pool_id_bech32"` // Ticker of Pool. Ticker *string `json:"ticker,omitempty"` }
PoolListItem defines model for pool list item.
type PoolListResponse ¶
type PoolListResponse struct { Response Data []PoolListItem `json:"response"` }
PoolListResponse represents response from `/pool_list` endpoint.
type PoolMetaJSON ¶
type PoolMetaJSON struct { // Pool description Description *string `json:"description"` // Pool homepage URL Homepage *string `json:"homepage"` // Pool name Name *string `json:"name"` // Pool ticker Ticker *string `json:"ticker"` }
PoolMetaJSON pool meadata json.
type PoolMetadata ¶
type PoolMetadata struct { // ID (bech32 format) PoolID PoolID `json:"pool_id_bech32"` // MetaUrl Pool metadata URL MetaURL string `json:"meta_url"` // MetaHash Pool metadata hash MetaHash string `json:"meta_hash"` // MetaJson pool meta json MetaJSON PoolMetaJSON `json:"meta_json"` }
PoolMetadata metadata list item.
type PoolMetadataResponse ¶
type PoolMetadataResponse struct { Response Data []PoolMetadata `json:"response"` }
PoolMetadataResponse represents response from `/pool_metadata` endpoint.
type PoolRelays ¶
type PoolRelays struct { PoolID PoolID `json:"pool_id_bech32"` // Relays of the pool. Relays []Relay `json:"relays"` }
PoolRelays list item.
type PoolRelaysResponse ¶
type PoolRelaysResponse struct { Response Data []PoolRelays `json:"response"` }
PoolRelaysResponse represents response from `/pool_relays` endpoint.
type PoolUpdateInfo ¶
type PoolUpdateInfo struct { // TxHash update transaction TxHash TxHash `json:"tx_hash"` // Time time of the block. BlockTime Time `json:"block_time"` // ID (bech32 format) ID PoolID `json:"pool_id_bech32"` // IDHex Pool ID (Hex format) IDHex string `json:"pool_id_hex"` // ActiveEpochNo Block number on chain where transaction was included. ActiveEpoch EpochNo `json:"active_epoch_no"` // FixedCost Pool fixed cost per epoch FixedCost Lovelace `json:"fixed_cost"` // Margin (decimal format) Margin float32 `json:"margin"` // MetaHash Pool metadata hash MetaHash string `json:"meta_hash"` // MetaUrl Pool metadata URL MetaURL string `json:"meta_url"` // Owners of the pool. Owners []StakeAddress `json:"owners"` // Pledge pledge in lovelace. Pledge Lovelace `json:"pledge"` // Pool status (registered | retiring | retired). Status string `json:"pool_status"` // Announced retiring epoch (nullable). RetiringEpoch *EpochNo `json:"retiring_epoch"` // Pool reward address. RewardAddr StakeAddress `json:"reward_addr"` // Pool VRF key hash. VrfKeyHash string `json:"vrf_key_hash"` // Relays of the pool. Relays []PoolRelays `json:"relays"` }
PoolUpdateInfo response item from `/pool_updates`.
type PoolUpdatesResponse ¶
type PoolUpdatesResponse struct { Response Data []PoolUpdateInfo `json:"response"` }
PoolUpdatesResponse represents response from `/pool_updates` endpoint.
type Relay ¶
type Relay struct { // DNS name of the relay (nullable) DNS *string `json:"dns"` // IPv4 address of the relay (nullable) Ipv4 *string `json:"ipv4,"` // IPv6 address of the relay (nullable) Ipv6 *string `json:"ipv6,"` // Port number of the relay (nullable) Port *uint16 `json:"port"` // DNS service name of the relay (nullable) Srv *string `json:"srv"` }
Relay defines model for pool relay.
type RequestOptions ¶ added in v1.0.0
type RequestOptions struct {
// contains filtered or unexported fields
}
RequestOptions for the request.
func (*RequestOptions) Clone ¶ added in v1.0.0
func (ro *RequestOptions) Clone() (*RequestOptions, error)
Clone the request options for usaing it with other request.
func (*RequestOptions) HeadersAdd ¶ added in v1.0.0
func (ro *RequestOptions) HeadersAdd(key, val string)
HeadersAdd adds the value to request headers by key. It appends to any existing values associated with key.
func (*RequestOptions) HeadersApply ¶ added in v1.0.0
func (ro *RequestOptions) HeadersApply(h http.Header)
HeadersApply sets all values from provided header.
func (*RequestOptions) HeadersSet ¶ added in v1.0.0
func (ro *RequestOptions) HeadersSet(key, val string)
HeadersSet sets the key to value in request headers. It replaces any existing values.
func (*RequestOptions) Page ¶ added in v1.0.0
func (ro *RequestOptions) Page(page uint)
Page modifies Range header starting point.
func (*RequestOptions) PageSize ¶ added in v1.0.0
func (ro *RequestOptions) PageSize(size uint)
PageSize for request sets size of Range header.
func (*RequestOptions) QueryAdd ¶ added in v1.0.0
func (ro *RequestOptions) QueryAdd(key, val string)
QueryAdd adds the value to request query by key. It appends to any existing values associated with key.
func (*RequestOptions) QueryApply ¶ added in v1.0.0
func (ro *RequestOptions) QueryApply(h url.Values)
QueryApply sets all values from provided query.
func (*RequestOptions) QuerySet ¶ added in v1.0.0
func (ro *RequestOptions) QuerySet(key, val string)
QuerySet sets the key to value in request query. It replaces any existing values.
type RequestStats ¶
type RequestStats struct { // ReqStartedAt time when request was started. ReqStartedAt time.Time `json:"req_started_at,omitempty"` // DNSLookupDur DNS lookup duration. DNSLookupDur time.Duration `json:"req_dns_lookup_dur,omitempty"` // TLSHSDur time it took to perform TLS handshake. TLSHSDur time.Duration `json:"tls_hs_dur,omitempty"` // ESTCXNDur time it took to establish connection. ESTCXNDur time.Duration `json:"est_cxn_dur,omitempty"` // TTFB time it took to get the first byte of the response // after connextion was established. TTFB time.Duration `json:"ttfb,omitempty"` // ReqDur total time it took to peform the request. ReqDur time.Duration `json:"req_dur,omitempty"` // ReqDurStr String representation of ReqDur. ReqDurStr string `json:"req_dur_str,omitempty"` }
RequestStats represent collected request stats if collecting request stats is enabled.
type Response ¶
type Response struct { // RequestURL is full request url. RequestURL string `json:"request_url"` // RequestMethod is HTTP method used for request. RequestMethod string `json:"request_method"` // StatusCode of the HTTP response. StatusCode int `json:"status_code"` // Status of the HTTP response header if present. Status string `json:"status"` // Date response header. Date string `json:"date,omitempty"` // ContentLocation response header if present. ContentLocation string `json:"content_location,omitempty"` // ContentRange response header if present. ContentRange string `json:"content_range,omitempty"` // Error response body if present. Error *ResponseError `json:"error,omitempty"` // Stats of the request if stats are enabled. Stats *RequestStats `json:"stats,omitempty"` }
Response wraps API responses.
type ResponseError ¶
type ResponseError struct { // Hint of the error reported by server. Hint string `json:"hint,omitempty"` // Details of the error reported by server. Details string `json:"details,omitempty"` // Code is error code reported by server. Code string `json:"code,omitempty"` // Message is error message reported by server. Message string `json:"message,omitempty"` }
ResponseError represents api error messages.
type ScriptHash ¶
type ScriptHash string
ScriptHash defines type for _script_hash.
func (ScriptHash) String ¶ added in v1.0.0
func (v ScriptHash) String() string
String returns ScriptHash as string.
type ScriptRedeemer ¶
type ScriptRedeemer struct { // The Hash of the Plutus Data DatumHash string `json:"datum_hash"` // The actual data in json format DatumValue map[string]interface{} `json:"datum_value"` // The budget in fees to run a script - the fees depend on the // ExUnits and the current prices. Fee Lovelace `json:"fee,omitempty"` // What kind pf validation this redeemer is used for, // it can be one of 'spend', 'mint', 'cert', 'reward'. Purpose string `json:"purpose"` // TxHash of Transaction containing the redeemer. TxHash TxHash `json:"tx_hash"` // TxIndex The index of the redeemer pointer in the transaction. TxIndex int `json:"tx_index"` // The budget in Memory to run a script. UnitMem int `json:"unit_mem"` // The budget in Cpu steps to run a script. UnitSteps int `json:"unit_steps"` }
ScriptRedeemer model.
type ScriptRedeemers ¶
type ScriptRedeemers struct { // Hash of Transaction for which details are being shown ScriptHash ScriptHash `json:"script_hash"` // Redeemers list Redeemers []ScriptRedeemer `json:"redeemers"` }
ScriptRedeemers defines model for script_redeemers.
type ScriptRedeemersResponse ¶
type ScriptRedeemersResponse struct { Response Data *ScriptRedeemers `json:"response"` }
ScriptRedeemersResponse represents response from `/script_redeemers` endpoint.
type StakeAddress ¶
type StakeAddress string
StakeAddress is Cardano staking address (reward account, bech32 encoded).
func (StakeAddress) String ¶ added in v1.0.0
func (v StakeAddress) String() string
String returns StakeAddress as string.
type SubmitSignedTxResponse ¶
SubmitSignedTxResponse represents response from `/submittx` endpoint.
type TX ¶ added in v1.1.0
type TX struct { /// TxHash is hash of transaction. TxHash TxHash `json:"tx_hash"` // BlockHeight is block number on chain where transaction was included. BlockHeight int `json:"block_height"` // BlockTime is time of the block. BlockTime Time `json:"block_time"` Epoch EpochNo `json:"epoch_no,omitempty"` }
type Time ¶ added in v1.2.0
Time extends time to fix time format anomalies turing Unmarshal and Marshal.
func (*Time) UnmarshalJSON ¶ added in v1.2.0
type Tip ¶
type Tip struct { // Absolute Slot number (slots not divided into epochs) AbsSlot int `json:"abs_slot"` // Block Height number on chain BlockNo int `json:"block_no"` // Timestamp for when the block was created BlockTime Time `json:"block_time"` // EpochNo number EpochNo int `json:"epoch_no"` // Slot number within Epoch EpochSlot int `json:"epoch_slot"` // Block Hash in hex Hash string `json:"hash"` }
Tip defines model for tip.
type TipResponse ¶
TipResponse response of /tip.
type TokenRegistryMetadata ¶
type TokenRegistryMetadata struct { Decimals int `json:"decimals"` Description string `json:"description"` // A PNG image file as a byte string Logo string `json:"logo"` Name string `json:"name"` Ticker string `json:"ticker"` URL string `json:"url"` }
TokenRegistryMetadata metadata registered on the Cardano Token Registry.
type Totals ¶
type Totals struct { // Circulating UTxOs for given epoch (in lovelaces). Circulation Lovelace `json:"circulation"` // Epoch number. Epoch EpochNo `json:"epoch_no"` // Total Reserves yet to be unlocked on chain. Reserves Lovelace `json:"reserves"` // Rewards accumulated as of given epoch (in lovelaces). Reward Lovelace `json:"reward"` // Total Active Supply (sum of treasury funds, rewards, // UTxOs, deposits and fees) for given epoch (in lovelaces). Supply Lovelace `json:"supply"` // Funds in treasury for given epoch (in lovelaces). Treasury Lovelace `json:"treasury"` }
Totals defines model for totals.
type TotalsResponse ¶
TotalsResponse represents response from `/totals` endpoint.
type TxBodyJSON ¶
type TxBodyJSON struct { Type string `json:"type"` Description string `json:"description"` CborHex string `json:"cborHex"` }
TxBodyJSON used to Unmarshal built transactions.
type TxInfo ¶
type TxInfo struct { // TxHash is hash of transaction. TxHash TxHash `json:"tx_hash"` // BlockHash is hash of the block in which transaction was included. BlockHash BlockHash `json:"block_hash"` // BlockHeight is block number on chain where transaction was included. BlockHeight int `json:"block_height"` // Epoch number. Epoch EpochNo `json:"epoch"` // EpochSlot is slot number within epoch. EpochSlot int `json:"epoch_slot"` // AbsoluteSlot is overall slot number (slots from genesis block of chain). AbsoluteSlot int `json:"absolute_slot"` // TxTimestamp is timestamp when block containing transaction was created. TxTimestamp Time `json:"tx_timestamp"` // TxBlockIndex is index of transaction within block. TxBlockIndex int `json:"tx_block_index"` // TxSize is transaction size in bytes. TxSize int `json:"tx_size"` // TotalOutput is total sum of all transaction outputs (in lovelaces). TotalOutput Lovelace `json:"total_output"` // Fee is total transaction fee (in lovelaces). Fee Lovelace `json:"fee"` // Deposit is total deposits included in transaction (for example, // if it is registering a pool/key). Deposit Lovelace `json:"deposit"` // InvalidAfter is slot number after which transaction cannot be validated. InvalidAfter int `json:"invalid_after,omitempty"` // InvalidBefore is slot number before which transaction cannot be validated. // (if supplied, else 0) InvalidBefore int `json:"invalid_before,omitempty"` // Inputs An array with details about inputs used in a transaction Inputs []TxInput `json:"inputs"` // Outputs An array with details about outputs from the transaction. Outputs []TxOutput `json:"outputs,omitempty"` // AssetsMinted An array of minted assets with-in a transaction (if any). AssetsMinted []Asset `json:"assets_minted"` // Collaterals An array of collateral inputs needed when dealing with smart contracts. Collaterals []TxInput `json:"collaterals"` // Metadata present with-in a transaction (if any) Metadata []TxInfoMetadata `json:"metadata"` // Array of withdrawals with-in a transaction (if any) Withdrawals []TxsWithdrawal `json:"withdrawals"` // Certificates present with-in a transaction (if any) Certificates []Certificate `json:"certificates"` }
TxInfo transaction info.
type TxInfoMetadata ¶
type TxInfoMetadata struct { // JSON containing details about metadata within transaction. JSON map[string]interface{} `json:"json"` // Key is metadata (index). Key string `json:"key"` }
TxInfoMetadata metadata in transaction info.
type TxInfoResponse ¶
TxInfoResponse represents response from `/tx_info` endpoint. when requesting info about single transaction.
type TxInput ¶
type TxInput struct { // An array of assets contained on input UTxO. AssetList []Asset `json:"asset_list"` // input UTxO. PaymentAddr PaymentAddr `json:"payment_addr"` // StakeAddress for transaction's input UTxO. StakeAddress StakeAddress `json:"stake_addr,omitempty"` // Hash of Transaction for input UTxO. TxHash TxHash `json:"tx_hash"` // Index of input UTxO on the mentioned address used for input. TxIndex int `json:"tx_index"` // Balance on the selected input transaction. Value Lovelace `json:"value"` }
TxInput an transaxtion input.
type TxMetaLabelsResponse ¶
type TxMetaLabelsResponse struct { Response Data []TxMetalabel `json:"data"` }
TxMetaLabelsResponse represents response from `/tx_metalabels` endpoint.
type TxMetadata ¶
type TxMetadata struct { // TxHash is hash of transaction. TxHash TxHash `json:"tx_hash"` // Metadata present with-in a transaction (if any) Metadata map[string]interface{} `json:"metadata"` }
TxMetadata transaction metadata lookup res for `/tx_metadata` endpoint.
type TxMetadataResponse ¶
type TxMetadataResponse struct { Response Data *TxMetadata `json:"data"` }
TxMetadataResponse represents response from `/tx_metadata` endpoint.
type TxMetalabel ¶
type TxMetalabel struct { // A distinct known metalabel Metalabel string `json:"metalabel"` }
TxMetalabel defines model for tx_metalabels.
type TxOutput ¶
type TxOutput struct { // An array of assets to be included in output UTxO. AssetList []Asset `json:"asset_list"` // where funds were sent or change to be returned. PaymentAddr PaymentAddr `json:"payment_addr"` // StakeAddress for transaction's output UTxO. StakeAddress StakeAddress `json:"stake_addr,omitempty"` // Hash of this transaction. TxHash TxHash `json:"tx_hash"` // Index of output UTxO. TxIndex int `json:"tx_index"` // Total sum on the output address. Value Lovelace `json:"value"` }
TxOutput an transaxtion output.
type TxStatus ¶
type TxStatus struct { TxHash TxHash `json:"tx_hash"` Confirmations uint64 `json:"num_confirmations"` }
TxStatus is tx_status enpoint response.
type TxStatusResponse ¶
TxStatusResponse represents response from `/tx_status` endpoint.
type TxUTxOsResponse ¶
TxUTxOsResponse represents response from `/tx_utxos` endpoint.
type TxsInfosResponse ¶
TxsInfosResponse represents response from `/tx_info` endpoint.
type TxsMetadataResponse ¶
type TxsMetadataResponse struct { Response Data []TxMetadata `json:"data"` }
TxsMetadataResponse represents response from `/tx_metadata` endpoint.
type TxsStatusesResponse ¶
TxsStatusesResponse represents response from `/tx_status` endpoint.
type TxsUTxOsResponse ¶ added in v1.1.0
TxsUTxOsResponse represents response from `/tx_utxos` endpoint.
type TxsWithdrawal ¶
type TxsWithdrawal struct { // Amount is withdrawal amount in lovelaces. Amount Lovelace `json:"amount,omitempty"` // StakeAddress fo withdrawal. StakeAddress StakeAddress `json:"stake_addr,omitempty"` }
TxsWithdrawal withdrawal record in transaction.
type UTxO ¶
type UTxO struct { /// TxHash is hash of transaction. TxHash TxHash `json:"tx_hash"` // Inputs An array with details about inputs used in a transaction. Inputs []TxInput `json:"inputs"` // Outputs An array with details about outputs from the transaction. Outputs []TxOutput `json:"outputs"` }
UTxO model holds inputs and outputs for given UTxO.