Documentation ¶
Index ¶
- Constants
- Variables
- func BigCmp(a, b BigInt) int
- func BigDivFloat(num, den BigInt) float64
- func CidArrsContains(a []cid.Cid, b cid.Cid) bool
- func CidArrsEqual(a, b []cid.Cid) bool
- func CidArrsSubset(a, b []cid.Cid) bool
- func DeciStr(bi BigInt) string
- func IsTicketWinner(vrfTicket []byte, mypow BigInt, totpow BigInt) bool
- func SizeStr(bi BigInt) string
- type Actor
- type ActorV4
- type ActorV5
- type BeaconEntry
- type BigInt
- type BlockHeader
- func (blk *BlockHeader) Cid() cid.Cid
- func (blk *BlockHeader) IsValidated() bool
- func (blk *BlockHeader) LastTicket() *Ticket
- func (t *BlockHeader) MarshalCBOR(w io.Writer) error
- func (blk *BlockHeader) Serialize() ([]byte, error)
- func (blk *BlockHeader) SetValidated()
- func (blk *BlockHeader) SigningBytes() ([]byte, error)
- func (blk *BlockHeader) ToStorageBlock() (block.Block, error)
- func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error)
- type BlockMsg
- type ChainMsg
- type ElectionProof
- type Event
- type EventEntry
- type ExecutionTrace
- type ExpTipSet
- type FIL
- type FilterID
- type FullBlock
- type GasTrace
- type KeyInfo
- type KeyStore
- type KeyType
- type Loc
- type LogCids
- type Message
- func (m *Message) Caller() address.Address
- func (m *Message) ChainLength() int
- func (m *Message) Cid() cid.Cid
- func (m *Message) EqualCall(o *Message) bool
- func (m *Message) Equals(o *Message) bool
- func (t *Message) MarshalCBOR(w io.Writer) error
- func (m *Message) MarshalJSON() ([]byte, error)
- func (m *Message) Receiver() address.Address
- func (m *Message) RequiredFunds() BigInt
- func (m *Message) Serialize() ([]byte, error)
- func (m *Message) ToStorageBlock() (block.Block, error)
- func (t *Message) UnmarshalCBOR(r io.Reader) (err error)
- func (m *Message) VMMessage() *Message
- func (m *Message) ValidForBlockInclusion(minGas int64, version network.Version) error
- func (m *Message) ValueReceived() abi.TokenAmount
- type MessageReceipt
- type MessageReceiptVersion
- type MpoolConfig
- type MsgMeta
- type Percent
- type RawMessage
- type RawSignedMessage
- type SignedMessage
- func (sm *SignedMessage) ChainLength() int
- func (sm *SignedMessage) Cid() cid.Cid
- func (t *SignedMessage) MarshalCBOR(w io.Writer) error
- func (sm *SignedMessage) MarshalJSON() ([]byte, error)
- func (sm *SignedMessage) Serialize() ([]byte, error)
- func (sm *SignedMessage) Size() int
- func (sm *SignedMessage) ToStorageBlock() (block.Block, error)
- func (t *SignedMessage) UnmarshalCBOR(r io.Reader) (err error)
- func (sm *SignedMessage) VMMessage() *Message
- type StateInfo0
- type StateRoot
- type StateTree
- type StateTreeVersion
- type Storage
- type Ticket
- type TipSet
- func (ts *TipSet) Blocks() []*BlockHeader
- func (ts *TipSet) Cids() []cid.Cid
- func (ts *TipSet) Contains(oc cid.Cid) bool
- func (ts *TipSet) Equals(ots *TipSet) bool
- func (ts *TipSet) Height() abi.ChainEpoch
- func (ts *TipSet) IsChildOf(parent *TipSet) bool
- func (ts *TipSet) Key() TipSetKey
- func (ts *TipSet) MarshalCBOR(w io.Writer) error
- func (ts *TipSet) MarshalJSON() ([]byte, error)
- func (ts *TipSet) MinTicket() *Ticket
- func (ts *TipSet) MinTicketBlock() *BlockHeader
- func (ts *TipSet) MinTimestamp() uint64
- func (ts *TipSet) ParentState() cid.Cid
- func (ts *TipSet) ParentWeight() BigInt
- func (ts *TipSet) Parents() TipSetKey
- func (ts *TipSet) String() string
- func (ts *TipSet) UnmarshalCBOR(r io.Reader) error
- func (ts *TipSet) UnmarshalJSON(b []byte) error
- type TipSetKey
- func (k TipSetKey) Bytes() []byte
- func (k TipSetKey) Cid() (cid.Cid, error)
- func (k TipSetKey) Cids() []cid.Cid
- func (k TipSetKey) IsEmpty() bool
- func (k TipSetKey) MarshalCBOR(writer io.Writer) error
- func (k TipSetKey) MarshalJSON() ([]byte, error)
- func (k TipSetKey) String() string
- func (k TipSetKey) ToStorageBlock() (block.Block, error)
- func (k *TipSetKey) UnmarshalCBOR(reader io.Reader) error
- func (k *TipSetKey) UnmarshalJSON(b []byte) error
Constants ¶
const ( EventFlagIndexedKey = 0b00000001 EventFlagIndexedValue = 0b00000010 )
EventEntry flags defined in fvm_shared
const BigIntMaxSerializedLen = 128 // is this big enough? or too big?
const EventAMTBitwidth = 5
const MessageVersion = 0
const TestGasLimit = 100e6
Variables ¶
var ( ErrKeyInfoNotFound = fmt.Errorf("key info not found") ErrKeyExists = fmt.Errorf("key already exists") )
var AttoFil = NewInt(1)
var EmptyInt = BigInt{}
var EmptyTSK = TipSetKey{}
var ErrActorNotFound = errors.New("actor not found")
var FemtoFil = BigMul(AttoFil, NewInt(1000))
var MaxWinCount = 3 * int64(build.BlocksPerEpoch)
var NanoFil = BigMul(PicoFil, NewInt(1000))
var PicoFil = BigMul(FemtoFil, NewInt(1000))
var TotalFilecoinInt = FromFil(build.FilBase)
Functions ¶
func BigDivFloat ¶ added in v1.11.0
func CidArrsContains ¶ added in v0.3.0
func CidArrsContains(a []cid.Cid, b cid.Cid) bool
func CidArrsEqual ¶
func CidArrsEqual(a, b []cid.Cid) bool
func CidArrsSubset ¶ added in v0.5.0
func CidArrsSubset(a, b []cid.Cid) bool
Types ¶
type ActorV4 ¶ added in v1.20.0
type ActorV4 struct { // Identifies the type of actor (string coded as a CID), see `chain/actors/actors.go`. Code cid.Cid Head cid.Cid Nonce uint64 Balance BigInt }
Actor State for state tree version up to 4
type ActorV5 ¶ added in v1.20.0
type ActorV5 struct { // Identifies the type of actor (string coded as a CID), see `chain/actors/actors.go`. Code cid.Cid Head cid.Cid Nonce uint64 Balance BigInt // Deterministic Address. Address *address.Address }
Actor State for state tree version 5
type BeaconEntry ¶ added in v0.3.0
func NewBeaconEntry ¶ added in v0.3.0
func NewBeaconEntry(round uint64, data []byte) BeaconEntry
func (*BeaconEntry) MarshalCBOR ¶ added in v0.3.0
func (t *BeaconEntry) MarshalCBOR(w io.Writer) error
func (*BeaconEntry) UnmarshalCBOR ¶ added in v0.3.0
func (t *BeaconEntry) UnmarshalCBOR(r io.Reader) (err error)
type BlockHeader ¶
type BlockHeader struct { Miner address.Address // 0 unique per block/miner Ticket *Ticket // 1 unique per block/miner: should be a valid VRF ElectionProof *ElectionProof // 2 unique per block/miner: should be a valid VRF BeaconEntries []BeaconEntry // 3 identical for all blocks in same tipset WinPoStProof []proof.PoStProof // 4 unique per block/miner Parents []cid.Cid // 5 identical for all blocks in same tipset ParentWeight BigInt // 6 identical for all blocks in same tipset Height abi.ChainEpoch // 7 identical for all blocks in same tipset ParentStateRoot cid.Cid // 8 identical for all blocks in same tipset ParentMessageReceipts cid.Cid // 9 identical for all blocks in same tipset Messages cid.Cid // 10 unique per block BLSAggregate *crypto.Signature // 11 unique per block: aggrregate of BLS messages from above Timestamp uint64 // 12 identical for all blocks in same tipset / hard-tied to the value of Height above BlockSig *crypto.Signature // 13 unique per block/miner: miner signature ForkSignaling uint64 // 14 currently unused/undefined ParentBaseFee abi.TokenAmount // 15 identical for all blocks in same tipset: the base fee after executing parent tipset // contains filtered or unexported fields }
func DecodeBlock ¶
func DecodeBlock(b []byte) (*BlockHeader, error)
func (*BlockHeader) Cid ¶
func (blk *BlockHeader) Cid() cid.Cid
func (*BlockHeader) IsValidated ¶ added in v0.3.1
func (blk *BlockHeader) IsValidated() bool
func (*BlockHeader) LastTicket ¶
func (blk *BlockHeader) LastTicket() *Ticket
func (*BlockHeader) MarshalCBOR ¶
func (t *BlockHeader) MarshalCBOR(w io.Writer) error
func (*BlockHeader) Serialize ¶
func (blk *BlockHeader) Serialize() ([]byte, error)
func (*BlockHeader) SetValidated ¶ added in v0.3.1
func (blk *BlockHeader) SetValidated()
func (*BlockHeader) SigningBytes ¶
func (blk *BlockHeader) SigningBytes() ([]byte, error)
func (*BlockHeader) ToStorageBlock ¶
func (blk *BlockHeader) ToStorageBlock() (block.Block, error)
func (*BlockHeader) UnmarshalCBOR ¶
func (t *BlockHeader) UnmarshalCBOR(r io.Reader) (err error)
type BlockMsg ¶
type BlockMsg struct { Header *BlockHeader BlsMessages []cid.Cid SecpkMessages []cid.Cid }
func DecodeBlockMsg ¶
type ElectionProof ¶ added in v0.3.0
func (*ElectionProof) ComputeWinCount ¶ added in v0.5.0
func (ep *ElectionProof) ComputeWinCount(power BigInt, totalPower BigInt) int64
ComputeWinCount uses VRFProof to compute number of wins The algorithm is based on Algorand's Sortition with Binomial distribution replaced by Poisson distribution.
func (*ElectionProof) MarshalCBOR ¶ added in v0.3.0
func (t *ElectionProof) MarshalCBOR(w io.Writer) error
func (*ElectionProof) UnmarshalCBOR ¶ added in v0.3.0
func (t *ElectionProof) UnmarshalCBOR(r io.Reader) (err error)
type Event ¶ added in v1.20.0
type Event struct { // The ID of the actor that emitted this event. Emitter abi.ActorID // Key values making up this event. Entries []EventEntry }
func DecodeEvents ¶ added in v1.20.0
DecodeEvents decodes a CBOR list of CBOR-encoded events.
type EventEntry ¶ added in v1.20.0
type EventEntry struct { // A bitmap conveying metadata or hints about this entry. Flags uint8 // The key of this event entry Key string // The event value's codec Codec uint64 // The event value Value []byte }
func (*EventEntry) MarshalCBOR ¶ added in v1.20.0
func (t *EventEntry) MarshalCBOR(w io.Writer) error
func (*EventEntry) UnmarshalCBOR ¶ added in v1.20.0
func (t *EventEntry) UnmarshalCBOR(r io.Reader) (err error)
type ExecutionTrace ¶ added in v0.4.0
type ExecutionTrace struct { Msg *Message MsgRct *MessageReceipt Error string Duration time.Duration GasCharges []*GasTrace Subcalls []ExecutionTrace }
func (ExecutionTrace) SumGas ¶ added in v1.20.0
func (et ExecutionTrace) SumGas() GasTrace
type ExpTipSet ¶
type ExpTipSet struct { Cids []cid.Cid Blocks []*BlockHeader Height abi.ChainEpoch }
type FIL ¶
type FIL BigInt
func MustParseFIL ¶ added in v0.10.2
func (FIL) MarshalText ¶ added in v0.5.0
func (FIL) UnmarshalText ¶ added in v0.5.0
type FullBlock ¶
type FullBlock struct { Header *BlockHeader BlsMessages []*Message SecpkMessages []*SignedMessage }
type GasTrace ¶ added in v0.4.0
type GasTrace struct { Name string Location []Loc `json:"loc"` TotalGas int64 `json:"tg"` ComputeGas int64 `json:"cg"` StorageGas int64 `json:"sg"` TotalVirtualGas int64 `json:"vtg"` VirtualComputeGas int64 `json:"vcg"` VirtualStorageGas int64 `json:"vsg"` TimeTaken time.Duration `json:"tt"` Extra interface{} `json:"ex,omitempty"` Callers []uintptr `json:"-"` }
func (*GasTrace) MarshalJSON ¶ added in v0.4.0
type KeyStore ¶
type KeyStore interface { // List lists all the keys stored in the KeyStore List() ([]string, error) // Get gets a key out of keystore and returns KeyInfo corresponding to named key Get(string) (KeyInfo, error) // Put saves a key info under given name Put(string, KeyInfo) error // Delete removes a key from keystore Delete(string) error }
KeyStore is used for storing secret keys
type KeyType ¶ added in v0.10.1
type KeyType string
KeyType defines a type of a key
func (*KeyType) UnmarshalJSON ¶ added in v0.10.1
type LogCids ¶
type LogCids []cid.Cid
func (LogCids) MarshalLogArray ¶
func (cids LogCids) MarshalLogArray(ae zapcore.ArrayEncoder) error
type Message ¶
type Message struct { Version uint64 To address.Address From address.Address Nonce uint64 Value abi.TokenAmount GasLimit int64 GasFeeCap abi.TokenAmount GasPremium abi.TokenAmount Method abi.MethodNum Params []byte }
func DecodeMessage ¶
func (*Message) ChainLength ¶ added in v0.3.0
func (*Message) MarshalJSON ¶ added in v0.10.1
func (*Message) RequiredFunds ¶
func (*Message) ValidForBlockInclusion ¶ added in v0.3.0
func (*Message) ValueReceived ¶ added in v0.3.0
func (m *Message) ValueReceived() abi.TokenAmount
type MessageReceipt ¶
type MessageReceipt struct { ExitCode exitcode.ExitCode Return []byte GasUsed int64 EventsRoot *cid.Cid // Root of Event AMT with bitwidth = EventAMTBitwidth // contains filtered or unexported fields }
func NewMessageReceiptV0 ¶ added in v1.20.0
func NewMessageReceiptV0(exitcode exitcode.ExitCode, ret []byte, gasUsed int64) MessageReceipt
NewMessageReceiptV0 creates a new pre FIP-0049 receipt with no capability to convey events.
func NewMessageReceiptV1 ¶ added in v1.20.0
func NewMessageReceiptV1(exitcode exitcode.ExitCode, ret []byte, gasUsed int64, eventsRoot *cid.Cid) MessageReceipt
NewMessageReceiptV1 creates a new pre FIP-0049 receipt with the ability to convey events.
func (*MessageReceipt) Equals ¶
func (mr *MessageReceipt) Equals(o *MessageReceipt) bool
func (*MessageReceipt) MarshalCBOR ¶
func (mr *MessageReceipt) MarshalCBOR(w io.Writer) error
func (*MessageReceipt) UnmarshalCBOR ¶
func (mr *MessageReceipt) UnmarshalCBOR(r io.Reader) (err error)
func (*MessageReceipt) Version ¶ added in v1.20.0
func (mr *MessageReceipt) Version() MessageReceiptVersion
type MessageReceiptVersion ¶ added in v1.20.0
type MessageReceiptVersion byte
const ( // MessageReceiptV0 refers to pre FIP-0049 receipts. MessageReceiptV0 MessageReceiptVersion = 0 // MessageReceiptV1 refers to post FIP-0049 receipts. MessageReceiptV1 MessageReceiptVersion = 1 )
type MpoolConfig ¶ added in v0.5.0
type MpoolConfig struct { PriorityAddrs []address.Address SizeLimitHigh int SizeLimitLow int ReplaceByFeeRatio Percent PruneCooldown time.Duration GasLimitOverestimation float64 }
func (*MpoolConfig) Clone ¶ added in v0.5.0
func (mc *MpoolConfig) Clone() *MpoolConfig
type Percent ¶ added in v1.20.2
type Percent int64
Percent stores a signed percentage as an int64. When converted to a string (or json), it's stored as a decimal with two places (e.g., 100% -> 1.00).
func (Percent) MarshalJSON ¶ added in v1.20.2
func (*Percent) UnmarshalJSON ¶ added in v1.20.2
type RawMessage ¶ added in v0.10.1
type RawMessage Message
type RawSignedMessage ¶ added in v0.10.1
type RawSignedMessage SignedMessage
type SignedMessage ¶
func DecodeSignedMessage ¶
func DecodeSignedMessage(data []byte) (*SignedMessage, error)
func (*SignedMessage) ChainLength ¶ added in v0.3.0
func (sm *SignedMessage) ChainLength() int
func (*SignedMessage) Cid ¶
func (sm *SignedMessage) Cid() cid.Cid
func (*SignedMessage) MarshalCBOR ¶
func (t *SignedMessage) MarshalCBOR(w io.Writer) error
func (*SignedMessage) MarshalJSON ¶ added in v0.10.1
func (sm *SignedMessage) MarshalJSON() ([]byte, error)
func (*SignedMessage) Serialize ¶
func (sm *SignedMessage) Serialize() ([]byte, error)
func (*SignedMessage) Size ¶
func (sm *SignedMessage) Size() int
func (*SignedMessage) ToStorageBlock ¶
func (sm *SignedMessage) ToStorageBlock() (block.Block, error)
func (*SignedMessage) UnmarshalCBOR ¶
func (t *SignedMessage) UnmarshalCBOR(r io.Reader) (err error)
func (*SignedMessage) VMMessage ¶
func (sm *SignedMessage) VMMessage() *Message
type StateInfo0 ¶ added in v0.9.0
type StateInfo0 struct{}
TODO: version this.
func (*StateInfo0) MarshalCBOR ¶ added in v0.9.0
func (t *StateInfo0) MarshalCBOR(w io.Writer) error
func (*StateInfo0) UnmarshalCBOR ¶ added in v0.9.0
func (t *StateInfo0) UnmarshalCBOR(r io.Reader) (err error)
type StateRoot ¶ added in v0.7.2
type StateRoot struct { // State tree version. Version StateTreeVersion // Actors tree. The structure depends on the state root version. Actors cid.Cid // Info. The structure depends on the state root version. Info cid.Cid }
type StateTree ¶
type StateTree interface { SetActor(addr address.Address, act *Actor) error // GetActor returns the actor from any type of `addr` provided. GetActor(addr address.Address) (*Actor, error) Version() StateTreeVersion }
type StateTreeVersion ¶ added in v0.9.0
type StateTreeVersion uint64
StateTreeVersion is the version of the state tree itself, independent of the network version or the actors version.
const ( // StateTreeVersion0 corresponds to actors < v2. StateTreeVersion0 StateTreeVersion = iota // StateTreeVersion1 corresponds to actors v2 StateTreeVersion1 // StateTreeVersion2 corresponds to actors v3. StateTreeVersion2 // StateTreeVersion3 corresponds to actors v4. StateTreeVersion3 // StateTreeVersion4 corresponds to actors v5 and above. StateTreeVersion4 // StateTreeVersion5 corresponds to actors v10 and above. StateTreeVersion5 )
type Storage ¶
type Storage interface { Put(cbg.CBORMarshaler) (cid.Cid, aerrors.ActorError) Get(cid.Cid, cbg.CBORUnmarshaler) aerrors.ActorError GetHead() cid.Cid // Commit sets the new head of the actors state as long as the current // state matches 'oldh' Commit(oldh cid.Cid, newh cid.Cid) aerrors.ActorError }
type TipSet ¶
type TipSet struct {
// contains filtered or unexported fields
}
func NewTipSet ¶
func NewTipSet(blks []*BlockHeader) (*TipSet, error)
Checks:
- A tipset is composed of at least one block. (Because of our variable number of blocks per tipset, determined by randomness, we do not impose an upper limit.)
- All blocks have the same height.
- All blocks have the same parents (same number of them and matching CIDs).
func (*TipSet) Blocks ¶
func (ts *TipSet) Blocks() []*BlockHeader
func (*TipSet) Height ¶
func (ts *TipSet) Height() abi.ChainEpoch
func (*TipSet) MarshalJSON ¶
func (*TipSet) MinTicketBlock ¶
func (ts *TipSet) MinTicketBlock() *BlockHeader
func (*TipSet) MinTimestamp ¶
func (*TipSet) ParentState ¶
func (ts *TipSet) ParentState() cid.Cid
func (*TipSet) ParentWeight ¶
func (*TipSet) UnmarshalJSON ¶
type TipSetKey ¶
type TipSetKey struct {
// contains filtered or unexported fields
}
A TipSetKey is an immutable collection of CIDs forming a unique key for a tipset. The CIDs are assumed to be distinct and in canonical order. Two keys with the same CIDs in a different order are not considered equal. TipSetKey is a lightweight value type, and may be compared for equality with ==.
func NewTipSetKey ¶
func NewTipSetKey(cids ...cid.Cid) TipSetKey
NewTipSetKey builds a new key from a slice of CIDs. The CIDs are assumed to be ordered correctly.
func TipSetKeyFromBytes ¶
TipSetKeyFromBytes wraps an encoded key, validating correct decoding.
func (TipSetKey) Cids ¶
func (k TipSetKey) Cids() []cid.Cid
Cids returns a slice of the CIDs comprising this key.