lotus/genesis/types.go

84 lines
1.4 KiB
Go
Raw Normal View History

2019-11-25 04:45:13 +00:00
package genesis
2019-11-28 22:50:58 +00:00
import (
2020-02-12 00:58:55 +00:00
"encoding/json"
"github.com/filecoin-project/go-address"
2020-02-08 02:18:32 +00:00
"github.com/filecoin-project/specs-actors/actors/abi"
2020-02-11 20:48:03 +00:00
"github.com/filecoin-project/specs-actors/actors/builtin/market"
2020-02-27 00:42:39 +00:00
"github.com/ipfs/go-cid"
2020-02-12 02:13:19 +00:00
"github.com/libp2p/go-libp2p-core/peer"
2020-02-12 00:58:55 +00:00
)
2020-02-08 02:18:32 +00:00
2020-02-12 00:58:55 +00:00
type ActorType string
2020-02-13 00:15:33 +00:00
2020-02-12 00:58:55 +00:00
const (
TAccount ActorType = "account"
TMultisig ActorType = "multisig"
2019-11-28 22:50:58 +00:00
)
2019-11-25 04:45:13 +00:00
type PreSeal struct {
CommR cid.Cid
CommD cid.Cid
SectorID abi.SectorNumber
Deal market.DealProposal
2020-06-15 16:30:49 +00:00
ProofType abi.RegisteredSealProof
2019-11-25 04:45:13 +00:00
}
2020-02-12 00:58:55 +00:00
type Miner struct {
2019-11-28 22:50:58 +00:00
Owner address.Address
Worker address.Address
PeerId peer.ID //nolint:golint
2019-11-28 22:50:58 +00:00
2020-02-11 20:48:03 +00:00
MarketBalance abi.TokenAmount
PowerBalance abi.TokenAmount
2020-02-08 02:18:32 +00:00
SectorSize abi.SectorSize
2019-11-28 22:50:58 +00:00
Sectors []*PreSeal
2020-02-12 00:58:55 +00:00
}
type AccountMeta struct {
Owner address.Address // bls / secpk
}
func (am *AccountMeta) ActorMeta() json.RawMessage {
out, err := json.Marshal(am)
if err != nil {
panic(err)
}
return out
}
2020-02-12 00:58:55 +00:00
type MultisigMeta struct {
Signers []address.Address
Threshold int
VestingDuration int
VestingStart int
}
func (mm *MultisigMeta) ActorMeta() json.RawMessage {
out, err := json.Marshal(mm)
if err != nil {
panic(err)
}
return out
2020-02-12 00:58:55 +00:00
}
type Actor struct {
Type ActorType
Balance abi.TokenAmount
Meta json.RawMessage
}
type Template struct {
Accounts []Actor
Miners []Miner
2019-11-28 22:50:58 +00:00
2020-02-12 00:58:55 +00:00
NetworkName string
2020-02-21 20:56:30 +00:00
Timestamp uint64 `json:",omitempty"`
2020-07-20 08:28:45 +00:00
2020-07-20 15:03:27 +00:00
VerifregRootKey Actor
2019-11-25 04:45:13 +00:00
}