api

package
v4.8.11+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2020 License: AGPL-3.0 Imports: 55 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SUCCESS indicates the rpc calling is successful.
	SUCCESS = "success"
	// FAIL indicated the rpc calling is failed.
	FAIL = "fail"
)

Variables

View Source
var (
	ErrCompileContract = errors.New("compile contract failed")
	ErrInstContract    = errors.New("instantiate contract failed")
)

pre-define contract error types

View Source
var (
	ErrBadActionType         = errors.New("bad action type")
	ErrBadAction             = errors.New("bad action object")
	ErrBadActionConstruction = errors.New("bad action construction")
)

action error

View Source
var (
	// ErrDefault is default Bytom API Error
	ErrDefault = errors.New("Bytom API Error")
)

Functions

func AuthHandler

func AuthHandler(handler http.Handler, accessTokens *accesstoken.CredentialStore, authDisable bool) http.Handler

AuthHandler access token auth Handler

func RedirectHandler

func RedirectHandler(next http.Handler) http.Handler

RedirectHandler redirect to dashboard handler

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API is the scheduling center for server

func NewAPI

func NewAPI(sync NetSync, wallet *wallet.Wallet, blockProposer *blockproposer.BlockProposer, chain *protocol.Chain, config *cfg.Config, token *accesstoken.CredentialStore, dispatcher *event.Dispatcher, notificationMgr *websocket.WSNotificationManager) *API

NewAPI create and initialize the API

func (*API) GetNodeInfo

func (a *API) GetNodeInfo() *NetInfo

GetNodeInfo return net information

func (*API) IsMining

func (a *API) IsMining() bool

IsProposing return mining status

func (*API) ServeHTTP

func (a *API) ServeHTTP(rw http.ResponseWriter, req *http.Request)

func (*API) StartServer

func (a *API) StartServer(address string)

StartServer start the server

type AccountFilter added in v1.0.2

type AccountFilter struct {
	AccountID    string `json:"account_id"`
	AccountAlias string `json:"account_alias"`
}

type AccountInfo

type AccountInfo struct {
	Info string `json:"account_info"`
}

AccountInfo is request struct for deleteAccount

type AccountPubkey

type AccountPubkey struct {
	RootXPub    chainkd.XPub `json:"root_xpub"`
	PubKeyInfos []PubKeyInfo `json:"pubkey_infos"`
}

AccountPubkey is detail of account pubkey info

type AddressReq added in v1.0.2

type AddressReq struct {
	AccountID    string `json:"account_id"`
	AccountAlias string `json:"account_alias"`
	From         uint   `json:"from"`
	Count        uint   `json:"count"`
}

type AddressResp added in v1.0.2

type AddressResp struct {
	AccountAlias   string `json:"account_alias"`
	AccountID      string `json:"account_id"`
	Address        string `json:"address"`
	ControlProgram string `json:"control_program"`
	Change         bool   `json:"change"`
	KeyIndex       uint64 `json:"key_index"`
}

type BlockReq

type BlockReq struct {
	BlockHeight uint64             `json:"block_height"`
	BlockHash   chainjson.HexBytes `json:"block_hash"`
}

BlockReq is used to handle getBlock req

type BlockTx

type BlockTx struct {
	ID         bc.Hash                  `json:"id"`
	Version    uint64                   `json:"version"`
	Size       uint64                   `json:"size"`
	TimeRange  uint64                   `json:"time_range"`
	Inputs     []*query.AnnotatedInput  `json:"inputs"`
	Outputs    []*query.AnnotatedOutput `json:"outputs"`
	StatusFail bool                     `json:"status_fail"`
	MuxID      bc.Hash                  `json:"mux_id"`
}

BlockTx is the tx struct for getBlock func

type BuildRequest

type BuildRequest struct {
	Tx        *types.TxData            `json:"base_transaction"`
	Actions   []map[string]interface{} `json:"actions"`
	TTL       json.Duration            `json:"ttl"`
	TimeRange uint64                   `json:"time_range"`
}

