import (
"encoding/json"
+ btmCommon "github.com/bytom/common"
+ btmConsensus "github.com/bytom/consensus"
log "github.com/sirupsen/logrus"
"github.com/vapor/account"
}
func (w *Wallet) getAddressFromControlProgram(prog []byte, isMainchain bool) string {
- netParams := &consensus.ActiveNetParams
+ var netParams interface{}
+ netParams = &consensus.ActiveNetParams
if isMainchain {
- netParams = &consensus.MainNetParams
+ netParams = &btmConsensus.MainNetParams
}
if segwit.IsP2WPKHScript(prog) {
return ""
}
-func BuildP2PKHAddress(pubHash []byte, netParams *consensus.Params) string {
- address, err := common.NewAddressWitnessPubKeyHash(pubHash, netParams)
- if err != nil {
- return ""
- }
+// BuildP2PKHAddress create P2PKH address
+func BuildP2PKHAddress(pubHash []byte, netParams interface{}) string {
+ switch netParams.(type) {
+ case *consensus.Params:
+ params := netParams.(*consensus.Params)
+ address, err := common.NewAddressWitnessPubKeyHash(pubHash, params)
+ if err == nil {
+ return address.EncodeAddress()
+ }
- return address.EncodeAddress()
+ case *btmConsensus.Params:
+ params := netParams.(*btmConsensus.Params)
+ address, err := btmCommon.NewAddressWitnessPubKeyHash(pubHash, params)
+ if err == nil {
+ return address.EncodeAddress()
+ }
+ }
+ return ""
}
-func BuildP2SHAddress(scriptHash []byte, netParams *consensus.Params) string {
- address, err := common.NewAddressWitnessScriptHash(scriptHash, netParams)
- if err != nil {
- return ""
- }
+// BuildP2SHAddress create P2SH address
+func BuildP2SHAddress(scriptHash []byte, netParams interface{}) string {
+ switch netParams.(type) {
+ case *consensus.Params:
+ params := netParams.(*consensus.Params)
+ address, err := common.NewAddressWitnessScriptHash(scriptHash, params)
+ if err == nil {
+ return address.EncodeAddress()
+ }
- return address.EncodeAddress()
+ case *btmConsensus.Params:
+ params := netParams.(*btmConsensus.Params)
+ address, err := btmCommon.NewAddressWitnessScriptHash(scriptHash, params)
+ if err == nil {
+ return address.EncodeAddress()
+ }
+ }
+ return ""
}
// BuildAnnotatedOutput build the annotated output.