1package btcutil_test 2 3import ( 4 "fmt" 5 "math" 6 7 "github.com/btcsuite/btcutil" 8) 9 10func ExampleAmount() { 11 12 a := btcutil.Amount(0) 13 fmt.Println("Zero Satoshi:", a) 14 15 a = btcutil.Amount(1e8) 16 fmt.Println("100,000,000 Satoshis:", a) 17 18 a = btcutil.Amount(1e5) 19 fmt.Println("100,000 Satoshis:", a) 20 // Output: 21 // Zero Satoshi: 0 BTC 22 // 100,000,000 Satoshis: 1 BTC 23 // 100,000 Satoshis: 0.001 BTC 24} 25 26func ExampleNewAmount() { 27 amountOne, err := btcutil.NewAmount(1) 28 if err != nil { 29 fmt.Println(err) 30 return 31 } 32 fmt.Println(amountOne) //Output 1 33 34 amountFraction, err := btcutil.NewAmount(0.01234567) 35 if err != nil { 36 fmt.Println(err) 37 return 38 } 39 fmt.Println(amountFraction) //Output 2 40 41 amountZero, err := btcutil.NewAmount(0) 42 if err != nil { 43 fmt.Println(err) 44 return 45 } 46 fmt.Println(amountZero) //Output 3 47 48 amountNaN, err := btcutil.NewAmount(math.NaN()) 49 if err != nil { 50 fmt.Println(err) 51 return 52 } 53 fmt.Println(amountNaN) //Output 4 54 55 // Output: 1 BTC 56 // 0.01234567 BTC 57 // 0 BTC 58 // invalid bitcoin amount 59} 60 61func ExampleAmount_unitConversions() { 62 amount := btcutil.Amount(44433322211100) 63 64 fmt.Println("Satoshi to kBTC:", amount.Format(btcutil.AmountKiloBTC)) 65 fmt.Println("Satoshi to BTC:", amount) 66 fmt.Println("Satoshi to MilliBTC:", amount.Format(btcutil.AmountMilliBTC)) 67 fmt.Println("Satoshi to MicroBTC:", amount.Format(btcutil.AmountMicroBTC)) 68 fmt.Println("Satoshi to Satoshi:", amount.Format(btcutil.AmountSatoshi)) 69 70 // Output: 71 // Satoshi to kBTC: 444.333222111 kBTC 72 // Satoshi to BTC: 444333.222111 BTC 73 // Satoshi to MilliBTC: 444333222.111 mBTC 74 // Satoshi to MicroBTC: 444333222111 μBTC 75 // Satoshi to Satoshi: 44433322211100 Satoshi 76} 77