"github.com/vapor/consensus"
"github.com/vapor/errors"
+ "github.com/vapor/protocol/bc"
+ "github.com/vapor/protocol/bc/types"
"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"
- "github.com/vapor/protocol/bc/types"
)
type sidechainKeeper struct {
node *service.Node
assetStore *database.AssetStore
chainID uint64
+ netParams consensus.Params
}
func NewSidechainKeeper(db *gorm.DB, assetStore *database.AssetStore, cfg *config.Config) *sidechainKeeper {
node: service.NewNode(cfg.Sidechain.Upstream),
assetStore: assetStore,
chainID: chain.ID,
+ netParams: consensus.NetParams[cfg.Network],
}
}
}
func (s *sidechainKeeper) createCrossChainReqs(db *gorm.DB, crossTransactionID uint64, tx *types.Tx, statusFail bool) error {
- fromAddress := common.ProgToAddress(tx.Inputs[0].ControlProgram(), &consensus.MainNetParams)
+ fromAddress := common.ProgToAddress(tx.Inputs[0].ControlProgram(), &s.netParams)
for i, rawOutput := range tx.Outputs {
if rawOutput.OutputType() != types.CrossChainOutputType {
continue
AssetAmount: rawOutput.OutputCommitment().AssetAmount.Amount,
Script: hex.EncodeToString(prog),
FromAddress: fromAddress,
- ToAddress: common.ProgToAddress(prog, &consensus.BytomMainNetParams),
+ ToAddress: common.ProgToAddress(prog, consensus.BytomMainNetParams(&s.netParams)),
}
if err := db.Create(req).Error; err != nil {