This removes ExtractPkScriptAddrs and its associated tests, benchmarks, and example since it is no longer used by anything in the repository and is now available via stdscript.ExtractAddrs. This is part of a series of commits to remove all code related to standard scripts from txscript.
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
// Copyright (c) 2014-2016 The btcsuite developers
|
|
// Copyright (c) 2015-2021 The Decred developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package txscript_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/decred/dcrd/txscript/v4"
|
|
"github.com/decred/dcrd/txscript/v4/stdaddr"
|
|
)
|
|
|
|
// This example demonstrates creating a script tokenizer instance and using it
|
|
// to count the number of opcodes a script contains.
|
|
func ExampleScriptTokenizer() {
|
|
// Create a script to use in the example. Ordinarily this would come from
|
|
// some other source.
|
|
hash160 := stdaddr.Hash160([]byte("example"))
|
|
script, err := txscript.NewScriptBuilder().AddOp(txscript.OP_DUP).
|
|
AddOp(txscript.OP_HASH160).AddData(hash160).
|
|
AddOp(txscript.OP_EQUALVERIFY).AddOp(txscript.OP_CHECKSIG).Script()
|
|
if err != nil {
|
|
fmt.Printf("failed to build script: %v\n", err)
|
|
return
|
|
}
|
|
|
|
// Create a tokenizer to iterate the script and count the number of opcodes.
|
|
const scriptVersion = 0
|
|
var numOpcodes int
|
|
tokenizer := txscript.MakeScriptTokenizer(scriptVersion, script)
|
|
for tokenizer.Next() {
|
|
numOpcodes++
|
|
}
|
|
if tokenizer.Err() != nil {
|
|
fmt.Printf("script failed to parse: %v\n", err)
|
|
} else {
|
|
fmt.Printf("script contains %d opcode(s)\n", numOpcodes)
|
|
}
|
|
|
|
// Output:
|
|
// script contains 5 opcode(s)
|
|
}
|