api

package
v2.6.0 Latest Latest
Warning

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

Go to latest
Published: May 7, 2022 License: MIT Imports: 8 Imported by: 3

Documentation

Overview

Package api contains helper methods for handling events, subscriptions, and more.

Index

Examples

Constants

View Source
const (
	// DAOAddress is DAO's address for charging a 10% commission on all rewards
	DAOAddress = "Mx7f0fc21d932f38ca9444f61703174569066cfa50"

	// DevelopersAddress is developers' address for charging a 10% commission on all rewards
	DevelopersAddress = "Mx688568d9d70c57e71d0b9de6480afb0d317f885c"
)
View Source
const (
	// RoleValidator is validator role
	RoleValidator = "Validator"

	// RoleDelegator is delegator role
	RoleDelegator = "Delegator"

	// RoleDAO is DAO role
	RoleDAO = "DAO"

	// RoleDevelopers is developers role
	RoleDevelopers = "Developers"
)

Variables

This section is empty.

Functions

func ConvertBase64ToTx added in v2.4.0

func ConvertBase64ToTx(tx string) (transaction.Signed, error)

func QueryBlockHeight added in v2.4.0

func QueryBlockHeight(height uint64) string

func QueryCoinID added in v2.4.0

func QueryCoinID(coinID uint64) string

func QueryCoinSymbol added in v2.4.0

func QueryCoinSymbol(symbol string) string

func QueryCommissionCoin added in v2.4.0

func QueryCommissionCoin(coinID uint64) string

func QueryCommissionConversion added in v2.4.0

func QueryCommissionConversion(isPool bool) string

func QueryEvent added in v2.4.0

func QueryEvent(event SubscribeEventType) string

func QueryFail added in v2.4.0

func QueryFail() string

func QueryFrom added in v2.4.0

func QueryFrom(address string) string

func QueryHash added in v2.4.0

func QueryHash(hash string) string

func QueryPublicKey added in v2.4.0

func QueryPublicKey(publicKey string) string

func QueryTag added in v2.4.0

func QueryTag(tag, param string) string

func QueryTo added in v2.4.0

func QueryTo(address string) string

func QueryTxHeight added in v2.4.0

func QueryTxHeight(height uint64) string

func QueryType added in v2.4.0

func QueryType(t byte) string

func SubscribeNewTxFindTag added in v2.2.0

func SubscribeNewTxFindTag(message, tag string) (string, error)

func SubscribeNewTxToTx added in v2.4.0

func SubscribeNewTxToTx(message string) (transaction.Signed, error)

Types

type Event

type Event interface {
	Type() EventType
}

Event interface

func ConvertToEvent

func ConvertToEvent(typeName EventType, value []byte) (Event, error)

ConvertToEvent returns interface of Event

Example
package main

import (
	"fmt"

	"github.com/MinterTeam/minter-go-sdk/v2/api"
)

func main() {
	eventValueJSON := `{
        "address": "Mx7f0fc21d932f38ca9444f61703174569066cfa50",
        "amount": "3962700000000000000000",
        "role": "Delegator",
		"for_coin": "1",
        "validator_pub_key": "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5"
      }`
	event, _ := api.ConvertToEvent("minter/RewardEvent", []byte(eventValueJSON))
	if event.Type() != api.TypeRewardEvent {
		return
	}
	fmt.Printf("%#v", event.(*api.RewardEvent))

}
Output:

&api.RewardEvent{Role:"Delegator", Address:"Mx7f0fc21d932f38ca9444f61703174569066cfa50", Amount:"3962700000000000000000", ValidatorPubKey:"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", ForCoin:"1"}

type EventType added in v2.1.0

type EventType string

EventType is string name of events

const (
	TypeRewardEvent             EventType = "minter/RewardEvent"
	TypeSlashEvent              EventType = "minter/SlashEvent"
	TypeJailEvent               EventType = "minter/JailEvent"
	TypeUnbondEvent             EventType = "minter/UnbondEvent"
	TypeStakeKickEvent          EventType = "minter/StakeKickEvent"
	TypeOrderExpiredEvent       EventType = "minter/OrderExpiredEvent"
	TypeUpdateNetworkEvent      EventType = "minter/UpdateNetworkEvent"
	TypeUpdateCommissionsEvent  EventType = "minter/UpdateCommissionsEvent"
	TypeRemoveCandidateEvent    EventType = "minter/RemoveCandidateEvent"
	TypeStakeMoveEvent          EventType = "minter/StakeMoveEvent"
	TypeUpdatedBlockRewardEvent EventType = "minter/UpdatedBlockRewardEvent"
	TypeUnlockEvent             EventType = "minter/UnlockEvent"
)

Event type names

type JailEvent added in v2.2.0

type JailEvent struct {
	ValidatorPubKey string `json:"validator_pub_key"`
	JailedUntil     string `json:"jailed_until"`
}

