mirror of
https://github.com/btcsuite/btcd.git
synced 2024-11-19 09:50:08 +01:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
|
// Copyright (c) 2014 Conformal Systems LLC.
|
||
|
// Use of this source code is governed by an ISC
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package btcscript_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"github.com/conformal/btcnet"
|
||
|
"github.com/conformal/btcscript"
|
||
|
"github.com/conformal/btcutil"
|
||
|
)
|
||
|
|
||
|
// This example demonstrates creating a script which pays to a bitcoin address.
|
||
|
// It also prints the created script hex and uses the DisasmString function to
|
||
|
// display the disassembled script.
|
||
|
func ExamplePayToAddrScript() {
|
||
|
// Parse the address to send the coins to into a btcutil.Address
|
||
|
// which is useful to ensure the accuracy of the address and determine
|
||
|
// the address type. It is also required for the upcoming call to
|
||
|
// PayToAddrScript.
|
||
|
addressStr := "12gpXQVcCL2qhTNQgyLVdCFG2Qs2px98nV"
|
||
|
address, err := btcutil.DecodeAddress(addressStr, &btcnet.MainNetParams)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// Create a public key script that pays to the address.
|
||
|
script, err := btcscript.PayToAddrScript(address)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
fmt.Printf("Script Hex: %x\n", script)
|
||
|
|
||
|
disasm, err := btcscript.DisasmString(script)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return
|
||
|
}
|
||
|
fmt.Println("Script Disassembly:", disasm)
|
||
|
|
||
|
// Output:
|
||
|
// Script Hex: 76a914128004ff2fcaf13b2b91eb654b1dc2b674f7ec6188ac
|
||
|
// Script Disassembly: OP_DUP OP_HASH160 128004ff2fcaf13b2b91eb654b1dc2b674f7ec61 OP_EQUALVERIFY OP_CHECKSIG
|
||
|
}
|