From 4a8b4b4cbc42ae9387d0c12b29eddb407832bbb7 Mon Sep 17 00:00:00 2001 From: Liu-Cheng Xu Date: Thu, 25 Jan 2018 14:25:27 +0800 Subject: [PATCH] Don't init native asset in init function (#324) * Don't init native asset in init function Previously, the init of logrus is after the invoke of creating native asset, which may lead to incomplete logging. * InitNativeAsset before NewRegistry * Call initNativeAsset in NewRegistry --- blockchain/asset/asset.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/blockchain/asset/asset.go b/blockchain/asset/asset.go index 5ad2e84d..31abf509 100755 --- a/blockchain/asset/asset.go +++ b/blockchain/asset/asset.go @@ -23,10 +23,6 @@ import ( "github.com/bytom/protocol/vm/vmutil" ) -func init() { - DefaultNativeAsset = generateNativeAsset() -} - var DefaultNativeAsset *Asset const ( @@ -36,24 +32,24 @@ const ( AliasPrefix = "ALS:" //ExternalAssetPrefix is external definition assets prefix ExternalAssetPrefix = "EXA" - indexPrefix = "ASSIDX:" + indexPrefix = "ASSIDX:" ) -func generateNativeAsset() *Asset { +func initNativeAsset() { genesisBlock := cfg.GenerateGenesisBlock() signer := &signers.Signer{Type: "internal"} alias := consensus.BTMAlias definitionBytes, _ := serializeAssetDef(consensus.BTMDefinitionMap) - - return &Asset{ + DefaultNativeAsset = &Asset{ Signer: signer, AssetID: *consensus.BTMAssetID, Alias: &alias, VMVersion: 1, DefinitionMap: consensus.BTMDefinitionMap, RawDefinitionByte: definitionBytes, - InitialBlockHash: genesisBlock.Hash()} + InitialBlockHash: genesisBlock.Hash(), + } } func AliasKey(name string) []byte { @@ -89,6 +85,7 @@ var ( //NewRegistry create new registry func NewRegistry(db dbm.DB, chain *protocol.Chain) *Registry { + initNativeAsset() return &Registry{ db: db, chain: chain, -- 2.11.0