func (*JailEvent) GetPublicKey added in v2.4.0

func (e *JailEvent) GetPublicKey() string

func (*JailEvent) GetValidatorPublicKey added in v2.2.0

func (e *JailEvent) GetValidatorPublicKey() string

GetValidatorPublicKey return validator public key Deprecated: Use GetPublicKey

func (*JailEvent) Type added in v2.2.0

func (e *JailEvent) Type() EventType

type OrderExpiredEvent added in v2.4.0

type OrderExpiredEvent struct {
	ID      string `json:"id"`
	Address string `json:"address"`
	Coin    string `json:"coin"`
	Amount  string `json:"amount"`
}

func (*OrderExpiredEvent) GetAddress added in v2.4.0

func (e *OrderExpiredEvent) GetAddress() string

GetAddress return owner address

func (*OrderExpiredEvent) Type added in v2.4.0

func (e *OrderExpiredEvent) Type() EventType

type RemoveCandidateEvent added in v2.4.0

type RemoveCandidateEvent struct {
	CandidatePubKey string `json:"candidate_pub_key"`
}

func (*RemoveCandidateEvent) GetPublicKey added in v2.4.0

func (e *RemoveCandidateEvent) GetPublicKey() string

func (*RemoveCandidateEvent) Type added in v2.4.0

func (e *RemoveCandidateEvent) Type() EventType

type RewardEvent

type RewardEvent struct {
	Role            string `json:"role"`
	Address         string `json:"address"`
	Amount          string `json:"amount"`
	ValidatorPubKey string `json:"validator_pub_key"`
	ForCoin         string `json:"for_coin"`
}

RewardEvent is the payment of rewards

func (*RewardEvent) GetAddress

func (e *RewardEvent) GetAddress() string

GetAddress return owner address

func (*RewardEvent) GetPublicKey added in v2.4.0

func (e *RewardEvent) GetPublicKey() string

GetPublicKey return validator public key

func (*RewardEvent) GetValidatorPublicKey

func (e *RewardEvent) GetValidatorPublicKey() string

GetValidatorPublicKey return validator public key Deprecated: Use GetPublicKey

func (*RewardEvent) Type added in v2.2.0

func (e *RewardEvent) Type() EventType

type SlashEvent

type SlashEvent struct {
	Address         string `json:"address"`
	Amount          string `json:"amount"`
	Coin            string `json:"coin"`
	ValidatorPubKey string `json:"validator_pub_key"`
}

SlashEvent is the payment of the validator's penalty by this stake

func (*SlashEvent) GetAddress

func (e *SlashEvent) GetAddress() string

GetAddress return owner address

func (*SlashEvent) GetPublicKey added in v2.4.0

func (e *SlashEvent) GetPublicKey() string

GetPublicKey return validator public key

func (*SlashEvent) GetValidatorPublicKey

func (e *SlashEvent) GetValidatorPublicKey() string

GetValidatorPublicKey return validator public key Deprecated: Use GetPublicKey

func (*SlashEvent) Type added in v2.2.0

func (e *SlashEvent) Type() EventType

type StakeEvent added in v2.2.0

type StakeEvent interface {
	// GetAddress return owner address
	GetAddress() string
	ValidatorEvent
}

StakeEvent interface

type StakeKickEvent

type StakeKickEvent struct {
	Address         string `json:"address"`
	Amount          string `json:"amount"`
	Coin            string `json:"coin"`
	ValidatorPubKey string `json:"validator_pub_key"`
}

StakeKickEvent is the knocking out a stake to the waiting list

func (*StakeKickEvent) GetAddress

func (e *StakeKickEvent) GetAddress() string

GetAddress return owner address

func (*StakeKickEvent) GetPublicKey added in v2.4.0

func (e *StakeKickEvent) GetPublicKey() string

GetPublicKey return validator public key

func (*StakeKickEvent) GetValidatorPublicKey

func (e *StakeKickEvent) GetValidatorPublicKey() string

GetValidatorPublicKey return validator public key Deprecated: Use GetPublicKey

func (*StakeKickEvent) Type added in v2.2.0

func (e *StakeKickEvent) Type() EventType

type StakeMoveEvent added in v2.2.0

type StakeMoveEvent struct {
	Address           string `json:"address"`
	Amount            string `json:"amount"`
	Coin              string `json:"coin"`
	CandidatePubKey   string `json:"candidate_pub_key"`
	ToCandidatePubKey string `json:"to_candidate_pub_key"`
}

func (*StakeMoveEvent) GetPublicKey added in v2.5.0

func (e *StakeMoveEvent) GetPublicKey() string

func (*StakeMoveEvent) Type added in v2.2.0

func (e *StakeMoveEvent) Type() EventType

