Documentation ¶
Overview ¶
Package types EOS types
Index ¶
- Constants
- Variables
- func MarshalBinary(v interface{}) ([]byte, error)
- func NameToString(in uint64) string
- func RegisterAction(accountName AccountName, actionName ActionName, obj interface{})
- func SigDigest(chainID, payload, contextFreeData []byte) []byte
- func StringToName(s string) (val uint64, err error)
- func UnmarshalBinary(data []byte, v interface{}) (err error)
- func UnmarshalBinaryReader(reader io.Reader, v interface{}) (err error)
- type ABI
- type ABIErrorMessage
- type ABIType
- type API
- func (api *API) EnableKeepAlives() bool
- func (api *API) FixKeepAlives() bool
- func (api *API) GetABI(account AccountName) (out *GetABIResp, err error)
- func (api *API) GetAccount(name AccountName) (out *AccountResp, err error)
- func (api *API) GetBlockByID(id string) (out *BlockResp, err error)
- func (api *API) GetBlockByNum(num uint32) (out *BlockResp, err error)
- func (api *API) GetBlockByNumOrID(query string) (out *SignedBlock, err error)
- func (api *API) GetBlockByNumOrIDRaw(query string) (out interface{}, err error)
- func (api *API) GetCode(account AccountName) (out *GetCodeResp, err error)
- func (api *API) GetCurrencyBalance(account AccountName, symbol string, code AccountName) (out []Asset, err error)
- func (api *API) GetInfo() (out *InfoResp, err error)
- func (api *API) GetNetConnections() (out []*NetConnectionsResp, err error)
- func (api *API) GetNetStatus(host string) (out *NetStatusResp, err error)
- func (api *API) GetProducers() (out *ProducersResp, err error)
- func (api *API) GetRequiredKeys(tx *Transaction) (out *GetRequiredKeysResp, err error)
- func (api *API) GetTableRows(params GetTableRowsRequest) (out *GetTableRowsResp, err error)
- func (api *API) GetTransaction(id string) (out *TransactionResp, err error)
- func (api *API) GetTransactions(name AccountName) (out *TransactionsResp, err error)
- func (api *API) IsProducerPaused() (out bool, err error)
- func (api *API) ListKeys() (out []*ecc.PrivateKey, err error)
- func (api *API) NetConnect(host string) (out NetConnectResp, err error)
- func (api *API) NetDisconnect(host string) (out NetDisconnectResp, err error)
- func (api *API) ProducerPause() error
- func (api *API) ProducerResume() error
- func (api *API) PushTransaction(tx *PackedTransaction) (out *PushTransactionFullResp, err error)
- func (api *API) SetCustomGetRequiredKeys(f func(tx *Transaction) ([]ecc.PublicKey, error))
- func (api *API) SetSigner(s Signer)
- func (api *API) SignPushActions(a ...*Action) (out *PushTransactionFullResp, err error)
- func (api *API) SignPushActionsWithOpts(actions []*Action, opts *TxOptions) (out *PushTransactionFullResp, err error)
- func (api *API) SignPushTransaction(tx *Transaction, chainID SHA256Bytes, compression CompressionType) (out *PushTransactionFullResp, err error)
- func (api *API) SignTransaction(tx *Transaction, chainID SHA256Bytes, compression CompressionType) (*SignedTransaction, *PackedTransaction, error)
- func (api *API) WalletImportKey(walletName, wifPrivKey string) (err error)
- func (api *API) WalletPublicKeys() (out []ecc.PublicKey, err error)
- func (api *API) WalletSignTransaction(tx *SignedTransaction, chainID []byte, pubKeys ...ecc.PublicKey) (out *WalletSignTransactionResp, err error)
- type AccountName
- type AccountResourceLimit
- type AccountResp
- type Action
- type ActionData
- type ActionDef
- type ActionName
- type ActionTrace
- type Asset
- type Authority
- type BlockHeader
- type BlockResp
- type BlockTimestamp
- type Bool
- type ChainSizeMessage
- type ClausePair
- type CompressionType
- type Currency
- type CurrencyBalanceResp
- type CurrencyName
- type Cycles
- type DataAccess
- type Decoder
- func (d *Decoder) Decode(v interface{}) (err error)
- func (d *Decoder) DecodeActions(decode bool)
- func (d *Decoder) DecodeP2PMessage(decode bool)
- func (d *Decoder) ReadBlockTimestamp() (out BlockTimestamp, err error)
- func (d *Decoder) ReadBool() (out bool, err error)
- func (d *Decoder) ReadByte() (out byte, err error)
- func (d *Decoder) ReadByteArray() (out []byte, err error)
- func (d *Decoder) ReadInt16() (out int16, err error)
- func (d *Decoder) ReadPublicKey() (out ecc.PublicKey, err error)
- func (d *Decoder) ReadSHA256Bytes() (out SHA256Bytes, err error)
- func (d *Decoder) ReadSignature() (out ecc.Signature, err error)
- func (d *Decoder) ReadString() (out string, err error)
- func (d *Decoder) ReadTstamp() (out Tstamp, err error)
- func (d *Decoder) ReadUint16() (out uint16, err error)
- func (d *Decoder) ReadUint32() (out uint32, err error)
- func (d *Decoder) ReadUint64() (out uint64, err error)
- func (d *Decoder) ReadUvarint() (uint64, error)
- func (d *Decoder) Remaining() int
- type DeferredTransaction
- type DelegatedBandwidth
- type Encoder
- func (e *Encoder) Encode(v interface{}) (err error)
- func (e *Encoder) WriteBlockP2PMessageEnvelope(envelope P2PMessageEnvelope) (err error)
- func (e *Encoder) WriteBlockTimestamp(bt BlockTimestamp) (err error)
- func (e *Encoder) WriteBool(b bool) (err error)
- func (e *Encoder) WriteByte(b byte) (err error)
- func (e *Encoder) WriteByteArray(b []byte) error
- func (e *Encoder) WriteInt16(i int16) (err error)
- func (e *Encoder) WriteName(name Name) error
- func (e *Encoder) WritePublicKey(pk ecc.PublicKey) (err error)
- func (e *Encoder) WriteSHA256Bytes(s SHA256Bytes) error
- func (e *Encoder) WriteSignature(s ecc.Signature) (err error)
- func (e *Encoder) WriteString(s string) (err error)
- func (e *Encoder) WriteTstamp(t Tstamp) (err error)
- func (e *Encoder) WriteUVarInt(v int) (err error)
- func (e *Encoder) WriteUint16(i uint16) (err error)
- func (e *Encoder) WriteUint32(i uint32) (err error)
- func (e *Encoder) WriteUint64(i uint64) (err error)
- type Extension
- type FieldDef
- type GetABIResp
- type GetCodeResp
- type GetRequiredKeysResp
- type GetTableRowsRequest
- type GetTableRowsResp
- type Global
- type GoAwayMessage
- type GoAwayReason
- type HandshakeMessage
- type HexBytes
- type IDListMode
- type InfoResp
- type JSONFloat64
- type JSONInt64
- type JSONTime
- type KeyBag
- func (b *KeyBag) Add(wifKey string) error
- func (b *KeyBag) AvailableKeys() (out []ecc.PublicKey, err error)
- func (b *KeyBag) ImportFromFile(path string) error
- func (b *KeyBag) ImportPrivateKey(wifPrivKey string) (err error)
- func (b *KeyBag) Sign(tx *SignedTransaction, chainID []byte, requiredKeys ...ecc.PublicKey) (*SignedTransaction, error)
- func (b *KeyBag) SignDigest(digest []byte, requiredKey ecc.PublicKey) (ecc.Signature, error)
- type KeyWeight
- type M
- type MessageReflectTypes
- type MyStruct
- type Name
- type NetConnectResp
- type NetConnectionsResp
- type NetDisconnectResp
- type NetStatusResp
- type NoticeMessage
- type OptionalProducerSchedule
- type OrderedBlockIDs
- type OrderedTransactionIDs
- type P2PMessage
- type P2PMessageEnvelope
- type P2PMessageType
- type PackedTransaction
- type PackedTransactionMessage
- type Permission
- type PermissionLevel
- type PermissionLevelWeight
- type PermissionName
- type ProcessedTransaction
- type Producer
- type ProducerChange
- type ProducerKey
- type ProducerSchedule
- type ProducersResp
- type PushTransactionFullResp
- type PushTransactionShortResp
- type RegionSummary
- type RequestMessage
- type SHA256Bytes
- type ScopeName
- type SequencedTransactionResp
- type SetABI
- type SetCode
- type ShardLock
- type ShardSummary
- type SignedBlock
- type SignedBlockHeader
- type SignedTransaction
- func (s *SignedTransaction) Pack(compression CompressionType) (*PackedTransaction, error)
- func (s *SignedTransaction) PackedTransactionAndCFD() ([]byte, []byte, error)
- func (s *SignedTransaction) SignedByKeys(chainID SHA256Bytes) (out []ecc.PublicKey, err error)
- func (s *SignedTransaction) String() string
- type SignedTransactionMessage
- type Signer
- type StructDef
- type Symbol
- type SyncRequestMessage
- type TableDef
- type TableName
- type TimeMessage
- type TotalResources
- type Transaction
- type TransactionHeader
- type TransactionProcessed
- type TransactionReceipt
- type TransactionReceiptHeader
- type TransactionResp
- type TransactionStatus
- type TransactionTrace
- type TransactionTraceAuthSequence
- type TransactionWithID
- type TransactionsResp
- type Tstamp
- type TxOptions
- type Varuint32
- type VoterInfo
- type WaitWeight
- type WalletSignTransactionResp
- type WalletSigner
Constants ¶
const ( GoAwayNoReason = uint8(iota) GoAwaySelfConnect GoAwayDuplicate GoAwayWrongChain GoAwayWrongVersion GoAwayForked GoAwayUnlinkable GoAwayBadTransaction GoAwayValidation GoAwayAuthentication GoAwayFatalOther GoAwayBenignOther GoAwayCrazy )
const ( CompressionNone = CompressionType(iota) CompressionZlib )
const BlockTimestampFormat = "2006-01-02T15:04:05"
const JSONTimeFormat = "2006-01-02T15:04:05"
Variables ¶
var Debug bool
var EOSSymbol = Symbol{Precision: 4, Symbol: "EOS"}
EOSSymbol represents the standard EOS symbol on the chain. It's here just to speed up things.
var ErrNotFound = errors.New("resource not found")
var ErrUnknownMessageType = errors.New("unknown type")
var ErrVarIntBufferSize = errors.New("varint: invalid buffer size")
var RegisteredActions = map[AccountName]map[ActionName]reflect.Type{}
var TypeSize = struct { Byte int Int8 int UInt16 int Int16 int UInt32 int UInt64 int SHA256Bytes int PublicKey int Signature int Tstamp int BlockTimestamp int CurrencyName int Bool int }{ Byte: 1, Int8: 1, UInt16: 2, Int16: 2, UInt32: 4, UInt64: 8, SHA256Bytes: 32, PublicKey: 34, Signature: 66, Tstamp: 8, BlockTimestamp: 4, CurrencyName: 7, Bool: 1, }
Functions ¶
func MarshalBinary ¶
func NameToString ¶
func RegisterAction ¶
func RegisterAction(accountName AccountName, actionName ActionName, obj interface{})
Registers Action objects..
func StringToName ¶
func UnmarshalBinary ¶
func UnmarshalBinaryReader ¶
Types ¶
type ABI ¶
type ABI struct { Version string `json:"version"` Types []ABIType `json:"types,omitempty"` Structs []StructDef `json:"structs,omitempty"` Actions []ActionDef `json:"actions,omitempty"` Tables []TableDef `json:"tables,omitempty"` RicardianClauses []ClausePair `json:"ricardian_clauses,omitempty"` ErrorMessages []ABIErrorMessage `json:"error_messages,omitempty"` Extensions []*Extension `json:"abi_extensions,omitempty"` }
see: libraries/chain/contracts/abi_serializer.cpp:53... see: libraries/chain/include/eosio/chain/contracts/types.hpp:100
type ABIErrorMessage ¶
type API ¶
type API struct { HttpClient *http.Client BaseURL string Signer Signer Debug bool Compress CompressionType DefaultMaxCPUUsageMS uint8 DefaultMaxNetUsageWords uint32 // in 8-bytes words // contains filtered or unexported fields }
func (*API) EnableKeepAlives ¶
func (*API) FixKeepAlives ¶
FixKeepAlives tests the remote server for keepalive support (the main `nodeos` software doesn't in the version from March 22nd 2018). Some endpoints front their node with a keep-alive supporting web server. Adjust the `KeepAlive` support of the client accordingly.
func (*API) GetABI ¶
func (api *API) GetABI(account AccountName) (out *GetABIResp, err error)
func (*API) GetAccount ¶
func (api *API) GetAccount(name AccountName) (out *AccountResp, err error)
func (*API) GetBlockByNumOrID ¶
func (api *API) GetBlockByNumOrID(query string) (out *SignedBlock, err error)
func (*API) GetBlockByNumOrIDRaw ¶
func (*API) GetCode ¶
func (api *API) GetCode(account AccountName) (out *GetCodeResp, err error)
func (*API) GetCurrencyBalance ¶
func (api *API) GetCurrencyBalance(account AccountName, symbol string, code AccountName) (out []Asset, err error)
func (*API) GetNetConnections ¶
func (api *API) GetNetConnections() (out []*NetConnectionsResp, err error)
func (*API) GetNetStatus ¶
func (api *API) GetNetStatus(host string) (out *NetStatusResp, err error)
func (*API) GetProducers ¶
func (api *API) GetProducers() (out *ProducersResp, err error)
func (*API) GetRequiredKeys ¶
func (api *API) GetRequiredKeys(tx *Transaction) (out *GetRequiredKeysResp, err error)
func (*API) GetTableRows ¶
func (api *API) GetTableRows(params GetTableRowsRequest) (out *GetTableRowsResp, err error)
func (*API) GetTransaction ¶
func (api *API) GetTransaction(id string) (out *TransactionResp, err error)
func (*API) GetTransactions ¶
func (api *API) GetTransactions(name AccountName) (out *TransactionsResp, err error)
func (*API) IsProducerPaused ¶
IsProducerPaused queries the blockchain for the pause statement of block production.
func (*API) NetConnect ¶
func (api *API) NetConnect(host string) (out NetConnectResp, err error)
func (*API) NetDisconnect ¶
func (api *API) NetDisconnect(host string) (out NetDisconnectResp, err error)
func (*API) ProducerPause ¶
ProducerPause will pause block production on a nodeos with `producer_api` plugin loaded.
func (*API) ProducerResume ¶
ProducerResume will resume block production on a nodeos with `producer_api` plugin loaded. Obviously, this needs to be a producing node on the producers schedule for it to do anything.
func (*API) PushTransaction ¶
func (api *API) PushTransaction(tx *PackedTransaction) (out *PushTransactionFullResp, err error)
PushTransaction submits a properly filled (tapos), packed and signed transaction to the blockchain.
func (*API) SetCustomGetRequiredKeys ¶
func (api *API) SetCustomGetRequiredKeys(f func(tx *Transaction) ([]ecc.PublicKey, error))
func (*API) SignPushActions ¶
func (api *API) SignPushActions(a ...*Action) (out *PushTransactionFullResp, err error)
SignPushActions will create a transaction, fill it with default values, sign it and submit it to the chain. It is the highest level function on top of the `/v1/chain/push_transaction` endpoint.
func (*API) SignPushActionsWithOpts ¶
func (api *API) SignPushActionsWithOpts(actions []*Action, opts *TxOptions) (out *PushTransactionFullResp, err error)
func (*API) SignPushTransaction ¶
func (api *API) SignPushTransaction(tx *Transaction, chainID SHA256Bytes, compression CompressionType) (out *PushTransactionFullResp, err error)
SignPushTransaction will sign a transaction and submit it to the chain.
func (*API) SignTransaction ¶
func (api *API) SignTransaction(tx *Transaction, chainID SHA256Bytes, compression CompressionType) (*SignedTransaction, *PackedTransaction, error)
SignTransaction will sign and pack a transaction, but not submit to the chain. It lives on the `api` object because it might query the blockchain to learn which keys are required to sign this particular transaction.
You can override the way we request keys (which defaults to `api.GetRequiredKeys()`) with SetCustomGetRequiredKeys().
To sign a transaction, you need a Signer defined on the `API` object. See SetSigner.
func (*API) WalletImportKey ¶
WalletImportKey loads a new WIF-encoded key into the wallet.
func (*API) WalletSignTransaction ¶
func (api *API) WalletSignTransaction(tx *SignedTransaction, chainID []byte, pubKeys ...ecc.PublicKey) (out *WalletSignTransactionResp, err error)
type AccountResourceLimit ¶
type AccountResp ¶
type AccountResp struct { AccountName AccountName `json:"account_name"` Privileged bool `json:"privileged"` LastCodeUpdate JSONTime `json:"last_code_update"` Created JSONTime `json:"created"` RAMQuota int64 `json:"ram_quota"` RAMUsage int64 `json:"ram_usage"` NetWeight JSONInt64 `json:"net_weight"` CPUWeight JSONInt64 `json:"cpu_weight"` NetLimit AccountResourceLimit `json:"net_limit"` CPULimit AccountResourceLimit `json:"cpu_limit"` Permissions []Permission `json:"permissions"` TotalResources TotalResources `json:"total_resources"` DelegatedBandwidth DelegatedBandwidth `json:"delegated_bandwidth"` VoterInfo VoterInfo `json:"voter_info"` }
type Action ¶
type Action struct { Account AccountName `json:"account"` Name ActionName `json:"name"` Authorization []PermissionLevel `json:"authorization,omitempty"` ActionData }
Action
func (Action) Digest ¶
func (a Action) Digest() SHA256Bytes
func (*Action) MapToRegisteredAction ¶
func (*Action) MarshalJSON ¶
type ActionData ¶
type ActionData struct { HexData HexBytes `json:"hex_data,omitempty"` Data interface{} `json:"data,omitempty" eos:"-"` // contains filtered or unexported fields }
func NewActionData ¶
func NewActionData(obj interface{}) ActionData
func (*ActionData) SetToServer ¶
func (a *ActionData) SetToServer(toServer bool)
type ActionDef ¶
type ActionDef struct { Name ActionName `json:"name"` Type string `json:"type"` RicardianContract string `json:"ricardian_contract"` }
type ActionTrace ¶
type ActionTrace struct { Receiver AccountName `json:"receiver"` // Action Action `json:"act"` // FIXME: how do we unpack that ? what's on the other side anyway? Console string `json:"console"` DataAccess []DataAccess `json:"data_access"` }
type Asset ¶
NOTE: there's also ExtendedAsset which is a quantity with the attached contract (AccountName)
func NewEOSAsset ¶
func NewEOSAssetFromString ¶
func (Asset) MarshalJSON ¶
func (*Asset) UnmarshalJSON ¶
type Authority ¶
type Authority struct { Threshold uint32 `json:"threshold"` Keys []KeyWeight `json:"keys,omitempty"` Accounts []PermissionLevelWeight `json:"accounts,omitempty"` Waits []WaitWeight `json:"waits,omitempty"` }
type BlockHeader ¶
type BlockHeader struct { Timestamp BlockTimestamp `json:"timestamp"` Producer AccountName `json:"producer"` Confirmed uint16 `json:"confirmed"` Previous SHA256Bytes `json:"previous"` TransactionMRoot SHA256Bytes `json:"transaction_mroot"` ActionMRoot SHA256Bytes `json:"action_mroot"` ScheduleVersion uint32 `json:"schedule_version"` NewProducers *OptionalProducerSchedule `json:"new_producers" eos:"optional"` HeaderExtensions []*Extension `json:"header_extensions"` }
func (*BlockHeader) BlockID ¶
func (b *BlockHeader) BlockID() (SHA256Bytes, error)
func (*BlockHeader) BlockNumber ¶
func (b *BlockHeader) BlockNumber() uint32
type BlockResp ¶
type BlockResp struct { SignedBlock ID SHA256Bytes `json:"id"` BlockNum uint32 `json:"block_num"` RefBlockPrefix uint32 `json:"ref_block_prefix"` BlockExtensions []*Extension `json:"block_extensions"` }
type BlockTimestamp ¶
func (BlockTimestamp) MarshalJSON ¶
func (t BlockTimestamp) MarshalJSON() ([]byte, error)
func (*BlockTimestamp) UnmarshalJSON ¶
func (t *BlockTimestamp) UnmarshalJSON(data []byte) (err error)
type ChainSizeMessage ¶
type ChainSizeMessage struct { LastIrreversibleBlockNum uint32 `json:"last_irreversible_block_num"` LastIrreversibleBlockID SHA256Bytes `json:"last_irreversible_block_id"` HeadNum uint32 `json:"head_num"` HeadID SHA256Bytes `json:"head_id"` }
func (*ChainSizeMessage) GetType ¶
func (m *ChainSizeMessage) GetType() P2PMessageType
type ClausePair ¶
ClausePair represents clauses, related to Ricardian Contracts.
type CompressionType ¶
type CompressionType uint8
func (CompressionType) MarshalJSON ¶
func (c CompressionType) MarshalJSON() ([]byte, error)
func (CompressionType) String ¶
func (c CompressionType) String() string
func (*CompressionType) UnmarshalJSON ¶
func (c *CompressionType) UnmarshalJSON(data []byte) error
type Currency ¶
type Currency struct { Precision uint8 Name CurrencyName }
type CurrencyBalanceResp ¶
type CurrencyName ¶
type CurrencyName string
type Cycles ¶
type Cycles []ShardSummary
type DataAccess ¶
type DataAccess struct { Type string `json:"type"` // "write", "read"? Code AccountName `json:"code"` Scope AccountName `json:"scope"` Sequence int `json:"sequence"` }
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
Decoder implements the EOS unpacking, similar to FC_BUFFER
func NewDecoder ¶
func (*Decoder) DecodeActions ¶
func (*Decoder) DecodeP2PMessage ¶
func (*Decoder) ReadBlockTimestamp ¶
func (d *Decoder) ReadBlockTimestamp() (out BlockTimestamp, err error)
func (*Decoder) ReadByteArray ¶
func (*Decoder) ReadSHA256Bytes ¶
func (d *Decoder) ReadSHA256Bytes() (out SHA256Bytes, err error)
func (*Decoder) ReadString ¶
func (*Decoder) ReadTstamp ¶
func (*Decoder) ReadUint16 ¶
func (*Decoder) ReadUint32 ¶
func (*Decoder) ReadUint64 ¶
func (*Decoder) ReadUvarint ¶
type DeferredTransaction ¶
type DeferredTransaction struct { *Transaction SenderID uint32 `json:"sender_id"` Sender AccountName `json:"sender"` DelayUntil JSONTime `json:"delay_until"` }
type DelegatedBandwidth ¶
type DelegatedBandwidth struct { From AccountName `json:"from"` To AccountName `json:"to"` NetWeight Asset `json:"net_weight"` CPUWeight Asset `json:"cpu_weight"` }
type Encoder ¶
-------------------------------------------------------------- Encoder implements the EOS packing, similar to FC_BUFFER --------------------------------------------------------------
func NewEncoder ¶
func (*Encoder) WriteBlockP2PMessageEnvelope ¶
func (e *Encoder) WriteBlockP2PMessageEnvelope(envelope P2PMessageEnvelope) (err error)
func (*Encoder) WriteBlockTimestamp ¶
func (e *Encoder) WriteBlockTimestamp(bt BlockTimestamp) (err error)
func (*Encoder) WriteByteArray ¶
func (*Encoder) WriteInt16 ¶
func (*Encoder) WriteSHA256Bytes ¶
func (e *Encoder) WriteSHA256Bytes(s SHA256Bytes) error
func (*Encoder) WriteString ¶
func (*Encoder) WriteTstamp ¶
func (*Encoder) WriteUVarInt ¶
func (*Encoder) WriteUint16 ¶
func (*Encoder) WriteUint32 ¶
func (*Encoder) WriteUint64 ¶
type GetABIResp ¶
type GetABIResp struct { AccountName AccountName `json:"account_name"` ABI ABI `json:"abi"` }
type GetCodeResp ¶
type GetCodeResp struct { AccountName AccountName `json:"account_name"` CodeHash string `json:"code_hash"` WASM string `json:"wasm"` ABI ABI `json:"abi"` }
type GetRequiredKeysResp ¶
type GetTableRowsRequest ¶
type GetTableRowsRequest struct { JSON bool `json:"json"` Scope string `json:"scope"` Code string `json:"code"` Table string `json:"table"` TableKey string `json:"table_key"` LowerBound string `json:"lower_bound"` UpperBound string `json:"upper_bound"` Limit uint32 `json:"limit,omitempty"` // defaults to 10 => chain_plugin.hpp:struct get_table_rows_params }
type GetTableRowsResp ¶
type GetTableRowsResp struct { More bool `json:"more"` Rows json.RawMessage `json:"rows"` // defer loading, as it depends on `JSON` being true/false. }
func (*GetTableRowsResp) BinaryToStructs ¶
func (resp *GetTableRowsResp) BinaryToStructs(v interface{}) error
func (*GetTableRowsResp) JSONToStructs ¶
func (resp *GetTableRowsResp) JSONToStructs(v interface{}) error
type Global ¶
type Global struct { MaxBlockNetUsage int `json:"max_block_net_usage"` TargetBlockNetUsagePct int `json:"target_block_net_usage_pct"` MaxTransactionNetUsage int `json:"max_transaction_net_usage"` BasePerTransactionNetUsage int `json:"base_per_transaction_net_usage"` NetUsageLeeway int `json:"net_usage_leeway"` ContextFreeDiscountNetUsageNum int `json:"context_free_discount_net_usage_num"` ContextFreeDiscountNetUsageDen int `json:"context_free_discount_net_usage_den"` MaxBlockCPUUsage int `json:"max_block_cpu_usage"` TargetBlockCPUUsagePct int `json:"target_block_cpu_usage_pct"` MaxTransactionCPUUsage int `json:"max_transaction_cpu_usage"` MinTransactionCPUUsage int `json:"min_transaction_cpu_usage"` MaxTransactionLifetime int `json:"max_transaction_lifetime"` DeferredTrxExpirationWindow int `json:"deferred_trx_expiration_window"` MaxTransactionDelay int `json:"max_transaction_delay"` MaxInlineActionSize int `json:"max_inline_action_size"` MaxInlineActionDepth int `json:"max_inline_action_depth"` MaxAuthorityDepth int `json:"max_authority_depth"` MaxRAMSize string `json:"max_ram_size"` TotalRAMBytesReserved JSONInt64 `json:"total_ram_bytes_reserved"` TotalRAMStake JSONInt64 `json:"total_ram_stake"` LastProducerScheduleUpdate string `json:"last_producer_schedule_update"` LastPervoteBucketFill int64 `json:"last_pervote_bucket_fill,string"` PervoteBucket int `json:"pervote_bucket"` PerblockBucket int `json:"perblock_bucket"` TotalUnpaidBlocks int `json:"total_unpaid_blocks"` TotalActivatedStake float64 `json:"total_activated_stake,string"` ThreshActivatedStakeTime int64 `json:"thresh_activated_stake_time,string"` LastProducerScheduleSize int `json:"last_producer_schedule_size"` TotalProducerVoteWeight float64 `json:"total_producer_vote_weight,string"` LastNameClose string `json:"last_name_close"` }
type GoAwayMessage ¶
type GoAwayMessage struct { Reason GoAwayReason `json:"reason"` NodeID SHA256Bytes `json:"node_id"` }
func (*GoAwayMessage) GetType ¶
func (m *GoAwayMessage) GetType() P2PMessageType
type GoAwayReason ¶
type GoAwayReason uint8
type HandshakeMessage ¶
type HandshakeMessage struct { // net_plugin/protocol.hpp handshake_message NetworkVersion uint16 `json:"network_version"` ChainID SHA256Bytes `json:"chain_id"` NodeID SHA256Bytes `json:"node_id"` // sha256 Key ecc.PublicKey `json:"key"` // can be empty, producer key, or peer key Time Tstamp `json:"time"` // time?! Token SHA256Bytes `json:"token"` // digest of time to prove we own the private `key` Signature ecc.Signature `json:"sig"` // can be empty if no key, signature of the digest above P2PAddress string `json:"p2p_address"` LastIrreversibleBlockNum uint32 `json:"last_irreversible_block_num"` LastIrreversibleBlockID SHA256Bytes `json:"last_irreversible_block_id"` HeadNum uint32 `json:"head_num"` HeadID SHA256Bytes `json:"head_id"` OS string `json:"os"` Agent string `json:"agent"` Generation int16 `json:"generation"` }
func (*HandshakeMessage) GetType ¶
func (m *HandshakeMessage) GetType() P2PMessageType
func (*HandshakeMessage) String ¶
func (m *HandshakeMessage) String() string
type IDListMode ¶
type IDListMode byte
type InfoResp ¶
type InfoResp struct { ServerVersion string `json:"server_version"` // "2cc40a4e" ChainID SHA256Bytes `json:"chain_id"` HeadBlockNum uint32 `json:"head_block_num"` // 2465669, LastIrreversibleBlockNum uint32 `json:"last_irreversible_block_num"` // 2465655 LastIrreversibleBlockID SHA256Bytes `json:"last_irreversible_block_id"` // "00000008f98f0580d7efe7abc60abaaf8a865c9428a4267df30ff7d1937a1084" HeadBlockID SHA256Bytes `json:"head_block_id"` // "00259f856bfa142d1d60aff77e70f0c4f3eab30789e9539d2684f9f8758f1b88", HeadBlockTime JSONTime `json:"head_block_time"` // "2018-02-02T04:19:32" HeadBlockProducer AccountName `json:"head_block_producer"` // "inita" VirtualBlockCPULimit uint64 `json:"virtual_block_cpu_limit"` VirtualBlockNetLimit uint64 `json:"virtual_block_net_limit"` BlockCPULimit uint64 `json:"block_cpu_limit"` BlockNetLimit uint64 `json:"block_net_limit"` }
type JSONFloat64 ¶
type JSONFloat64 float64
func (*JSONFloat64) UnmarshalJSON ¶
func (f *JSONFloat64) UnmarshalJSON(data []byte) error
type KeyBag ¶
type KeyBag struct {
Keys []*ecc.PrivateKey `json:"keys"`
}
KeyBag holds private keys in memory, for signing transactions.
func (*KeyBag) ImportFromFile ¶
func (*KeyBag) ImportPrivateKey ¶
func (*KeyBag) Sign ¶
func (b *KeyBag) Sign(tx *SignedTransaction, chainID []byte, requiredKeys ...ecc.PublicKey) (*SignedTransaction, error)
type MessageReflectTypes ¶
type NetConnectResp ¶
type NetConnectResp string
type NetConnectionsResp ¶
type NetConnectionsResp struct { Peer string `json:"peer"` Connecting bool `json:"connecting"` Syncing bool `json:"syncing"` LastHandshake HandshakeMessage `json:"last_handshake"` }
NetConnectionResp
type NetDisconnectResp ¶
type NetDisconnectResp string
type NetStatusResp ¶
type NetStatusResp struct { }
type NoticeMessage ¶
type NoticeMessage struct { KnownTrx OrderedBlockIDs `json:"known_trx"` KnownBlocks OrderedBlockIDs `json:"known_blocks"` }
func (*NoticeMessage) GetType ¶
func (m *NoticeMessage) GetType() P2PMessageType
type OptionalProducerSchedule ¶
type OptionalProducerSchedule struct {
ProducerSchedule
}
type OrderedBlockIDs ¶
type OrderedBlockIDs struct { Unknown [3]byte `json:"-"` ///// wuuttzthat? Mode IDListMode `json:"mode"` Pending uint32 `json:"pending"` IDs []SHA256Bytes `json:"ids"` }
type OrderedTransactionIDs ¶
type OrderedTransactionIDs struct { Unknown [3]byte `json:"-"` ///// WWUUuuuuuuuuuuuutzthat ? Mode IDListMode `json:"mode"` Pending uint32 `json:"pending"` IDs []SHA256Bytes `json:"ids"` }
type P2PMessage ¶
type P2PMessage interface {
GetType() P2PMessageType
}
type P2PMessageEnvelope ¶
type P2PMessageEnvelope struct { Length uint32 `json:"length"` Type P2PMessageType `json:"type"` Payload []byte `json:"-"` P2PMessage P2PMessage `json:"message" eos:"-"` Raw []byte `json:"-"` }
func ReadP2PMessageData ¶
func ReadP2PMessageData(r io.Reader) (envelope *P2PMessageEnvelope, err error)
type P2PMessageType ¶
type P2PMessageType byte
const ( HandshakeMessageType P2PMessageType = iota // 0 ChainSizeType GoAwayMessageType // 2 TimeMessageType NoticeMessageType // 4 RequestMessageType SyncRequestMessageType // 6 SignedBlockType // 7 PackedTransactionMessageType // 8 )
func NewMessageType ¶
func NewMessageType(aType byte) (t P2PMessageType, err error)
func (P2PMessageType) Name ¶
func (t P2PMessageType) Name() (string, bool)
type PackedTransaction ¶
type PackedTransaction struct { Signatures []ecc.Signature `json:"signatures"` Compression CompressionType `json:"compression"` // in C++, it's an enum, not sure how it Binary-marshals.. PackedContextFreeData HexBytes `json:"packed_context_free_data"` PackedTransaction HexBytes `json:"packed_trx"` }
PackedTransaction represents a fully packed transaction, with signatures, and all. They circulate like that on the P2P net, and that's how they are stored.
func (*PackedTransaction) ID ¶
func (p *PackedTransaction) ID() SHA256Bytes
func (*PackedTransaction) Unpack ¶
func (p *PackedTransaction) Unpack() (signedTx *SignedTransaction, err error)
type PackedTransactionMessage ¶
type PackedTransactionMessage struct {
PackedTransaction
}
func (*PackedTransactionMessage) GetType ¶
func (m *PackedTransactionMessage) GetType() P2PMessageType
type Permission ¶
type PermissionLevel ¶
type PermissionLevel struct { Actor AccountName `json:"actor"` Permission PermissionName `json:"permission"` }
func NewPermissionLevel ¶
func NewPermissionLevel(in string) (out PermissionLevel, err error)
NewPermissionLevel parses strings like `account@active`, `otheraccount@owner` and builds a PermissionLevel struct. It validates that there is a single optional @ (where permission defaults to 'active'), and validates length of account and permission names.
type PermissionLevelWeight ¶
type PermissionLevelWeight struct { Permission PermissionLevel `json:"permission"` Weight uint16 `json:"weight"` // weight_type }
type ProcessedTransaction ¶
type ProcessedTransaction struct {
Transaction SignedTransaction `json:"trx"`
}
type Producer ¶
type Producer struct { Owner string `json:"owner"` TotalVotes float64 `json:"total_votes,string"` ProducerKey string `json:"producer_key"` IsActive int `json:"is_active"` URL string `json:"url"` UnpaidBlocks int `json:"unpaid_blocks"` LastClaimTime JSONFloat64 `json:"last_claim_time"` Location int `json:"location"` }
type ProducerChange ¶
type ProducerChange struct { }
type ProducerKey ¶
type ProducerKey struct { AccountName AccountName `json:"account_name"` BlockSigningKey ecc.PublicKey `json:"block_signing_key"` }
type ProducerSchedule ¶
type ProducerSchedule struct { Version uint32 `json:"version"` Producers []ProducerKey `json:"producers"` }
type ProducersResp ¶
type ProducersResp struct {
Producers []Producer `json:"producers"`
}
type PushTransactionFullResp ¶
type PushTransactionFullResp struct { StatusCode string TransactionID string `json:"transaction_id"` Processed TransactionProcessed `json:"processed"` // WARN: is an `fc::variant` in server.. }
PushTransactionFullResp unwraps the responses from a successful `push_transaction`. FIXME: REVIEW the actual output, things have moved here.
type RegionSummary ¶
type RequestMessage ¶
type RequestMessage struct { ReqTrx OrderedBlockIDs `json:"req_trx"` ReqBlocks OrderedBlockIDs `json:"req_blocks"` }
func (*RequestMessage) GetType ¶
func (m *RequestMessage) GetType() P2PMessageType
type SHA256Bytes ¶
type SHA256Bytes []byte // should always be 32 bytes
func (SHA256Bytes) MarshalJSON ¶
func (t SHA256Bytes) MarshalJSON() ([]byte, error)
func (*SHA256Bytes) UnmarshalJSON ¶
func (t *SHA256Bytes) UnmarshalJSON(data []byte) (err error)
type SequencedTransactionResp ¶
type SequencedTransactionResp struct { SeqNum int `json:"seq_num"` TransactionResp }
type SetABI ¶
type SetABI struct { Account AccountName `json:"account"` ABI ABI `json:"abi"` }
SetABI represents the hard-coded `setabi` action.
type SetCode ¶
type SetCode struct { Account AccountName `json:"account"` VMType byte `json:"vmtype"` VMVersion byte `json:"vmversion"` Code HexBytes `json:"bytes"` }
SetCode represents the hard-coded `setcode` action.
type ShardLock ¶
type ShardLock struct { AccountName AccountName `json:"account_name"` ScopeName ScopeName `json:"scope_name"` }
type ShardSummary ¶
type ShardSummary struct { ReadLocks []ShardLock `json:"read_locks"` WriteLocks []ShardLock `json:"write_locks"` Transactions []TransactionReceipt `json:"transactions"` }
type SignedBlock ¶
type SignedBlock struct { SignedBlockHeader Transactions []TransactionReceipt `json:"transactions"` BlockExtensions []*Extension `json:"block_extensions"` }
func (*SignedBlock) GetType ¶
func (m *SignedBlock) GetType() P2PMessageType
func (*SignedBlock) String ¶
func (m *SignedBlock) String() string
type SignedBlockHeader ¶
type SignedBlockHeader struct { BlockHeader ProducerSignature ecc.Signature `json:"producer_signature"` }
type SignedTransaction ¶
type SignedTransaction struct { *Transaction Signatures []ecc.Signature `json:"signatures"` ContextFreeData []HexBytes `json:"context_free_data"` // contains filtered or unexported fields }
func NewSignedTransaction ¶
func NewSignedTransaction(tx *Transaction) *SignedTransaction
func (*SignedTransaction) Pack ¶
func (s *SignedTransaction) Pack(compression CompressionType) (*PackedTransaction, error)
func (*SignedTransaction) PackedTransactionAndCFD ¶
func (s *SignedTransaction) PackedTransactionAndCFD() ([]byte, []byte, error)
func (*SignedTransaction) SignedByKeys ¶
func (s *SignedTransaction) SignedByKeys(chainID SHA256Bytes) (out []ecc.PublicKey, err error)
func (*SignedTransaction) String ¶
func (s *SignedTransaction) String() string
type Signer ¶
type Signer interface { AvailableKeys() (out []ecc.PublicKey, err error) // Sign signs a `tx` transaction. It gets passed a // SignedTransaction because it is possible that it holds a few // signatures and requests this wallet only to add one or more // signatures it requires. Sign(tx *SignedTransaction, chainID []byte, requiredKeys ...ecc.PublicKey) (*SignedTransaction, error) ImportPrivateKey(wifPrivKey string) error }
type Symbol ¶
NOTE: there's also a new ExtendedSymbol (which includes the contract (as AccountName) on which it is)
type SyncRequestMessage ¶
type SyncRequestMessage struct { StartBlock uint32 `json:"start_block"` EndBlock uint32 `json:"end_block"` }
func (*SyncRequestMessage) GetType ¶
func (m *SyncRequestMessage) GetType() P2PMessageType
func (*SyncRequestMessage) String ¶
func (m *SyncRequestMessage) String() string
type TableDef ¶
type TableDef struct { Name TableName `json:"name"` IndexType string `json:"index_type"` KeyNames []string `json:"key_names,omitempty"` KeyTypes []string `json:"key_types,omitempty"` Type string `json:"type"` }
TableDef defines a table. See libraries/chain/include/eosio/chain/contracts/types.hpp:78
type TimeMessage ¶
type TimeMessage struct { Origin Tstamp `json:"org"` Receive Tstamp `json:"rec"` Transmit Tstamp `json:"xmt"` Destination Tstamp `json:"dst"` }
func (*TimeMessage) GetType ¶
func (m *TimeMessage) GetType() P2PMessageType
func (*TimeMessage) String ¶
func (t *TimeMessage) String() string
type TotalResources ¶
type TotalResources struct { Owner AccountName `json:"owner"` NetWeight Asset `json:"net_weight"` CPUWeight Asset `json:"cpu_weight"` RAMBytes JSONInt64 `json:"ram_bytes"` }
type Transaction ¶
type Transaction struct { TransactionHeader ContextFreeActions []*Action `json:"context_free_actions"` Actions []*Action `json:"actions"` Extensions []*Extension `json:"transaction_extensions"` }
func NewTransaction ¶
func NewTransaction(actions []*Action, opts *TxOptions) *Transaction
NewTransaction creates a transaction. Unless you plan on adding HeadBlockID later, to be complete, opts should contain it. Sign
func (*Transaction) Fill ¶
func (tx *Transaction) Fill(headBlockID SHA256Bytes, delaySecs, maxNetUsageWords uint32, maxCPUUsageMS uint8)
Fill sets the fields on a transaction. If you pass `headBlockID`, then `api` can be nil. If you don't pass `headBlockID`, then the `api` is going to be called to fetch
func (*Transaction) ID ¶
func (tx *Transaction) ID() string
func (*Transaction) SetRefBlock ¶
func (tx *Transaction) SetRefBlock(blockID []byte)
type TransactionHeader ¶
type TransactionHeader struct { Expiration JSONTime `json:"expiration"` RefBlockNum uint16 `json:"ref_block_num"` RefBlockPrefix uint32 `json:"ref_block_prefix"` MaxNetUsageWords Varuint32 `json:"max_net_usage_words"` MaxCPUUsageMS uint8 `json:"max_cpu_usage_ms"` DelaySec Varuint32 `json:"delay_sec"` // number of secs to delay, making it cancellable for that duration }
type TransactionProcessed ¶
type TransactionProcessed struct { Status string `json:"status"` ID SHA256Bytes `json:"id"` ActionTraces []ActionTrace `json:"action_traces"` DeferredTransactions []string `json:"deferred_transactions"` // that's not right... dig to find what's there.. }
type TransactionReceipt ¶
type TransactionReceipt struct { TransactionReceiptHeader Transaction TransactionWithID `json:"trx"` }
type TransactionReceiptHeader ¶
type TransactionReceiptHeader struct { Status TransactionStatus `json:"status"` CPUUsageMicroSeconds uint32 `json:"cpu_usage_us"` NetUsageWords Varuint32 `json:"net_usage_words"` }
type TransactionResp ¶
type TransactionResp struct { ID SHA256Bytes `json:"id"` Receipt struct { Status TransactionStatus `json:"status"` CPUUsageMicrosec int `json:"cpu_usage_us"` NetUsageWords int `json:"net_usage_words"` PackedTransaction TransactionWithID `json:"trx"` } `json:"receipt"` Transaction ProcessedTransaction `json:"trx"` BlockTime JSONTime `json:"block_time"` BlockNum uint32 `json:"block_num"` LastIrreversibleBlock uint32 `json:"last_irreversible_block"` Traces []TransactionTrace `json:"traces"` }
type TransactionStatus ¶
type TransactionStatus uint8
const ( TransactionStatusExecuted TransactionStatus = iota ///< succeed, no error handler executed TransactionStatusSoftFail ///< objectively failed (not executed), error handler executed TransactionStatusHardFail ///< objectively failed and error handler objectively failed thus no state change TransactionStatusDelayed ///< transaction delayed TransactionStatusUnknown = TransactionStatus(255) )
func (TransactionStatus) MarshalJSON ¶
func (s TransactionStatus) MarshalJSON() (data []byte, err error)
func (TransactionStatus) String ¶
func (s TransactionStatus) String() string
func (*TransactionStatus) UnmarshalJSON ¶
func (s *TransactionStatus) UnmarshalJSON(data []byte) error
type TransactionTrace ¶
type TransactionTrace struct { Receipt struct { Receiver AccountName `json:"receiver"` ActionDigest string `json:"act_digest"` GlobalSequence int64 `json:"global_sequence"` ReceiveSequence int64 `json:"recv_sequence"` AuthSequence []TransactionTraceAuthSequence `json:"auth_sequence"` // [["account", sequence], ["account", sequence]] CodeSequence int64 `json:"code_sequence"` ABISequence int64 `json:"abi_sequence"` } `json:"receipt"` Action *Action `json:"act"` Elapsed int `json:"elapsed"` CPUUsage int `json:"cpu_usage"` Console string `json:"console"` TotalCPUUsage int `json:"total_cpu_usage"` TransactionID SHA256Bytes `json:"trx_id"` InlineTraces []*TransactionTrace `json:"inline_traces"` }
type TransactionTraceAuthSequence ¶
type TransactionTraceAuthSequence struct { Account AccountName Sequence int64 }
func (TransactionTraceAuthSequence) MarshalJSON ¶
func (auth TransactionTraceAuthSequence) MarshalJSON() (data []byte, err error)
func (*TransactionTraceAuthSequence) UnmarshalJSON ¶
func (auth *TransactionTraceAuthSequence) UnmarshalJSON(data []byte) error
[ ["account", 123123], ["account2", 345] ]
type TransactionWithID ¶
type TransactionWithID struct { ID SHA256Bytes Packed *PackedTransaction }
func (TransactionWithID) MarshalJSON ¶
func (t TransactionWithID) MarshalJSON() ([]byte, error)
func (*TransactionWithID) UnmarshalJSON ¶
func (t *TransactionWithID) UnmarshalJSON(data []byte) error
type TransactionsResp ¶
type TransactionsResp struct {
Transactions []SequencedTransactionResp
}
type TxOptions ¶
type TxOptions struct { ChainID SHA256Bytes // If specified, we won't hit the API to fetch it HeadBlockID SHA256Bytes // If provided, don't hit API to fetch it. This allows offline transaction signing. MaxNetUsageWords uint32 DelaySecs uint32 MaxCPUUsageMS uint8 // If you want to override the CPU usage (in counts of 1024) //ExtraKCPUUsage uint32 // If you want to *add* some CPU usage to the estimated amount (in counts of 1024) Compress CompressionType }
TxOptions represents options you want to pass to the transaction you're sending.
func (*TxOptions) FillFromChain ¶
FillFromChain will load ChainID (for signing transactions) and HeadBlockID (to fill transaction with TaPoS data).
type VoterInfo ¶
type VoterInfo struct { Owner AccountName `json:"owner"` Proxy AccountName `json:"proxy"` Producers []AccountName `json:"producers"` Staked JSONInt64 `json:"staked"` LastVoteWeight JSONFloat64 `json:"last_vote_weight"` ProxiedVoteWeight JSONFloat64 `json:"proxied_vote_weight"` IsProxy byte `json:"is_proxy"` DeferredTrxID uint32 `json:"deferred_trx_id"` LastUnstakeTime BlockTimestamp `json:"last_unstake_time"` Unstaking Asset `json:"unstaking"` }
type WaitWeight ¶
type WalletSigner ¶
type WalletSigner struct {
// contains filtered or unexported fields
}
`eosiowd` wallet-based signer
func NewWalletSigner ¶
func NewWalletSigner(api *API, walletName string) *WalletSigner
NewWalletSigner takes an `api`, because often the wallet will be a second endpoint, and not the server node with whom you're pushing transactions to.
func (*WalletSigner) AvailableKeys ¶
func (s *WalletSigner) AvailableKeys() (out []ecc.PublicKey, err error)
func (*WalletSigner) ImportPrivateKey ¶
func (s *WalletSigner) ImportPrivateKey(wifKey string) (err error)
func (*WalletSigner) Sign ¶
func (s *WalletSigner) Sign(tx *SignedTransaction, chainID []byte, requiredKeys ...ecc.PublicKey) (*SignedTransaction, error)