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"
|
|
|
|
|
2019-12-19 20:13:17 +00:00
|
|
|
"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 {
|
2020-02-28 18:01:43 +00:00
|
|
|
CommR cid.Cid
|
|
|
|
CommD cid.Cid
|
|
|
|
SectorID abi.SectorNumber
|
|
|
|
Deal market.DealProposal
|
|
|
|
ProofType abi.RegisteredProof
|
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
|
2020-02-21 20:56:30 +00:00
|
|
|
PeerId peer.ID `json:",omitempty"`
|
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
|
|
|
|
}
|
|
|
|
|
2020-02-12 21:41:59 +00:00
|
|
|
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 {
|
|
|
|
// TODO
|
|
|
|
}
|
|
|
|
|
|
|
|
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"`
|
2019-11-25 04:45:13 +00:00
|
|
|
}
|