Documentation ¶
Index ¶
- Constants
- Variables
- func Bech32Decode(address string) ([]byte, error)
- func Bech32Encode(prefix, alphabet string, payload []byte) string
- func CreateEmptyRawTransaction(vins []Vin, vouts []Vout, lockTime uint32, replaceable bool) (string, error)
- func CreateMultiSig(required byte, pubkeys [][]byte) (string, string, error)
- func CreateRawTransactionHashForSig(txHex string, unlockData []TxUnlock) ([]string, error)
- func Decode(input string, alphabet *Alphabet) ([]byte, error)
- func DecodeCheck(address string) (byte, []byte, error)
- func Encode(input []byte, alphabet *Alphabet) string
- func EncodeCheck(prefix byte, hash []byte) string
- func InsertSignatureIntoEmptyTransaction(txHex string, sigPub []SignaturePubkey, unlockData []TxUnlock) (string, error)
- func SignEmptyRawTransaction(txHex string, unlockData []TxUnlock) (string, error)
- func VerifyRawTransaction(txHex string, unlockData []TxUnlock) bool
- type Alphabet
- type SignaturePubkey
- type Transaction
- type TxIn
- type TxOut
- type TxUnlock
- type TxWitness
- type Vin
- type Vout
Constants ¶
View Source
const ( P2PKHPrefix = byte(0x6F) P2SHPrefix = byte(0xC4) Bech32Prefix = "tb1" )
View Source
const ( SequenceFinal = uint32(0xFFFFFFFF) SequenceMaxBip125RBF = uint32(0xFFFFFFFD) )
View Source
const ( DefaultTxVersion = uint32(2) DefaultHashType = uint32(1) )
View Source
const ( TypeP2PKH = 0 TypeP2SH = 1 TypeBech32 = 2 )
Variables ¶
View Source
var ( ErrorInvalidAddress = errors.New("Invalid address!") BTCBech32Alphabet = "qpzry9x8gf2tvdw0s3jn54khce6mua7l" CHARSET_REV = []int8{}/* 128 elements not displayed */ )
View Source
var ( SegWitSymbol = byte(0) SegWitVersion = byte(1) SigHashAll = byte(1) )
View Source
var ( OpCodeHash160 = byte(0xA9) OpCodeEqual = byte(0x87) OpCodeEqualVerify = byte(0x88) OpCodeCheckSig = byte(0xAC) OpCodeDup = byte(0x76) OpCode_1 = byte(0x51) OpCheckMultiSig = byte(0xAE) )
View Source
var ( MaxScriptElementSize = 520 CurveOrder = []byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBA, 0xAE, 0xDC, 0xE6, 0xAF, 0x48, 0xA0, 0x3B, 0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41} HalfCurveOrder = []byte{0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5D, 0x57, 0x6E, 0x73, 0x57, 0xA4, 0x50, 0x1D, 0xDF, 0xE9, 0x2F, 0x46, 0x68, 0x1B, 0x20, 0xA0} )
View Source
var (
BitcoinAlphabet = NewAlphabet("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")
)
Alphabet: copy from https://en.wikipedia.org/wiki/Base58
View Source
var (
ErrorInvalidBase58String = errors.New("invalid base58 string")
)
Errors
Functions ¶
func Bech32Decode ¶
func Bech32Encode ¶
func DecodeCheck ¶
return prefix + hash + error
func EncodeCheck ¶
func InsertSignatureIntoEmptyTransaction ¶
func InsertSignatureIntoEmptyTransaction(txHex string, sigPub []SignaturePubkey, unlockData []TxUnlock) (string, error)
func SignEmptyRawTransaction ¶
func VerifyRawTransaction ¶
Types ¶
type Alphabet ¶
type Alphabet struct {
// contains filtered or unexported fields
}
Alphabet The base58 alphabet object.
func NewAlphabet ¶
NewAlphabet create a custom alphabet from 58-length string. Note: len(rune(alphabet)) must be 58.
type SignaturePubkey ¶
func SignRawTransactionHash ¶
func SignRawTransactionHash(txHash []string, unlockData []TxUnlock) ([]SignaturePubkey, error)
type Transaction ¶
type Transaction struct { Version []byte Vins []TxIn Vouts []TxOut Witness []TxWitness LockTime []byte }
func DecodeRawTransaction ¶
func DecodeRawTransaction(txBytes []byte) (*Transaction, error)
Click to show internal directories.
Click to hide internal directories.