BuildRequest is main struct when building transactions

type CheckPasswordResp

type CheckPasswordResp struct {
	CheckResult bool `json:"check_result"`
}

CheckPasswordResp is response for check key password

type CoinbaseArbitrary

type CoinbaseArbitrary struct {
	Arbitrary chainjson.HexBytes `json:"arbitrary"`
}

type CreateAccountReq added in v1.0.2

type CreateAccountReq struct {
	RootXPubs []chainkd.XPub `json:"root_xpubs"`
	Quorum    int            `json:"quorum"`
	Alias     string         `json:"alias"`
}

type CreateKeyReq added in v1.0.2

type CreateKeyReq struct {
	Alias    string `json:"alias"`
	Password string `json:"password"`
	Mnemonic string `json:"mnemonic"`
	Language string `json:"language"`
}

type CreateKeyResp added in v1.0.2

type CreateKeyResp struct {
	Alias    string       `json:"alias"`
	XPub     chainkd.XPub `json:"xpub"`
	File     string       `json:"file"`
	Mnemonic string       `json:"mnemonic,omitempty"`
}

type DecodeProgResp

type DecodeProgResp struct {
	Instructions string `json:"instructions"`
}

DecodeProgResp is response for decode program

type GetBlockHeaderResp

type GetBlockHeaderResp struct {
	BlockHeader *types.BlockHeader `json:"block_header"`
	Reward      uint64             `json:"reward"`
}

GetBlockHeaderResp is resp struct for getBlockHeader API

type GetBlockResp

type GetBlockResp struct {
	Hash                   *bc.Hash             `json:"hash"`
	Size                   uint64               `json:"size"`
	Version                uint64               `json:"version"`
	Height                 uint64               `json:"height"`
	PreviousBlockHash      *bc.Hash             `json:"previous_block_hash"`
	Timestamp              uint64               `json:"timestamp"`
	Witness                []chainjson.HexBytes `json:"witness"`
	Blocker                string               `json:"blocker"`
	TransactionsMerkleRoot *bc.Hash             `json:"transaction_merkle_root"`
	TransactionStatusHash  *bc.Hash             `json:"transaction_status_hash"`
	Transactions           []*BlockTx           `json:"transactions"`
}

GetBlockResp is the resp for getBlock api

type GetMerkleBlockResp

type GetMerkleBlockResp struct {
	BlockHeader  types.BlockHeader `json:"block_header"`
	TxHashes     []*bc.Hash        `json:"tx_hashes"`
	StatusHashes []*bc.Hash        `json:"status_hashes"`
	Flags        []uint32          `json:"flags"`
	MatchedTxIDs []*bc.Hash        `json:"matched_tx_ids"`
}

GetMerkleBlockResp is resp struct for GetTxOutProof API

type GetRawBlockResp

type GetRawBlockResp struct {
	RawBlock          *types.Block          `json:"raw_block"`
	TransactionStatus *bc.TransactionStatus `json:"transaction_status"`
}

GetRawBlockResp is resp struct for getRawBlock API

type ListUtxosReq added in v1.0.2

type ListUtxosReq struct {
	AccountID     string `json:"account_id"`
	AccountAlias  string `json:"account_alias"`
	ID            string `json:"id"`
	Unconfirmed   bool   `json:"unconfirmed"`
	SmartContract bool   `json:"smart_contract"`
	From          uint   `json:"from"`
	Count         uint   `json:"count"`
}

type MerkleBlockReq

type MerkleBlockReq struct {
	TxIDs     []chainjson.HexBytes `json:"tx_ids"`
	BlockHash chainjson.HexBytes   `json:"block_hash"`
}

MerkleBlockReq is used to handle getTxOutProof req

type NetInfo

