decred.org/dcrdex@v1.0.5/server/cmd/dexcoin/main.go (about)

     1  // This code is available on the terms of the project LICENSE.md file,
     2  // also available online at https://blueoakcouncil.org/license/1.0.0.
     3  
     4  package main
     5  
     6  import (
     7  	"encoding/hex"
     8  	"flag"
     9  	"fmt"
    10  	"os"
    11  
    12  	"decred.org/dcrdex/dex"
    13  	"decred.org/dcrdex/server/asset"
    14  	_ "decred.org/dcrdex/server/asset/importall"
    15  )
    16  
    17  type coinDecoder func([]byte) (string, error)
    18  
    19  func main() {
    20  	var symbol string
    21  	flag.StringVar(&symbol, "asset", "dcr", "Symbol of asset for the coin ID to decode.")
    22  	flag.Parse()
    23  
    24  	if n := flag.NArg(); n != 1 {
    25  		fmt.Fprintf(os.Stderr, "expected 1 argument, got %v\n", n)
    26  		os.Exit(1)
    27  	}
    28  
    29  	assetID, ok := dex.BipSymbolID(symbol)
    30  	if !ok {
    31  		fmt.Fprintf(os.Stderr, "asset %s not known \n", symbol)
    32  		os.Exit(1)
    33  	}
    34  
    35  	coinID, err := hex.DecodeString(flag.Arg(0))
    36  	if err != nil {
    37  		fmt.Fprintf(os.Stderr, "%v\n", err)
    38  		os.Exit(1)
    39  	}
    40  	coinIDStr, err := asset.DecodeCoinID(assetID, coinID)
    41  	if err != nil {
    42  		fmt.Fprintf(os.Stderr, "%v\n", err)
    43  		os.Exit(1)
    44  	}
    45  	fmt.Fprintf(os.Stderr, "%v\n", coinIDStr)
    46  	os.Exit(0)
    47  }