MCPcopy Create free account
hub / github.com/btcsuite/btcd / PayToAddrScript

Function PayToAddrScript

txscript/standard.go:931–985  ·  view source on GitHub ↗

PayToAddrScript creates a new script to pay a transaction output to a the specified address.

(addr address.Address)

Source from the content-addressed store, hash-verified

929// PayToAddrScript creates a new script to pay a transaction output to a the
930// specified address.
931func PayToAddrScript(addr address.Address) ([]byte, error) {
932 const nilAddrErrStr = "unable to generate payment script for nil address"
933
934 switch addr := addr.(type) {
935 case *address.AddressPubKeyHash:
936 if addr == nil {
937 return nil, scriptError(ErrUnsupportedAddress,
938 nilAddrErrStr)
939 }
940 return payToPubKeyHashScript(addr.ScriptAddress())
941
942 case *address.AddressScriptHash:
943 if addr == nil {
944 return nil, scriptError(ErrUnsupportedAddress,
945 nilAddrErrStr)
946 }
947 return payToScriptHashScript(addr.ScriptAddress())
948
949 case *address.AddressPubKey:
950 if addr == nil {
951 return nil, scriptError(ErrUnsupportedAddress,
952 nilAddrErrStr)
953 }
954 return payToPubKeyScript(addr.ScriptAddress())
955
956 case *address.AddressWitnessPubKeyHash:
957 if addr == nil {
958 return nil, scriptError(ErrUnsupportedAddress,
959 nilAddrErrStr)
960 }
961 return payToWitnessPubKeyHashScript(addr.ScriptAddress())
962 case *address.AddressWitnessScriptHash:
963 if addr == nil {
964 return nil, scriptError(ErrUnsupportedAddress,
965 nilAddrErrStr)
966 }
967 return payToWitnessScriptHashScript(addr.ScriptAddress())
968 case *address.AddressTaproot:
969 if addr == nil {
970 return nil, scriptError(ErrUnsupportedAddress,
971 nilAddrErrStr)
972 }
973 return payToWitnessTaprootScript(addr.ScriptAddress())
974 case *address.AddressPayToAnchor:
975 if addr == nil {
976 return nil, scriptError(ErrUnsupportedAddress,
977 nilAddrErrStr)
978 }
979 return payToAnchorScript(addr.ScriptAddress())
980 }
981
982 str := fmt.Sprintf("unable to generate payment script for unsupported "+
983 "address type %T", addr)
984 return nil, scriptError(ErrUnsupportedAddress, str)
985}
986
987// NullDataScript creates a provably-prunable script containing OP_RETURN
988// followed by the passed data. An Error with the error code ErrTooMuchNullData

Callers 2

TestSignTxOutputFunction · 0.85
TestPayToAddrScriptFunction · 0.85

Calls 9

scriptErrorFunction · 0.85
payToPubKeyHashScriptFunction · 0.85
payToPubKeyScriptFunction · 0.85
payToAnchorScriptFunction · 0.85
payToScriptHashScriptFunction · 0.70
ScriptAddressMethod · 0.65

Tested by 2

TestSignTxOutputFunction · 0.68
TestPayToAddrScriptFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…