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 }