type NetInfo struct {
	Listening         bool         `json:"listening"`
	Syncing           bool         `json:"syncing"`
	Mining            bool         `json:"mining"`
	NodeXPub          string       `json:"node_xpub"`
	FedAddress        string       `json:"federation_address"`
	PeerCount         int          `json:"peer_count"`
	CurrentBlock      uint64       `json:"current_block"`
	IrreversibleBlock uint64       `json:"irreversible_block"`
	HighestBlock      uint64       `json:"highest_block"`
	NetWorkID         string       `json:"network_id"`
	Version           *VersionInfo `json:"version_info"`
}

NetInfo indicate net information

type NetSync

type NetSync interface {
	IsListening() bool
	IsCaughtUp() bool
	PeerCount() int
	GetNetwork() string
	BestPeer() *peers.PeerInfo
	DialPeerWithAddress(addr *p2p.NetAddress) error
	GetPeerInfos() []*peers.PeerInfo
	StopPeer(peerID string) error
}

type PubKeyInfo

type PubKeyInfo struct {
	Pubkey string               `json:"pubkey"`
	Path   []chainjson.HexBytes `json:"derivation_path"`
}

PubKeyInfo is structure of pubkey info

type RawTx

type RawTx struct {
	ID        bc.Hash                  `json:"tx_id"`
	Version   uint64                   `json:"version"`
	Size      uint64                   `json:"size"`
	TimeRange uint64                   `json:"time_range"`
	Inputs    []*query.AnnotatedInput  `json:"inputs"`
	Outputs   []*query.AnnotatedOutput `json:"outputs"`
	Fee       uint64                   `json:"fee"`
}

RawTx is the tx struct for getRawTransaction

type ResetPasswordResp

type ResetPasswordResp struct {
	Changed bool `json:"changed"`
}

ResetPasswordResp is response for reset key password

type Response

type Response struct {
	Status      string      `json:"status,omitempty"`
	Code        string      `json:"code,omitempty"`
	Msg         string      `json:"msg,omitempty"`
	ErrorDetail string      `json:"error_detail,omitempty"`
	Data        interface{} `json:"data,omitempty"`
}

Response describes the response standard.

func FormatErrResp

func FormatErrResp(err error) (response Response)

FormatErrResp format error response

func NewErrorResponse

func NewErrorResponse(err error) Response

NewErrorResponse error response

func NewSuccessResponse

func NewSuccessResponse(data interface{}) Response

NewSuccessResponse success response

type SignMsgResp

type SignMsgResp struct {
	Signature   string       `json:"signature"`
	DerivedXPub chainkd.XPub `json:"derived_xpub"`
}

SignMsgResp is response for sign message

type SortByIndex

type SortByIndex []AddressResp

SortByIndex implements sort.Interface for addressResp slices

func (SortByIndex) Len

func (a SortByIndex) Len() int

func (SortByIndex) Less

func (a SortByIndex) Less(i, j int) bool

func (SortByIndex) Swap

func (a SortByIndex) Swap(i, j int)

type SubmitBlockReq

type SubmitBlockReq struct {
	Block *types.Block `json:"raw_block"`
}

SubmitBlockReq is req struct for submit-block API

type VerifyMsgResp

type VerifyMsgResp struct {
	VerifyResult bool `json:"result"`
}

VerifyMsgResp is response for verify message

type VersionInfo

type VersionInfo struct {
	Version string `json:"version"`
	Update  uint16 `json:"update"` // 0: no update; 1: small update; 2: significant update
	NewVer  string `json:"new_version"`
}

type VoteInfo added in v1.0.1

type VoteInfo struct {
	Vote    string `json:"vote"`
	VoteNum uint64 `json:"vote_number"`
}

type WalletImage

type WalletImage struct {
	AccountImage *account.Image      `json:"account_image"`
	KeyImages    *pseudohsm.KeyImage `json:"key_images"`
}

WalletImage hold the ziped wallet data

type WalletInfo

type WalletInfo struct {
	BestBlockHeight uint64 `json:"best_block_height"`
	WalletHeight    uint64 `json:"wallet_height"`
}

WalletInfo return wallet information

Jump to

Keyboard shortcuts

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