type SubscribeEventType added in v2.4.0

type SubscribeEventType string
const (
	EventNewBlock            SubscribeEventType = "NewBlock"
	EventNewBlockHeader      SubscribeEventType = "NewBlockHeader"
	EventNewEvidence         SubscribeEventType = "NewEvidence"
	EventTx                  SubscribeEventType = "Tx"
	EventValidatorSetUpdates SubscribeEventType = "ValidatorSetUpdates"
)

Reserved event types. Block level events for mass consumption by users. These events are triggered from the state package, after a block has been committed. These are also used by the tx indexer for async indexing.

type SubscribeNewBlockResult added in v2.2.0

type SubscribeNewBlockResult struct {
	Query string `json:"query"`
	Data  struct {
		Block struct {
			Data struct {
				Txs []string `json:"txs"`
			} `json:"data"`
			Evidence struct {
				Evidence []interface{} `json:"evidence"`
			} `json:"evidence"`
			Header struct {
				AppHash       string `json:"app_hash"`
				ChainID       string `json:"chain_id"`
				ConsensusHash string `json:"consensus_hash"`
				DataHash      string `json:"data_hash"`
				EvidenceHash  string `json:"evidence_hash"`
				Height        uint64 `json:"height"`
				LastBlockID   struct {
					Hash  string `json:"hash"`
					Parts struct {
						Hash  string `json:"hash"`
						Total uint64 `json:"total"`
					} `json:"parts"`
				} `json:"last_block_id"`
				LastCommitHash     string    `json:"last_commit_hash"`
				LastResultsHash    string    `json:"last_results_hash"`
				NextValidatorsHash string    `json:"next_validators_hash"`
				ProposerAddress    string    `json:"proposer_address"`
				Time               time.Time `json:"time"`
				ValidatorsHash     string    `json:"validators_hash"`
				Version            struct {
					Block uint64 `json:"block"`
				} `json:"version"`
			} `json:"header"`
			LastCommit struct {
				BlockID struct {
					Hash  string `json:"hash"`
					Parts struct {
						Hash  string `json:"hash"`
						Total uint64 `json:"total"`
					} `json:"parts"`
				} `json:"block_id"`
				Height     uint64 `json:"height"`
				Round      uint64 `json:"round"`
				Signatures []struct {
					BlockIDFlag      uint64    `json:"block_id_flag"`
					Signature        string    `json:"signature"`
					Timestamp        time.Time `json:"timestamp"`
					ValidatorAddress string    `json:"validator_address"`
				} `json:"signatures"`
			} `json:"last_commit"`
		} `json:"block"`
		ResultBeginBlock struct {
		} `json:"result_begin_block"`
		ResultEndBlock struct {
			ConsensusParamUpdates struct {
				Block struct {
					MaxBytes uint64 `json:"max_bytes"`
					MaxGas   uint64 `json:"max_gas"`
				} `json:"block"`
			} `json:"consensus_param_updates"`
			ValidatorUpdates interface{} `json:"validator_updates"`
		} `json:"result_end_block"`
	} `json:"data"`
	Events []struct {
		Key    string   `json:"key"`
		Events []string `json:"events"`
	} `json:"events"`
}

func SubscribeNewBlockParse added in v2.2.0

func SubscribeNewBlockParse(message string) (*SubscribeNewBlockResult, error)

type SubscribeNewTxResult added in v2.2.0

type SubscribeNewTxResult struct {
	Query string `json:"query"`
	Data  struct {
		Height uint64 `json:"height"`
		Result struct {
			Events []struct {
				Attributes []struct {
					Index bool   `json:"index"`
					Key   string `json:"key"`
					Value string `json:"value"`
				} `json:"attributes"`
				Type string `json:"type"`
			} `json:"events"`
			GasUsed   uint64 `json:"gas_used"`
			GasWanted uint64 `json:"gas_wanted"`
		} `json:"result"`
		Tx string `json:"tx"`
	} `json:"data"`
	Events []struct {
		Key    string   `json:"key"`
		Events []string `json:"events"`
	} `json:"events"`
}

func SubscribeNewTxParse added in v2.2.0

func SubscribeNewTxParse(message string) (*SubscribeNewTxResult, error)

type UnbondEvent

type UnbondEvent struct {
	Address         string `json:"address"`
	Amount          string `json:"amount"`
	Coin            string `json:"coin"`
	ValidatorPubKey string `json:"validator_pub_key"`
}

UnbondEvent is the unbinding a stake from a validator

func (*UnbondEvent) GetAddress

func (e *UnbondEvent) GetAddress() string

GetAddress return owner address

func (*UnbondEvent) GetPublicKey added in v2.4.0

func (e *UnbondEvent) GetPublicKey() string

GetPublicKey return validator public key

func (*UnbondEvent) GetValidatorPublicKey

