-
Notifications
You must be signed in to change notification settings - Fork 15
/
genesis_state.go
66 lines (56 loc) · 2.46 KB
/
genesis_state.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package types
import (
"github.com/eosspark/eos-go/common"
"github.com/eosspark/eos-go/crypto"
"github.com/eosspark/eos-go/crypto/ecc"
"github.com/eosspark/eos-go/exception"
"github.com/eosspark/eos-go/exception/try"
"github.com/eosspark/eos-go/log"
)
/*var isActiveGenesis bool = false
var instance = &GenesisState{}*/
const EosioRootKey = "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
type GenesisState struct {
InitialTimestamp common.TimePoint `json:"initial_timestamp"`
InitialKey ecc.PublicKey `json:"initial_key"`
InitialConfiguration ChainConfig `json:"initial_configuration"`
}
func NewGenesisState() *GenesisState {
g := &GenesisState{}
its, err := common.FromIsoString("2018-06-01T12:00:00")
if err != nil {
log.Error("NewGenesisState is error detail:%s", err.Error())
}
g.InitialTimestamp = its
key, err := ecc.NewPublicKey(EosioRootKey)
if err != nil {
try.EosThrow(&exception.PublicKeyTypeException{}, err.Error())
}
g.InitialKey = key
g.InitialConfiguration = g.Initial()
return g
}
func (g *GenesisState) Initial() ChainConfig {
return ChainConfig{
MaxBlockNetUsage: common.DefaultConfig.MaxBlockNetUsage,
TargetBlockNetUsagePct: common.DefaultConfig.TargetBlockNetUsagePct,
MaxTransactionNetUsage: common.DefaultConfig.MaxTransactionNetUsage,
BasePerTransactionNetUsage: common.DefaultConfig.BasePerTransactionNetUsage,
NetUsageLeeway: common.DefaultConfig.NetUsageLeeway,
ContextFreeDiscountNetUsageNum: common.DefaultConfig.ContextFreeDiscountNetUsageNum,
ContextFreeDiscountNetUsageDen: common.DefaultConfig.ContextFreeDiscountNetUsageDen,
MaxBlockCpuUsage: common.DefaultConfig.MaxBlockCpuUsage,
TargetBlockCpuUsagePct: common.DefaultConfig.TargetBlockCpuUsagePct,
MaxTransactionCpuUsage: common.DefaultConfig.MaxTransactionCpuUsage,
MinTransactionCpuUsage: common.DefaultConfig.MinTransactionCpuUsage,
MaxTrxLifetime: common.DefaultConfig.MaxTrxLifetime,
DeferredTrxExpirationWindow: common.DefaultConfig.DeferredTrxExpirationWindow,
MaxTrxDelay: common.DefaultConfig.MaxTrxDelay,
MaxInlineActionSize: common.DefaultConfig.MaxInlineActionSize,
MaxInlineActionDepth: common.DefaultConfig.MaxInlineActionDepth,
MaxAuthorityDepth: common.DefaultConfig.MaxAuthorityDepth,
}
}
func (g *GenesisState) ComputeChainID() common.ChainIdType {
return common.ChainIdType(*crypto.Hash256(g))
}