Documentation
¶
Index ¶
- func IsRpcJsonError(err error) bool
- func NewBigInt(x int64) *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
- func WrapError(err error, msg string) error
- func WrapErrorf(err error, msgPattern string, values ...interface{}) error
- type AccountInfo
- type AccountNotFoundError
- type Address
- type AddressType
- type Block
- type BlockHeader
- type BlockSummary
- type Bloom
- type CallRequest
- type CheckBalanceAgainstTransactionResponse
- type ContractDeployOption
- type ContractMethodCallOption
- type ContractMethodSendOption
- type DepositInfo
- type Epoch
- type Estimate
- type Hash
- type Log
- type LogEntry
- type LogFilter
- type RewardInfo
- type SignedTransaction
- type SponsorInfo
- type Status
- type StorageChange
- type StorageRoot
- type TokenSupplyInfo
- type Transaction
- type TransactionReceipt
- type UnsignedTransaction
- func (tx *UnsignedTransaction) ApplyDefault()
- func (tx *UnsignedTransaction) Decode(data []byte) 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
- type WrappedError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsRpcJsonError ¶ added in v0.4.1
IsRpcJsonError returns true if err is rpc error
func NewBigIntByRaw ¶ added in v0.1.1
NewBigIntByRaw creates a hexutil.big with specified big.int value.
func WrapErrorf ¶
WrapErrorf creates a WrappedError with formated message
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 Address ¶
type Address string
Address represents the 20 byte address of an Conflux account in HEX format.
func NewAddress ¶
NewAddress creates an address with specified HEX string.
func NewAddressFromCommon ¶ added in v0.4.6
NewAddressFromCommon creates an address from common.Address
func (Address) GetAddressType ¶ added in v0.4.2
func (address Address) GetAddressType() (AddressType, error)
GetAddressType returuns the address type, address with prefix "0x1" is normal address and "0x8" is contract address
func (Address) IsZero ¶ added in v0.3.0
IsZero returns true if the address is "0x0000000000000000000000000000000000000000" or "0X0000000000000000000000000000000000000000", otherwise returns false
func (Address) ToCommonAddress ¶
ToCommonAddress converts address to common.Address
type AddressType ¶ added in v0.4.2
type AddressType string
const ( NormalAddress AddressType = "Normal" CustomContractAddress AddressType = "CustomContract" InternalContractAddress AddressType = "InternalContract" InvalidAddress AddressType = "Invalid" )
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,omitempty"` 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,omitempty"` RefereeHashes []Hash `json:"refereeHashes"` Adaptive bool `json:"adaptive"` Nonce *hexutil.Big `json:"nonce"` Size *hexutil.Big `json:"size,omitempty"` }
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 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"` 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 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 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 NewEpochWithBlockHash ¶
NewEpochWithBlockHash creates an instance of Epoch with specified block hash.
func (*Epoch) MarshalText ¶
MarshalText implements the encoding.TextMarshaler 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 Log ¶
type Log struct { LogEntry BlockHash *Hash `json:"blockHash,omitempty"` EpochNumber *hexutil.Big `json:"epochNumber,omitempty"` TransactionHash *Hash `json:"transactionHash,omitempty"` TransactionIndex *hexutil.Big `json:"transactionIndex,omitempty"` LogIndex *hexutil.Big `json:"logIndex,omitempty"` TransactionLogIndex *hexutil.Big `json:"transactionLogIndex,omitempty"` // Type string `json:"type"` Removed bool `json:"removed"` }
Log represents the event in a smart contract
type LogEntry ¶
type LogEntry struct { Address Address `json:"address"` Topics []Hash `json:"topics"` Data string `json:"data"` }
LogEntry represents a summary of 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 *uint8 `json:"limit,omitempty"` }
LogFilter represents the filter of event in a smart contract.
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) 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"` BlockNumber *hexutil.Uint64 `json:"blockNumber"` ChainID *hexutil.Uint `json:"chainId"` EpochNumber *hexutil.Uint64 `json:"epochNumber"` PendingTxNumber *hexutil.Uint64 `json:"pendingTxNumber"` }
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 TokenSupplyInfo ¶ added in v0.1.1
type Transaction ¶
type Transaction struct { Hash Hash `json:"hash"` Nonce *hexutil.Big `json:"nonce"` BlockHash *Hash `json:"blockHash,omitempty"` TransactionIndex *hexutil.Uint64 `json:"transactionIndex,omitempty"` From Address `json:"from"` To *Address `json:"to,omitempty"` Value *hexutil.Big `json:"value"` GasPrice *hexutil.Big `json:"gasPrice"` Gas *hexutil.Big `json:"gas"` ContractCreated *Address `json:"contractCreated,omitempty"` Data string `json:"data"` StorageLimit *hexutil.Big `json:"storageLimit,omitempty"` EpochHeight *hexutil.Big `json:"epochHeight,omitempty"` ChainID *hexutil.Big `json:"chainId,omitempty"` Status *hexutil.Uint64 `json:"status,omitempty"` //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,omitempty"` From Address `json:"from"` To *Address `json:"to,omitempty"` GasUsed *hexutil.Big `json:"gasUsed"` GasFee *hexutil.Big `json:"gasFee"` ContractCreated *Address `json:"contractCreated,omitempty"` Logs []LogEntry `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) 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
type WrappedError ¶
type WrappedError struct {
// contains filtered or unexported fields
}
WrappedError for wrapping old error and new error message
func (WrappedError) Unwrap ¶
func (e WrappedError) Unwrap() error
Unwrap for getting internal error by errors.Unwrap(wrappedError)