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 LogCids
- type Message
- func (m *Message) Caller() address.Address
- func (m *Message) ChainLength() int
- func (m *Message) Cid() cid.Cid
- func (m *Message) EffectiveGasPremium(baseFee abi.TokenAmount) abi.TokenAmount
- 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 MessageTrace
- type MpoolConfig
- type MsgMeta
- type Percent
- type RawMessage
- type RawSignedMessage
- type ReturnTrace
- 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) ParentMessageReceipts() cid.Cid
- 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 MessageTrace MsgRct ReturnTrace GasCharges []*GasTrace `cborgen:"maxlen=1000000000"` Subcalls []ExecutionTrace `cborgen:"maxlen=1000000000"` }
func (*ExecutionTrace) MarshalCBOR ¶ added in v1.23.0
func (t *ExecutionTrace) MarshalCBOR(w io.Writer) error
func (ExecutionTrace) SumGas ¶ added in v1.20.0
func (et ExecutionTrace) SumGas() GasTrace
func (*ExecutionTrace) UnmarshalCBOR ¶ added in v1.23.0
func (t *ExecutionTrace) UnmarshalCBOR(r io.Reader) (err error)
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 TotalGas int64 `json:"tg"` ComputeGas int64 `json:"cg"` StorageGas int64 `json:"sg"` TimeTaken time.Duration `json:"tt"` }
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) EffectiveGasPremium ¶ added in v1.23.0
func (m *Message) EffectiveGasPremium(baseFee abi.TokenAmount) abi.TokenAmount
EffectiveGasPremium returns the effective gas premium claimable by the miner given the supplied base fee. This method is not used anywhere except the Eth API.
Filecoin clamps the gas premium at GasFeeCap - BaseFee, if lower than the specified premium. Returns 0 if GasFeeCap is less than BaseFee.
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 MessageTrace ¶ added in v1.23.0
type MessageTrace struct { From address.Address To address.Address Value abi.TokenAmount Method abi.MethodNum Params []byte ParamsCodec uint64 }
func (*MessageTrace) MarshalCBOR ¶ added in v1.23.0
func (t *MessageTrace) MarshalCBOR(w io.Writer) error
func (*MessageTrace) UnmarshalCBOR ¶ added in v1.23.0
func (t *MessageTrace) UnmarshalCBOR(r io.Reader) (err error)
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 ReturnTrace ¶ added in v1.23.0
func (*ReturnTrace) MarshalCBOR ¶ added in v1.23.0
func (t *ReturnTrace) MarshalCBOR(w io.Writer) error
func (*ReturnTrace) UnmarshalCBOR ¶ added in v1.23.0
func (t *ReturnTrace) UnmarshalCBOR(r io.Reader) (err error)
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) ParentMessageReceipts ¶ added in v1.23.0
func (ts *TipSet) ParentMessageReceipts() cid.Cid
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.