Documentation ¶
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) 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) 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) PushSignedTransaction(tx *PackedTransaction) (out *PushTransactionFullResp, err error)
- func (api *API) SetSigner(s Signer)
- func (api *API) SignPushActions(a ...*Action) (out *PushTransactionFullResp, err error)
- func (api *API) SignPushActionsWithOpts(opts TxOptions, a ...*Action) (out *PushTransactionFullResp, err error)
- func (api *API) SignPushTransaction(tx *Transaction, opts *TxOptions) (out *PushTransactionFullResp, err 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 APIError
- 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 ChainSizeMessage
- type ClausePair
- type CompressionType
- type Currency
- type CurrencyBalanceResp
- type CurrencyName
- type Cycles
- type DataAccess
- type Decoder
- type DeferredTransaction
- type DelegatedBandwidth
- type Encoder
- type Extension
- type FieldDef
- type GetCodeResp
- type GetRequiredKeysResp
- type GetTableRowsRequest
- type GetTableRowsResp
- type GoAwayMessage
- type GoAwayReason
- type HandshakeMessage
- type HexBytes
- type IDListMode
- type InfoResp
- 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)
- 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 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
- 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 TransactionWithID
- type TransactionsResp
- type Trx
- type TrxHeader
- 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 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) 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) 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) PushSignedTransaction ¶
func (api *API) PushSignedTransaction(tx *PackedTransaction) (out *PushTransactionFullResp, err error)
func (*API) SignPushActions ¶
func (api *API) SignPushActions(a ...*Action) (out *PushTransactionFullResp, err error)
func (*API) SignPushActionsWithOpts ¶
func (api *API) SignPushActionsWithOpts(opts TxOptions, a ...*Action) (out *PushTransactionFullResp, err error)
func (*API) SignPushTransaction ¶
func (api *API) SignPushTransaction(tx *Transaction, opts *TxOptions) (out *PushTransactionFullResp, err error)
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 APIError ¶
type APIError struct { Code int Message string ErrorStruct struct { Code int Name string What string Details []struct { Message string File string LineNumber int `json:"line_number"` Method string } } `json:"error"` }
APIError represents the errors as reported by the server
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 string `json:"net_weight"` CPUWeight string `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) 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) 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"` //BlockMRoot SHA256Bytes `json:"block_mroot"` ScheduleVersion uint32 `json:"schedule_version"` NewProducers OptionalProducerSchedule `json:"new_producers"` HeaderExtensions []*Extension `json:"header_extensions"` }
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"` }
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 ¶
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 ¶
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_bount"` 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 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 uint8
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 string `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 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
}
func (*OptionalProducerSchedule) OptionalBinaryMarshalerPresent ¶
func (a *OptionalProducerSchedule) OptionalBinaryMarshalerPresent() bool
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:"-"` }
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 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) 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"` }
type PermissionLevelWeight ¶
type PermissionLevelWeight struct { Permission PermissionLevel `json:"permission"` Weight uint16 `json:"weight"` // weight_type }
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 { }
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(opts TxOptions) (*PackedTransaction, 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 uint64 `json:"ram_bytes"` }
type Transaction ¶
type Transaction struct { // WARN: is a `variant` in C++, can be a SignedTransaction or a Transaction. TransactionHeader ContextFreeActions []*Action `json:"context_free_actions"` Actions []*Action `json:"actions"` Extensions []*Extension `json:"transaction_extensions"` }
func (*Transaction) ID ¶
func (tx *Transaction) ID() string
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 Trx Trx `json:"trx,string"` }
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 { TransactionID string `json:"transaction_id"` Transaction struct { Signatures []ecc.Signature `json:"signatures"` Compression CompressionType `json:"compression"` PackedContextFreeData HexBytes `json:"packed_context_free_data"` ContextFreeData []HexBytes `json:"context_free_data"` PackedTransaction HexBytes `json:"packed_transaction"` Transaction Transaction `json:"transaction"` } `json:"transaction"` }
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 TransactionWithID ¶
type TransactionWithID struct { ID uint8 // 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 Trx ¶
type Trx struct { TrxHeader Transaction Transaction `json:"transaction"` }
type TxOptions ¶
type TxOptions struct { MaxNetUsageWords uint32 Delay time.Duration 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.
type VoterInfo ¶
type VoterInfo struct { Owner AccountName `json:"owner"` Proxy AccountName `json:"proxy"` Producers []AccountName `json:"producers"` Staked string `json:"staked"` LastVoteWeight string `json:"last_vote_weight"` ProxiedVoteWeight string `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)
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
btcsuite
|
|
btcd/btcec
Package btcec implements support for the elliptic curves needed for bitcoin.
|
Package btcec implements support for the elliptic curves needed for bitcoin. |
btcutil
Package btcutil provides bitcoin-specific convenience functions and types.
|
Package btcutil provides bitcoin-specific convenience functions and types. |
btcutil/base58
Package base58 provides an API for working with modified base58 and Base58Check encodings.
|
Package base58 provides an API for working with modified base58 and Base58Check encodings. |
cmd
|
|