_testmain.go
cmd/fedd/fedd
-cmd/bytomd/bytomd
-cmd/bytomd/.bytomd
-cmd/bytomcli/bytomcli
-cmd/bytom/.bytom
-.bytomd
+cmd/vapord/vapord
+cmd/vapord/.vapord
+cmd/vaporcli/vaporcli
+cmd/vapor/.vapor
+.vapord
target
profile.tmp
.DS_Store
-cmd/bytomd/bytomd_error/config.toml
-cmd/bytomd/bytomd_error/genesis.json
+cmd/vapord/vapord_error/config.toml
+cmd/vapord/vapord_error/genesis.json
blockchain/pseudohsm/testdata/pseudo/UTC--2017-11-01T09-24-31.848287391Z--931de33f-e62e-4de7-8036-f82ad5efa77e
blockchain/pseudohsm/testdata/pseudo/UTC--2017-11-01T09-24-31.953012475Z--36b63ec7-b585-4a0e-95ff-e3f71b4ccb8b
blockchain/pseudohsm/UTC--2017-11-01T09-24-30.596579759Z--2178d885-aca6-4436-a865-e7e439e4bd9c
"golang.org/x/crypto/sha3"
"github.com/vapor/common"
- "github.com/vapor/config"
+ cfg "github.com/vapor/config"
"github.com/vapor/consensus"
"github.com/vapor/encoding/json"
"github.com/vapor/protocol/bc"
// arguments will be set when materializeWitnesses
txin := types.NewCrossChainInput(nil, a.SourceID, *a.AssetId, a.Amount, a.SourcePos, a.VMVersion, a.RawDefinitionByte, a.IssuanceProgram)
tplIn := &SigningInstruction{}
- fed := config.CommonConfig.Federation
+ fed := cfg.CommonConfig.Federation
tplIn.AddRawWitnessKeys(fed.Xpubs, nil, fed.Quorum)
+ tplIn.AddDataWitness(cfg.FederationPMultiSigScript(cfg.CommonConfig))
return builder.AddInput(txin, tplIn)
}
"github.com/vapor/errors"
)
+func (si *SigningInstruction) AddDataWitness(data chainjson.HexBytes) {
+ dw := DataWitness(data)
+ si.WitnessComponents = append(si.WitnessComponents, &dw)
+}
+
// AddWitnessKeys adds a SignatureWitness with the given quorum and
// list of keys derived by applying the derivation path to each of the
// xpubs.
log "github.com/sirupsen/logrus"
"github.com/vapor/consensus"
+ "github.com/vapor/crypto"
"github.com/vapor/crypto/ed25519/chainkd"
"github.com/vapor/protocol/bc"
"github.com/vapor/protocol/bc/types"
"github.com/vapor/protocol/vm/vmutil"
)
-func FederationProgrom(c *Config) []byte {
+func FederationPMultiSigScript(c *Config) []byte {
xpubs := c.Federation.Xpubs
- fedpegScript, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), c.Federation.Quorum)
+ program, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), c.Federation.Quorum)
if err != nil {
log.Panicf("fail to generate federation scirpt for federation: %v", err)
}
- return fedpegScript
+ return program
+}
+
+func FederationWScript(c *Config) []byte {
+ script := FederationPMultiSigScript(c)
+ scriptHash := crypto.Sha256(script)
+ wscript, err := vmutil.P2WSHProgram(scriptHash)
+ if err != nil {
+ log.Panicf("Fail converts scriptHash to witness: %v", err)
+ }
+
+ return wscript
}
func GenesisTx() *types.Tx {
log.Panicf("fail on decode genesis tx output control program")
}
- coinbaseInput := FederationProgrom(CommonConfig)
+ coinbaseInput := FederationWScript(CommonConfig)
txData := types.TxData{
Version: 1,
node: service.NewNode(cfg.Mainchain.Upstream),
chainName: cfg.Mainchain.Name,
assetStore: assetStore,
- fedProg: util.SegWitWrap(util.ParseFedProg(cfg.Warders, cfg.Quorum)),
+ fedProg: util.ParseFedProg(cfg.Warders, cfg.Quorum),
}
}
"github.com/vapor/protocol/vm/vmutil"
)
-func SegWitWrap(script []byte) []byte {
- scriptHash := crypto.Sha256(script)
- wscript, err := vmutil.P2WSHProgram(scriptHash)
- if err != nil {
- log.Panicf("Fail converts scriptHash to witness: %v", err)
- }
-
- return wscript
-}
-
func ParseFedProg(warders []config.Warder, quorum int) []byte {
SortWarders(warders)
xpubs = append(xpubs, w.XPub)
}
- fedScript, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), quorum)
+ scirpt, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), quorum)
if err != nil {
log.Panicf("fail to generate federation scirpt for federation: %v", err)
}
- return fedScript
+ scriptHash := crypto.Sha256(scirpt)
+ wscript, err := vmutil.P2WSHProgram(scriptHash)
+ if err != nil {
+ log.Panicf("Fail converts scriptHash to witness: %v", err)
+ }
+
+ return wscript
}
type byPosition []config.Warder
"pubkey": config.PrivateKey().XPub(),
"fed_xpubs": config.Federation.Xpubs,
"fed_quorum": config.Federation.Quorum,
- "fed_controlprogram": hex.EncodeToString(cfg.FederationProgrom(config)),
+ "fed_controlprogram": hex.EncodeToString(cfg.FederationWScript(config)),
}).Info()
initLogFile(config)
// find whether config xpubs equal genesis block xpubs
func checkConfig(chain *protocol.Chain, config *cfg.Config) error {
- fedpegScript := cfg.FederationProgrom(config)
+ fedpegScript := cfg.FederationWScript(config)
genesisBlock, err := chain.GetBlockByHeight(0)
if err != nil {
return err
return errors.New("incorrect asset_id while checking CrossChainInput")
}
- code := config.FederationProgrom(config.CommonConfig)
+ code := config.FederationWScript(config.CommonConfig)
prog := &bc.Program{
VmVersion: e.ControlProgram.VmVersion,
Code: code,