bsv_rpc v1.0.0-alpha3 BsvRpc.Sighash View Source

Functions for Bitcoin sighash calculation.

Link to this section Summary

Functions

Gets sighash type suffix byte.

Creates sighash digest to be signed.

Link to this section Types

Link to this type

t()

View Source
t() :: [
  :sighash_all
  | :sighash_none
  | :sighash_single
  | :sighash_anyonecanpay
  | :sighash_forkid
]

Link to this section Functions

Link to this function

get_sighash_suffix(sighash_type)

View Source
get_sighash_suffix(BsvRpc.Sighash.t()) :: byte()

Gets sighash type suffix byte.

Examples

iex> BsvRpc.Sighash.get_sighash_suffix([:sighash_all, :sighash_forkid]) 0x41

Creates sighash digest to be signed.

Examples

iex> {:ok, k} = ExtendedKey.fromstring("xprv9s21ZrQH143K42Wyfo4GvDT1QBNSgq5sCBPXr4zaftZr2WKCrgEzdtniz5TvRgXA6V8hi2QrUMG3QTQnqovLp2UBAqsDcaxDUP3YCA61rJV") ...> |> BsvRpc.PrivateKey.create() iex> tx = BsvRpc.Transaction.create_from_hex("0100000001040800A41008F4C353626694DAC1EE5553FBD36B11AC5647528E29C7D6C89BE20000000000FFFFFFFF0200F90295000000001976A9141D7C7B4894BE23A6495B004157F3A1BBA173C52988AC0CF70295000000001976A9141D7C7B4894BE23A6495B004157F3A1BBA173C52988AC00000000") iex> [tx_in | ] = tx.inputs iex> utxo = %BsvRpc.UTXO{script_pubkey: Base.decode16!("76A9141D7C7B4894BE23A6495B004157F3A1BBA173C52988AC"), value: 5000000000, transaction: <<>>, output: 0} iex> Base.encode16(BsvRpc.Sighash.sighash(tx_in, tx, k, utxo, [:sighash_all, :sighash_forkid])) "A55AF5F6A521E714AC45BCED0BE08E1A0CCF11E09771D694942BB9C2C9F10FC6"