decred.org/dcrdex@v1.0.5/client/asset/ltc/spv_test.go (about)

     1  package ltc
     2  
     3  import (
     4  	"testing"
     5  
     6  	dexltc "decred.org/dcrdex/dex/networks/ltc"
     7  	ltcchaincfg "github.com/ltcsuite/ltcd/chaincfg"
     8  	"github.com/ltcsuite/ltcd/ltcutil"
     9  )
    10  
    11  func TestAddressTranslationRoundTrip(t *testing.T) {
    12  	w := ltcSPVWallet{
    13  		chainParams: &ltcchaincfg.MainNetParams,
    14  		btcParams:   dexltc.MainNetParams,
    15  	}
    16  	tests := []struct {
    17  		name string
    18  		addr string // ltcutil.Address
    19  	}{
    20  		{
    21  			"bech32",
    22  			"ltc1qx9ry0xnsz9spzw0vy7p9szyycmtk4a4xkessy5",
    23  		},
    24  		{
    25  			"p2pkh",
    26  			"LXyPtJexNLCdk99vYhgqrB2hXAdq6PQx8r",
    27  		},
    28  		{
    29  			"p2sh",
    30  			"MWidTW5JsYaxPeDyQKF3525D8PJZLVb5Ho",
    31  		},
    32  		{
    33  			"32-byte segwit program (taproot)",
    34  			"ltc1p7v5t2ltshynyrjj9ft5x5nulf76r8ml23789pwr29vu3rksnue3q2y7w9a",
    35  		},
    36  	}
    37  	for _, tt := range tests {
    38  		t.Run(tt.name, func(t *testing.T) {
    39  			ltcAddr, err := ltcutil.DecodeAddress(tt.addr, w.chainParams)
    40  			if err != nil {
    41  				t.Fatal(err)
    42  			}
    43  			btcAddr, err := w.addrLTC2BTC(ltcAddr)
    44  			if err != nil {
    45  				t.Errorf("ltcSPVWallet.addrLTC2BTC() error = %v", err)
    46  				return
    47  			}
    48  			if btcAddr.String() != tt.addr {
    49  				t.Errorf("ltcSPVWallet.addrLTC2BTC() = %v, want %v", btcAddr, tt.addr)
    50  			}
    51  			reLtcAddr, err := w.addrBTC2LTC(btcAddr)
    52  			if err != nil {
    53  				t.Errorf("ltcSPVWallet.addrBTC2LTC() error = %v", err)
    54  			}
    55  			if reLtcAddr.String() != tt.addr {
    56  				t.Errorf("ltcSPVWallet.addrBTC2LTC() = %v, want %v", reLtcAddr, tt.addr)
    57  			}
    58  		})
    59  	}
    60  }