"github.com/vapor/consensus"
"github.com/vapor/errors"
+ "github.com/vapor/protocol/bc"
+ "github.com/vapor/toolbar/common/service"
"github.com/vapor/toolbar/federation/common"
"github.com/vapor/toolbar/federation/config"
"github.com/vapor/toolbar/federation/database"
"github.com/vapor/toolbar/federation/database/orm"
- "github.com/vapor/toolbar/federation/service"
- "github.com/vapor/protocol/bc"
)
type mainchainKeeper struct {
func (m *mainchainKeeper) createCrossChainReqs(db *gorm.DB, crossTransactionID uint64, tx *types.Tx, statusFail bool) error {
prog := tx.Inputs[0].ControlProgram()
- fromAddress := common.ProgToAddress(prog, &consensus.BytomMainNetParams)
+ fromAddress := common.ProgToAddress(prog, consensus.BytomMainNetParams(&consensus.ActiveNetParams))
toAddress := common.ProgToAddress(prog, &consensus.MainNetParams)
for i, rawOutput := range tx.Outputs {
if !bytes.Equal(rawOutput.OutputCommitment.ControlProgram, m.federationProg) {
if sourceTxHash := locateSideChainTx(tx.Outputs[len(tx.Outputs)-1]); sourceTxHash == "" {
return false
}
- return false
+ return true
}
func locateSideChainTx(output *types.TxOutput) string {
return ""
}
- return hex.EncodeToString(insts[1].Data)
+ return string(insts[1].Data)
}
func (m *mainchainKeeper) processBlock(db *gorm.DB, block *types.Block, txStatus *bc.TransactionStatus) error {