X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=config%2Fgenesis.go;h=a3b2f7e2a91ccaf1099f626dadb2e423403e60b2;hb=fe2a49a99c3efa4cfe1b328ef819bcec402a0c21;hp=aabb430b6904ae6b2fe673a2e501e2bd16f92312;hpb=c25231d6b25ffa1e03a1143d89357b52851b5c08;p=bytom%2Fvapor.git diff --git a/config/genesis.go b/config/genesis.go index aabb430b..a3b2f7e2 100644 --- a/config/genesis.go +++ b/config/genesis.go @@ -13,9 +13,19 @@ import ( "github.com/vapor/protocol/vm/vmutil" ) +// FedAddressPath is used to derive federation root xpubs for signing cross-chain txs +var FedAddressPath = [][]byte{ + []byte{0x2C, 0x00, 0x00, 0x00}, + []byte{0x99, 0x00, 0x00, 0x00}, + []byte{0x01, 0x00, 0x00, 0x00}, + []byte{0x00, 0x00, 0x00, 0x00}, + []byte{0x01, 0x00, 0x00, 0x00}, +} + func FederationPMultiSigScript(c *Config) []byte { xpubs := c.Federation.Xpubs - program, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), c.Federation.Quorum) + derivedXPubs := chainkd.DeriveXPubs(xpubs, FedAddressPath) + program, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(derivedXPubs), c.Federation.Quorum) if err != nil { log.Panicf("fail to generate federation scirpt for federation: %v", err) } @@ -74,7 +84,7 @@ func mainNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1562840600003, + Timestamp: 1563344560002, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash, @@ -105,7 +115,7 @@ func testNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1562840600001, + Timestamp: 1563344560001, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash, @@ -136,7 +146,7 @@ func soloNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1562840600000, + Timestamp: 1563344560000, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash,