example_test.go raw

   1  // Copyright (c) 2017 The btcsuite developers
   2  // Use of this source code is governed by an ISC
   3  // license that can be found in the LICENSE file.
   4  
   5  package bech32
   6  
   7  import (
   8  	"encoding/hex"
   9  	"fmt"
  10  )
  11  
  12  // This example demonstrates how to decode a bech32 encoded string.
  13  func ExampleDecode() {
  14  	encoded := "bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx"
  15  	hrp, decoded, err := Decode([]byte(encoded))
  16  	if err != nil {
  17  		fmt.Println("Error:", err)
  18  	}
  19  	// Show the decoded data.
  20  	fmt.Printf("Decoded human-readable part: %s\n", hrp)
  21  	fmt.Println("Decoded Data:", hex.EncodeToString(decoded))
  22  	// Output:
  23  	// Decoded human-readable part: bc
  24  	// Decoded Data: 010e140f070d1a001912060b0d081504140311021d030c1d03040f1814060e1e160e140f070d1a001912060b0d081504140311021d030c1d03040f1814060e1e16
  25  }
  26  
  27  // This example demonstrates how to encode data into a bech32 string.
  28  func ExampleEncode() {
  29  	data := []byte("Test data")
  30  	// Convert test data to base32:
  31  	conv, err := ConvertBits(data, 8, 5, true)
  32  	if err != nil {
  33  		fmt.Println("Error:", err)
  34  	}
  35  	encoded, err := Encode([]byte("customHrp!11111q"), conv)
  36  	if err != nil {
  37  		fmt.Println("Error:", err)
  38  	}
  39  	// Show the encoded data.
  40  	fmt.Printf("Encoded Data: %s", encoded)
  41  	// Output:
  42  	// Encoded Data: customhrp!11111q123jhxapqv3shgcgkxpuhe
  43  }
  44