4 "github.com/vapor/common"
5 "github.com/vapor/consensus"
6 "github.com/vapor/consensus/segwit"
9 func GetAddressFromControlProgram(prog []byte) string {
10 if segwit.IsP2WPKHScript(prog) {
11 if pubHash, err := segwit.GetHashFromStandardProg(prog); err == nil {
12 return buildP2PKHAddress(pubHash)
14 } else if segwit.IsP2WSHScript(prog) {
15 if scriptHash, err := segwit.GetHashFromStandardProg(prog); err == nil {
16 return buildP2SHAddress(scriptHash)
23 func buildP2PKHAddress(pubHash []byte) string {
24 address, err := common.NewAddressWitnessPubKeyHash(pubHash, &consensus.ActiveNetParams)
29 return address.EncodeAddress()
32 func buildP2SHAddress(scriptHash []byte) string {
33 address, err := common.NewAddressWitnessScriptHash(scriptHash, &consensus.ActiveNetParams)
38 return address.EncodeAddress()