decred.org/dcrdex@v1.0.5/server/asset/doge/live_test.go (about) 1 //go:build dogelive 2 3 // go test -v -tags dogelive -run UTXOStats 4 // ----------------------------------- 5 // Grab the most recent block and iterate it's outputs, taking account of 6 // how many UTXOs are found, how many are of an unknown type, etc. 7 // 8 // go test -v -tags dogelive -run P2SHStats 9 // ----------------------------------------- 10 // For each output in the last block, check it's previous outpoint to see if 11 // it's a P2SH or P2WSH. If so, takes statistics on the script types, including 12 // for the redeem script. 13 // 14 // go test -v -tags dogelive -run LiveFees 15 // ------------------------------------------ 16 // Test that fees rates are parsed without error and that a few historical fee 17 // rates are correct 18 // 19 // go test -v -tags dogelive -run TestMedianFeeRates 20 // ------------------------------------------ 21 // Test the median fee rate calculation. 22 23 package doge 24 25 import ( 26 "context" 27 "fmt" 28 "os" 29 "testing" 30 31 "decred.org/dcrdex/dex" 32 "decred.org/dcrdex/server/asset" 33 "decred.org/dcrdex/server/asset/btc" 34 ) 35 36 var ( 37 doge *btc.Backend 38 ctx context.Context 39 ) 40 41 func TestMain(m *testing.M) { 42 // Wrap everything for defers. 43 doIt := func() int { 44 maxFeeBlocks = 1000 45 logger := dex.StdOutLogger("DOGETEST", dex.LevelTrace) 46 dexAsset, err := NewBackend(&asset.BackendConfig{ 47 AssetID: BipID, 48 Logger: logger, 49 Net: dex.Mainnet, 50 }) 51 if err != nil { 52 fmt.Printf("NewBackend error: %v\n", err) 53 return 1 54 } 55 56 var ok bool 57 doge, ok = dexAsset.(*btc.Backend) 58 if !ok { 59 fmt.Printf("Could not cast asset.Backend to *Backend") 60 return 1 61 } 62 63 ctx, cancel := context.WithCancel(context.Background()) 64 wg, err := doge.Connect(ctx) 65 if err != nil { 66 fmt.Printf("Connect failed: %v", err) 67 return 1 68 } 69 defer wg.Wait() 70 defer cancel() 71 72 return m.Run() 73 } 74 75 os.Exit(doIt()) 76 } 77 78 func TestUTXOStats(t *testing.T) { 79 btc.LiveUTXOStats(doge, t) 80 } 81 82 func TestP2SHStats(t *testing.T) { 83 btc.LiveP2SHStats(doge, t, 50) 84 } 85 86 func TestLiveFees(t *testing.T) { 87 btc.LiveFeeRates(doge, t, map[string]uint64{ 88 "f5ebcf31851ba99d633cf05b4ef3793b67aeb790ef7ea084abb6af503ca7c070": 1005, 89 "58f8771cfa4fa966dc639066eb82ce643e4c0aabc48f242b6abe2e9b83c35117": 444_444, 90 // "6e7bfce6aee69312629b1f60afe6dcef02f367207642f2dc380a554c21181eb2": 888, 91 // "9387d8b2097ee23cc3da36daf90262dda9a98eb25063ddddb630cf15513fa9b8": 1, 92 }) 93 } 94 95 func TestMedianFeeRates(t *testing.T) { 96 btc.TestMedianFeesTheHardWay(doge, t) 97 }