func (e *UnbondEvent) GetValidatorPublicKey() string

GetValidatorPublicKey return validator public key Deprecated: Use GetPublicKey

func (*UnbondEvent) Type added in v2.2.0

func (e *UnbondEvent) Type() EventType

type UnlockEvent added in v2.5.0

type UnlockEvent struct {
	Address string `json:"address"`
	Amount  string `json:"amount"`
	Coin    string `json:"coin"`
}

UnlockEvent is ...

func (*UnlockEvent) GetAddress added in v2.5.0

func (e *UnlockEvent) GetAddress() string

GetAddress return owner address

func (*UnlockEvent) Type added in v2.5.0

func (e *UnlockEvent) Type() EventType

type UpdateCommissionsEvent added in v2.2.0

type UpdateCommissionsEvent struct {
	Coin                    string `json:"coin"`
	PayloadByte             string `json:"payload_byte"`
	Send                    string `json:"send"`
	BuyBancor               string `json:"buy_bancor"`
	SellBancor              string `json:"sell_bancor"`
	SellAllBancor           string `json:"sell_all_bancor"`
	BuyPoolBase             string `json:"buy_pool_base"`
	BuyPoolDelta            string `json:"buy_pool_delta"`
	SellPoolBase            string `json:"sell_pool_base"`
	SellPoolDelta           string `json:"sell_pool_delta"`
	SellAllPoolBase         string `json:"sell_all_pool_base"`
	SellAllPoolDelta        string `json:"sell_all_pool_delta"`
	CreateTicker3           string `json:"create_ticker3"`
	CreateTicker4           string `json:"create_ticker4"`
	CreateTicker5           string `json:"create_ticker5"`
	CreateTicker6           string `json:"create_ticker6"`
	CreateTicker7_10        string `json:"create_ticker7_10"`
	CreateCoin              string `json:"create_coin"`
	CreateToken             string `json:"create_token"`
	RecreateCoin            string `json:"recreate_coin"`
	RecreateToken           string `json:"recreate_token"`
	DeclareCandidacy        string `json:"declare_candidacy"`
	Delegate                string `json:"delegate"`
	Unbond                  string `json:"unbond"`
	RedeemCheck             string `json:"redeem_check"`
	SetCandidateOn          string `json:"set_candidate_on"`
	SetCandidateOff         string `json:"set_candidate_off"`
	CreateMultisig          string `json:"create_multisig"`
	MultisendBase           string `json:"multisend_base"`
	MultisendDelta          string `json:"multisend_delta"`
	EditCandidate           string `json:"edit_candidate"`
	SetHaltBlock            string `json:"set_halt_block"`
	EditTickerOwner         string `json:"edit_ticker_owner"`
	EditMultisig            string `json:"edit_multisig"`
	PriceVote               string `json:"price_vote"`
	EditCandidatePublicKey  string `json:"edit_candidate_public_key"`
	CreateSwapPool          string `json:"create_swap_pool"`
	AddLiquidity            string `json:"add_liquidity"`
	RemoveLiquidity         string `json:"remove_liquidity"`
	EditCandidateCommission string `json:"edit_candidate_commission"`
	MintToken               string `json:"mint_token"`
	BurnToken               string `json:"burn_token"`
	VoteCommission          string `json:"vote_commission"`
	VoteUpdate              string `json:"vote_update"`
	FailedTx                string `json:"failed_tx,omitempty"`
	AddLimitOrder           string `json:"add_limit_order,omitempty"`
	RemoveLimitOrder        string `json:"remove_limit_order,omitempty"`
	MoveStake               string `json:"move_stake,omitempty"`
	LockStake               string `json:"lock_stake,omitempty"`
	Lock                    string `json:"lock,omitempty"`
}

func (*UpdateCommissionsEvent) Type added in v2.2.0

type UpdateNetworkEvent added in v2.2.0

type UpdateNetworkEvent struct {
	Version string `json:"version"`
}

func (*UpdateNetworkEvent) Type added in v2.2.0

func (e *UpdateNetworkEvent) Type() EventType

type UpdatedBlockRewardEvent added in v2.5.0

type UpdatedBlockRewardEvent struct {
	Value                   string `json:"value"`
	ValueLockedStakeRewards string `json:"value_locked_stake_rewards"`
}

func (*UpdatedBlockRewardEvent) Type added in v2.5.0

type ValidatorEvent added in v2.2.0

type ValidatorEvent interface {
	// GetPublicKey return validator public key
	GetPublicKey() string
}

ValidatorEvent interface

Directories

Path Synopsis
Package grpc_client package implements the gRPC methods usage interface.
Package grpc_client package implements the gRPC methods usage interface.
Package http_client package implements the API v2 methods usage interface.
Package http_client package implements the API v2 methods usage interface.

Jump to

Keyboard shortcuts

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