Documentation
¶
Index ¶
- func DefaultBatchCallRPCLog(b []rpc.BatchElem, err error, duration time.Duration)
- func DefaultCallRPCLog(method string, args []interface{}, result interface{}, resultError error, ...)
- func NewBigInt(x uint64) *hexutil.Big
- func NewBigIntByRaw(x *big.Int) *hexutil.Big
- func NewBytes(input []byte) hexutil.Bytes
- func NewUint(x uint) *hexutil.Uint
- func NewUint64(x uint64) *hexutil.Uint64
- type AccountInfo
- type AccountNotFoundError
- type Address
- type Block
- type BlockHeader
- type BlockSummary
- type Bloom
- type Call
- type CallRequest
- type CallResult
- type ChainReorg
- type CheckBalanceAgainstTransactionResponse
- type ContractDeployOption
- type ContractMethodCallOption
- type ContractMethodSendOption
- type Create
- type CreateResult
- type DepositInfo
- type Epoch
- type Estimate
- type Hash
- type InternalTransferAction
- type LocalizedBlockTrace
- type LocalizedTrace
- type LocalizedTransactionTrace
- type Log
- type LogFilter
- type RewardInfo
- type SignedTransaction
- type SponsorInfo
- type Status
- type StorageChange
- type StorageRoot
- type SubscriptionLog
- type TokenSupplyInfo
- type TraceFilter
- type Transaction
- type TransactionReceipt
- type UnsignedTransaction
- func (tx *UnsignedTransaction) ApplyDefault()
- func (tx *UnsignedTransaction) Decode(data []byte, networkID uint32) error
- func (tx *UnsignedTransaction) Encode() ([]byte, error)
- func (tx *UnsignedTransaction) EncodeWithSignature(v byte, r, s []byte) ([]byte, error)
- func (tx *UnsignedTransaction) Hash() ([]byte, error)
- type UnsignedTransactionBase
- type VoteStakeInfo
- type WebsocketEpochResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultBatchCallRPCLog ¶ added in v1.0.6
func DefaultCallRPCLog ¶ added in v1.0.6
func NewBigIntByRaw ¶ added in v0.1.1
NewBigIntByRaw creates a hexutil.big with specified big.int value.
Types ¶
type AccountInfo ¶ added in v0.1.1
type AccountInfo struct { Balance *hexutil.Big `json:"balance"` // : U256, Nonce *hexutil.Big `json:"nonce"` // : U256, CodeHash Hash `json:"codeHash"` // : H256, StakingBalance *hexutil.Big `json:"stakingBalance"` // : U256, CollateralForStorage *hexutil.Big `json:"collateralForStorage"` // : U256, AccumulatedInterestReturn *hexutil.Big `json:"accumulatedInterestReturn"` // : U256, Admin Address `json:"admin"` }
type AccountNotFoundError ¶ added in v0.3.2
type AccountNotFoundError struct {
Account Address
}
AccountNotFoundError represents error of account not found.
func NewAccountNotFoundError ¶ added in v0.3.2
func NewAccountNotFoundError(address Address) *AccountNotFoundError
NewAccountNotFoundError creates a new AccountNotFoundError instance
func (*AccountNotFoundError) Error ¶ added in v0.3.2
func (e *AccountNotFoundError) Error() string
Error implements error interface
type Block ¶
type Block struct { BlockHeader Transactions []Transaction `json:"transactions"` }
Block represents a block in Conflux, including block header and a list of detailed transactions.
type BlockHeader ¶
type BlockHeader struct { Hash Hash `json:"hash"` ParentHash Hash `json:"parentHash"` Height *hexutil.Big `json:"height"` Miner Address `json:"miner"` DeferredStateRoot Hash `json:"deferredStateRoot"` DeferredReceiptsRoot Hash `json:"deferredReceiptsRoot"` DeferredLogsBloomHash Hash `json:"deferredLogsBloomHash"` Blame hexutil.Uint64 `json:"blame"` TransactionsRoot Hash `json:"transactionsRoot"` EpochNumber *hexutil.Big `json:"epochNumber"` GasLimit *hexutil.Big `json:"gasLimit"` GasUsed *hexutil.Big `json:"gasUsed"` Timestamp *hexutil.Big `json:"timestamp"` Difficulty *hexutil.Big `json:"difficulty"` PowQuality *hexutil.Big `json:"powQuality"` RefereeHashes []Hash `json:"refereeHashes"` Adaptive bool `json:"adaptive"` Nonce *hexutil.Big `json:"nonce"` Size *hexutil.Big `json:"size"` }
BlockHeader represents a block header in Conflux.
type BlockSummary ¶
type BlockSummary struct { BlockHeader Transactions []Hash `json:"transactions"` }
BlockSummary includes block header and a list of transaction hashes
type Call ¶ added in v0.1.1
type Call struct { From Address `json:"from"` To Address `json:"to"` Value hexutil.Big `json:"value"` Gas hexutil.Big `json:"gas"` Input hexutil.Bytes `json:"input"` CallType string `json:"callType"` }
independent action structs
type CallRequest ¶
type CallRequest struct { From *Address `json:"from,omitempty"` To *Address `json:"to,omitempty"` GasPrice *hexutil.Big `json:"gasPrice,omitempty"` Gas *hexutil.Big `json:"gas,omitempty"` Value *hexutil.Big `json:"value,omitempty"` // NOTE, cannot use *hexutil.Bytes or hexutil.Bytes here. // Otherwise, hexutil.Bytes.UnmarshalJSON will called to // unmarshal from nil and cause to errNonString error. Data *string `json:"data,omitempty"` Nonce *hexutil.Big `json:"nonce,omitempty"` StorageLimit *hexutil.Uint64 `json:"storageLimit,omitempty"` }
CallRequest represents a request to execute contract.
func (*CallRequest) FillByCallOption ¶ added in v0.1.1
func (request *CallRequest) FillByCallOption(option *ContractMethodCallOption)
FillByCallOption fills CallRequest fields by
func (*CallRequest) FillByUnsignedTx ¶
func (request *CallRequest) FillByUnsignedTx(tx *UnsignedTransaction)
FillByUnsignedTx fills CallRequest fields by tx
type CallResult ¶ added in v0.1.1
type ChainReorg ¶ added in v0.1.1
type CheckBalanceAgainstTransactionResponse ¶ added in v0.1.1
type CheckBalanceAgainstTransactionResponse struct { /// Whether the account should pay transaction fee by self. WillPayTxFee bool `json:"willPayTxFee"` /// Whether the account should pay collateral by self. WillPayCollateral bool `json:"willPayCollateral"` /// Whether the account balance is enough for this transaction. IsBalanceEnough bool `json:"isBalanceEnough"` }
type ContractDeployOption ¶
type ContractDeployOption struct { UnsignedTransactionBase // TimeoutInSecond represents the timeout of deploy contract, // default value is 0 which means never timeout Timeout time.Duration }
ContractDeployOption for setting option when deploying contract
type ContractMethodCallOption ¶
type ContractMethodCallOption struct { From *Address Nonce *hexutil.Big GasPrice *hexutil.Big Gas *hexutil.Big Value *hexutil.Big StorageLimit *hexutil.Uint64 ChainID *hexutil.Big Epoch *Epoch }
ContractMethodCallOption for setting option when call contract method
type ContractMethodSendOption ¶
type ContractMethodSendOption UnsignedTransactionBase
ContractMethodSendOption for setting option when call contract method
type CreateResult ¶ added in v0.1.1
type DepositInfo ¶ added in v0.1.1
type DepositInfo struct { AccumulatedInterestRate *hexutil.Big `json:"accumulatedInterestRate"` Amount *hexutil.Big `json:"amount"` DepositTime uint64 `json:"depositTime"` }
DepositInfo represents user deposit history
type Epoch ¶
type Epoch struct {
// contains filtered or unexported fields
}
Epoch represents an epoch in Conflux.
var ( EpochEarliest *Epoch = &Epoch{"earliest", nil} EpochLatestCheckpoint *Epoch = &Epoch{"latest_checkpoint", nil} EpochLatestConfirmed *Epoch = &Epoch{"latest_confirmed", nil} EpochLatestState *Epoch = &Epoch{"latest_state", nil} EpochLatestMined *Epoch = &Epoch{"latest_mined", nil} )
Const epoch definitions
func NewEpochNumber ¶
NewEpochNumber creates an instance of Epoch with specified number.
func NewEpochNumberBig ¶ added in v0.1.1
NewEpochNumberBig creates an instance of Epoch with specified big number.
func NewEpochNumberUint64 ¶ added in v0.1.1
NewEpochNumberUint64 creates an instance of Epoch with specified uint64 number.
func NewEpochWithBlockHash ¶
NewEpochWithBlockHash creates an instance of Epoch with specified block hash.
func (Epoch) MarshalText ¶
MarshalText implements the encoding.TextMarshaler interface.
func (*Epoch) UnmarshalJSON ¶ added in v0.1.1
UnmarshalJSON implements the json.Unmarshaler interface.
type Estimate ¶
type Estimate struct { GasLimit *hexutil.Big `json:"gasLimit"` GasUsed *hexutil.Big `json:"gasUsed"` StorageCollateralized *hexutil.Big `json:"storageCollateralized"` }
Estimate represents estimated gas will be used and storage will be collateralized when transaction excutes
type Hash ¶
type Hash string
Hash represents the 32 byte Keccak256 hash of arbitrary data in HEX format.
func (Hash) ToCommonHash ¶ added in v0.1.1
ToCommonHash converts hash to common.Hash
type InternalTransferAction ¶ added in v0.1.1
type LocalizedBlockTrace ¶ added in v0.1.1
type LocalizedBlockTrace struct { TransactionTraces []LocalizedTransactionTrace `json:"transactionTraces"` EpochHash Hash `json:"epochHash"` EpochNumber hexutil.Big `json:"epochNumber"` BlockHash Hash `json:"blockHash"` }
type LocalizedTrace ¶ added in v0.1.1
type LocalizedTrace struct { Action interface{} `json:"action"` Type string `json:"type"` EpochHash *Hash `json:"epochHash,omitempty"` EpochNumber *hexutil.Big `json:"epochNumber,omitempty"` BlockHash *Hash `json:"blockHash,omitempty"` TransactionPosition *hexutil.Uint64 `json:"transactionPosition,omitempty"` TransactionHash *Hash `json:"transactionHash,omitempty"` }
func (*LocalizedTrace) UnmarshalJSON ¶ added in v0.1.1
func (l *LocalizedTrace) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals Input and Init type from []byte to hexutil.Bytes
type LocalizedTransactionTrace ¶ added in v0.1.1
type LocalizedTransactionTrace struct { Traces []LocalizedTrace `json:"traces"` TransactionPosition hexutil.Uint64 `json:"transactionPosition"` TransactionHash Hash `json:"transactionHash"` }
type Log ¶
type Log struct { Address Address `json:"address"` Topics []Hash `json:"topics"` Data hexutil.Bytes `json:"data"` BlockHash *Hash `json:"blockHash"` EpochNumber *hexutil.Big `json:"epochNumber"` TransactionHash *Hash `json:"transactionHash"` TransactionIndex *hexutil.Big `json:"transactionIndex"` LogIndex *hexutil.Big `json:"logIndex"` TransactionLogIndex *hexutil.Big `json:"transactionLogIndex"` }
Log represents the event in a smart contract
type LogFilter ¶
type LogFilter struct { FromEpoch *Epoch `json:"fromEpoch,omitempty"` ToEpoch *Epoch `json:"toEpoch,omitempty"` BlockHashes []Hash `json:"blockHashes,omitempty"` Address []Address `json:"address,omitempty"` Topics [][]Hash `json:"topics,omitempty"` Limit *hexutil.Uint64 `json:"limit,omitempty"` }
LogFilter represents the filter of event in a smart contract.
func (*LogFilter) UnmarshalJSON ¶ added in v0.1.1
UnmarshalJSON implements the json.Unmarshaler interface.
type RewardInfo ¶ added in v0.1.1
type SignedTransaction ¶
type SignedTransaction struct { UnsignedTransaction UnsignedTransaction V byte R hexutil.Bytes S hexutil.Bytes }
SignedTransaction represents a transaction with signature, it is the transaction information for sending transaction.
func (*SignedTransaction) Decode ¶
func (tx *SignedTransaction) Decode(data []byte, networkID uint32) error
Decode decodes RLP encoded data to tx
func (*SignedTransaction) Encode ¶
func (tx *SignedTransaction) Encode() ([]byte, error)
Encode encodes tx and returns its RLP encoded data
type SponsorInfo ¶ added in v0.1.1
type SponsorInfo struct { SponsorForGas Address `json:"sponsorForGas"` SponsorForCollateral Address `json:"sponsorForCollateral"` SponsorGasBound *hexutil.Big `json:"sponsorGasBound"` SponsorBalanceForGas *hexutil.Big `json:"sponsorBalanceForGas"` SponsorBalanceForCollateral *hexutil.Big `json:"sponsorBalanceForCollateral"` }
type Status ¶ added in v0.1.1
type Status struct { BestHash Hash `json:"bestHash"` ChainID hexutil.Uint `json:"chainId"` NetworkID hexutil.Uint `json:"networkId"` EpochNumber hexutil.Uint64 `json:"epochNumber"` BlockNumber hexutil.Uint64 `json:"blockNumber"` PendingTxNumber hexutil.Uint64 `json:"pendingTxNumber"` LatestCheckpoint hexutil.Uint64 `json:"latestCheckpoint"` LatestConfirmed hexutil.Uint64 `json:"latestConfirmed"` LatestState hexutil.Uint64 `json:"latestState"` }
Status represents current blockchain status
type StorageChange ¶ added in v0.1.1
type StorageChange struct { Address Address `json:"address"` /// Number of storage collateral units to deposit / refund (absolute value). Collaterals hexutil.Uint64 `json:"collaterals"` }
StorageChange represents storage change information of the address
type StorageRoot ¶ added in v0.1.1
type SubscriptionLog ¶ added in v0.1.1
type SubscriptionLog struct { Log ChainReorg }
func (SubscriptionLog) IsRevertLog ¶ added in v0.1.1
func (s SubscriptionLog) IsRevertLog() bool
type TokenSupplyInfo ¶ added in v0.1.1
type TraceFilter ¶ added in v0.1.1
type TraceFilter struct { FromEpoch *Epoch `json:"fromEpoch"` ToEpoch *Epoch `json:"toEpoch"` BlockHashes []Hash `json:"blockHashes"` // action types could be "call","create","callResult","createResult","internalTransferAction" ActionTypes []string `json:"actionTypes"` After *hexutil.Uint64 `json:"after"` Count *hexutil.Uint64 `json:"count"` }
type Transaction ¶
type Transaction struct { Hash Hash `json:"hash"` Nonce *hexutil.Big `json:"nonce"` BlockHash *Hash `json:"blockHash"` TransactionIndex *hexutil.Uint64 `json:"transactionIndex"` From Address `json:"from"` To *Address `json:"to"` Value *hexutil.Big `json:"value"` GasPrice *hexutil.Big `json:"gasPrice"` Gas *hexutil.Big `json:"gas"` ContractCreated *Address `json:"contractCreated"` Data string `json:"data"` StorageLimit *hexutil.Big `json:"storageLimit"` EpochHeight *hexutil.Big `json:"epochHeight"` ChainID *hexutil.Big `json:"chainId"` Status *hexutil.Uint64 `json:"status"` //signature V *hexutil.Big `json:"v"` R *hexutil.Big `json:"r"` S *hexutil.Big `json:"s"` }
Transaction represents a transaction with signature in Conflux. it is the response from conflux node when sending rpc request, such as cfx_getTransactionByHash
type TransactionReceipt ¶
type TransactionReceipt struct { TransactionHash Hash `json:"transactionHash"` Index hexutil.Uint64 `json:"index"` BlockHash Hash `json:"blockHash"` EpochNumber *hexutil.Uint64 `json:"epochNumber"` From Address `json:"from"` To *Address `json:"to"` GasUsed *hexutil.Big `json:"gasUsed"` GasFee *hexutil.Big `json:"gasFee"` ContractCreated *Address `json:"contractCreated"` Logs []Log `json:"logs"` LogsBloom Bloom `json:"logsBloom"` StateRoot Hash `json:"stateRoot"` OutcomeStatus hexutil.Uint64 `json:"outcomeStatus"` TxExecErrorMsg *string `json:"txExecErrorMsg"` // Whether gas costs were covered by the sponsor. GasCoveredBySponsor bool `json:"gasCoveredBySponsor"` // Whether storage costs were covered by the sponsor. StorageCoveredBySponsor bool `json:"storageCoveredBySponsor"` // The amount of storage collateralized by the sender. StorageCollateralized hexutil.Uint64 `json:"storageCollateralized"` // Storage collaterals released during the execution of the transaction. StorageReleased []StorageChange `json:"storageReleased"` }
TransactionReceipt represents the transaction execution result in Conflux. it is the response from conflux node when sending rpc request, such as cfx_getTransactionReceipt
type UnsignedTransaction ¶
type UnsignedTransaction struct { UnsignedTransactionBase To *Address Data hexutil.Bytes }
UnsignedTransaction represents a transaction without signature, it is the transaction information for sending transaction.
func (*UnsignedTransaction) ApplyDefault ¶
func (tx *UnsignedTransaction) ApplyDefault()
ApplyDefault applys default value for these fields if they are empty
func (*UnsignedTransaction) Decode ¶
func (tx *UnsignedTransaction) Decode(data []byte, networkID uint32) error
Decode decodes RLP encoded data to tx
func (*UnsignedTransaction) Encode ¶
func (tx *UnsignedTransaction) Encode() ([]byte, error)
Encode encodes tx and returns its RLP encoded data
func (*UnsignedTransaction) EncodeWithSignature ¶
func (tx *UnsignedTransaction) EncodeWithSignature(v byte, r, s []byte) ([]byte, error)
EncodeWithSignature encodes tx with signature and return its RLP encoded data
func (*UnsignedTransaction) Hash ¶
func (tx *UnsignedTransaction) Hash() ([]byte, error)
Hash hashes the tx by keccak256 and returns the result
type UnsignedTransactionBase ¶
type UnsignedTransactionBase struct { From *Address Nonce *hexutil.Big GasPrice *hexutil.Big Gas *hexutil.Big Value *hexutil.Big StorageLimit *hexutil.Uint64 EpochHeight *hexutil.Uint64 ChainID *hexutil.Uint }
UnsignedTransactionBase represents a transaction without To, Data and signature
type VoteStakeInfo ¶ added in v0.1.1
type VoteStakeInfo struct { /// This is the number of tokens should be locked before /// `unlock_block_number`. Amount *hexutil.Big `json:"amount"` /// This is the timestamp when the vote right will be invalid, measured in /// the number of past blocks. UnlockBlockNumber hexutil.Uint64 `json:"unlockBlockNumber"` }
VoteStakeInfo represents user vote history
type WebsocketEpochResponse ¶ added in v0.1.1
type WebsocketEpochResponse struct { EpochHashesOrdered []Hash `json:"epochHashesOrdered"` EpochNumber *hexutil.Big `json:"epochNumber"` }
WebsocketEpochResponse represents result of epoch websocket subscription