lotus/genesis/types.go

91 lines
1.7 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"
2022-05-15 19:26:52 +00:00
"github.com/filecoin-project/lotus/chain/wallet"
"github.com/filecoin-project/go-address"
2020-09-07 03:49:10 +00:00
"github.com/filecoin-project/go-state-types/abi"
2022-04-20 21:34:28 +00:00
market8 "github.com/filecoin-project/go-state-types/builtin/v8/market"
2022-03-12 18:07:35 +00:00
"github.com/filecoin-project/go-state-types/network"
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 {
2022-05-15 19:26:52 +00:00
CommR cid.Cid
CommD cid.Cid
SectorID abi.SectorNumber
Deal market8.DealProposal
DealClientKey *wallet.Key
ProofType abi.RegisteredSealProof
2019-11-25 04:45:13 +00:00
}
2020-02-12 00:58:55 +00:00
type Miner struct {
ID address.Address
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 {
NetworkVersion network.Version
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-08-18 21:30:49 +00:00
VerifregRootKey Actor
RemainderAccount Actor
2019-11-25 04:45:13 +00:00
}