From 76d625dfd0bf1001c9cbbf5ec4278a838d50fadf Mon Sep 17 00:00:00 2001 From: Dave Collins Date: Tue, 16 Mar 2021 12:36:56 -0500 Subject: [PATCH] txscript: Remove unused GenerateSStxAddrPush. This removes GenerateSStxAddrPush since it is no longer used by anything in the repository and is now available via the RewardCommitmentScript method of the relevant stdaddr address. It also removes the associated tests and nilAddrErrStr that is no longer used upon their removal. --- txscript/standard.go | 51 --------------------------------------- txscript/standard_test.go | 46 ----------------------------------- 2 files changed, 97 deletions(-) diff --git a/txscript/standard.go b/txscript/standard.go index 88aa3b42..098e1231 100644 --- a/txscript/standard.go +++ b/txscript/standard.go @@ -12,7 +12,6 @@ import ( "github.com/decred/dcrd/chaincfg/chainhash" "github.com/decred/dcrd/dcrec" "github.com/decred/dcrd/dcrec/secp256k1/v4" - "github.com/decred/dcrd/dcrutil/v4" "github.com/decred/dcrd/txscript/v4/stdaddr" ) @@ -20,11 +19,6 @@ const ( // MaxDataCarrierSize is the maximum number of bytes allowed in pushed // data to be considered a nulldata transaction. MaxDataCarrierSize = 256 - - // nilAddrErrStr is the common error string to use for attempts to - // generate payment scripts to nil addresses embedded within a - // dcrutil.Address interface. - nilAddrErrStr = "unable to generate payment script for nil address" ) // ScriptClass is an enumeration for the list of standard types of script. @@ -744,51 +738,6 @@ func MultisigRedeemScriptFromScriptSig(script []byte) []byte { return finalOpcodeData(scriptVersion, script) } -// GenerateSStxAddrPush generates an OP_RETURN push for SSGen payment addresses in -// an SStx. -func GenerateSStxAddrPush(addr dcrutil.Address, amount dcrutil.Amount, limits uint16) ([]byte, error) { - // Only pay to pubkey hash and pay to script hash are - // supported. - scriptType := PubKeyHashTy - switch addr := addr.(type) { - case *dcrutil.AddressPubKeyHash: - if addr == nil { - return nil, scriptError(ErrUnsupportedAddress, - nilAddrErrStr) - } - if addr.DSA() != dcrec.STEcdsaSecp256k1 { - str := "unable to generate payment script for " + - "unsupported digital signature algorithm" - return nil, scriptError(ErrUnsupportedAddress, str) - } - - case *dcrutil.AddressScriptHash: - if addr == nil { - return nil, scriptError(ErrUnsupportedAddress, - nilAddrErrStr) - } - scriptType = ScriptHashTy - - default: - str := fmt.Sprintf("unable to generate payment script for "+ - "unsupported address type %T", addr) - return nil, scriptError(ErrUnsupportedAddress, str) - } - - // Concatenate the prefix, pubkeyhash, and amount. - adBytes := make([]byte, 20+8+2) - copy(adBytes[0:20], addr.ScriptAddress()) - binary.LittleEndian.PutUint64(adBytes[20:28], uint64(amount)) - binary.LittleEndian.PutUint16(adBytes[28:30], limits) - - // Set the bit flag indicating pay to script hash. - if scriptType == ScriptHashTy { - adBytes[27] |= 1 << 7 - } - - return NewScriptBuilder().AddOp(OP_RETURN).AddData(adBytes).Script() -} - // GenerateSSGenBlockRef generates an OP_RETURN push for the block header hash and // height which the block votes on. func GenerateSSGenBlockRef(blockHash chainhash.Hash, height uint32) ([]byte, error) { diff --git a/txscript/standard_test.go b/txscript/standard_test.go index 7ded4f34..f7cf5a4e 100644 --- a/txscript/standard_test.go +++ b/txscript/standard_test.go @@ -15,7 +15,6 @@ import ( "github.com/decred/dcrd/chaincfg/chainhash" "github.com/decred/dcrd/chaincfg/v3" "github.com/decred/dcrd/dcrec/secp256k1/v4" - "github.com/decred/dcrd/dcrutil/v4" "github.com/decred/dcrd/txscript/v4/stdaddr" ) @@ -915,51 +914,6 @@ func TestGenerateProvablyPruneableOut(t *testing.T) { } } -// TestGenerateSStxAddrPush ensures an expected OP_RETURN push is generated. -func TestGenerateSStxAddrPush(t *testing.T) { - testNetParams := chaincfg.TestNet3Params() - var tests = []struct { - addrStr string - net stdaddr.AddressParams - amount dcrutil.Amount - limits uint16 - expected []byte - }{ - { - "Dcur2mcGjmENx4DhNqDctW5wJCVyT3Qeqkx", - mainNetParams, - 1000, - 10, - hexToBytes("6a1ef5916158e3e2c4551c1796708db8367207ed1" + - "3bbe8030000000000800a00"), - }, - { - "TscB7V5RuR1oXpA364DFEsNDuAs8Rk6BHJE", - testNetParams, - 543543, - 256, - hexToBytes("6a1e7a5c4cca76f2e0b36db4763daacbd6cbb6ee6" + - "e7b374b0800000000000001"), - }, - } - for _, test := range tests { - addr, err := dcrutil.DecodeAddress(test.addrStr, test.net) - if err != nil { - t.Errorf("DecodeAddress failed: %v", err) - continue - } - s, err := GenerateSStxAddrPush(addr, test.amount, test.limits) - if err != nil { - t.Errorf("GenerateSStxAddrPush failed: %v", err) - continue - } - if !bytes.Equal(s, test.expected) { - t.Errorf("GenerateSStxAddrPush: unexpected script:\n "+ - "got %x\nwant %x", s, test.expected) - } - } -} - // TestGenerateSSGenBlockRef ensures an expected OP_RETURN push is generated. func TestGenerateSSGenBlockRef(t *testing.T) { var tests = []struct {