bsv_rpc v1.0.0-alpha3 BsvRpc.Address View Source

Function for Bitcoin address manipulation.

An address struct can be created using BsvRpc.Address.create/1 or BsvRpc.Address.create!/1:

iex> BsvRpc.Address.create("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i")
{:ok, %BsvRpc.Address{
  address: "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i",
  network: :mainnet,
  type: :pubkey
}}

iex> BsvRpc.Address.create!("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i")
%BsvRpc.Address{
  address: "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i",
  network: :mainnet,
  type: :pubkey
}

or from a public key using BsvRpc.Address.create/3 or BsvRpc.Address.create!/3

iex> {:ok, pk} = ExtendedKey.from_string("xpub661MyMwAqRbcGWbSmpbHHMPjxDCw6HoiZQK8eTQCEE6puJeMQDZFBh7CqMVFanFnz7JV9c4TGji3Z1KFRfuFvLUerq2szrDgGMYH4cRwEFL")
...> |> BsvRpc.PublicKey.create()
iex> BsvRpc.Address.create!(pk, :mainnet, :pubkey)
%BsvRpc.Address{
  address: "13guihHjXctzUoc9kyAjyo87nDciv7P5XL",
  network: :mainnet,
  type: :pubkey
}

iex> {:ok, pk} = ExtendedKey.from_string("xpub661MyMwAqRbcGWbSmpbHHMPjxDCw6HoiZQK8eTQCEE6puJeMQDZFBh7CqMVFanFnz7JV9c4TGji3Z1KFRfuFvLUerq2szrDgGMYH4cRwEFL")
...> |> BsvRpc.PublicKey.create()
iex> BsvRpc.Address.create(pk, :mainnet, :pubkey)
{:ok, %BsvRpc.Address{
  address: "13guihHjXctzUoc9kyAjyo87nDciv7P5XL",
  network: :mainnet,
  type: :pubkey
}}

Link to this section Summary

Types

t()

A Bitcoin address.

Functions

Creates an address.

Creates an address from public key.

Creates an address.

Creates an address from public key.

Gets gets hash160 for the address.

Link to this section Types

Link to this type

t()

View Source
t() :: %BsvRpc.Address{
  address: String.t(),
  network: :mainnet | :testnet,
  type: :pubkey | :script
}

A Bitcoin address.

Link to this section Functions

Link to this function

create(address)

View Source
create(String.t()) :: {:error, String.t()} | {:ok, BsvRpc.Address.t()}

Creates an address.

Examples

iex> BsvRpc.Address.create("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i") {:ok, %BsvRpc.Address{

address: "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i",
network: :mainnet,
type: :pubkey

}}

Link to this function

create(key, network, type)

View Source
create(BsvRpc.PublicKey.t(), :mainnet | :testnet, :pubkey | :script) ::
  {:error, String.t()} | {:ok, BsvRpc.Address.t()}

Creates an address from public key.

Examples

iex> {:ok, pk} = ExtendedKey.from_string("xpub661MyMwAqRbcGWbSmpbHHMPjxDCw6HoiZQK8eTQCEE6puJeMQDZFBh7CqMVFanFnz7JV9c4TGji3Z1KFRfuFvLUerq2szrDgGMYH4cRwEFL") ...> |> BsvRpc.PublicKey.create() iex> BsvRpc.Address.create(pk, :mainnet, :pubkey) {:ok, %BsvRpc.Address{

address: "13guihHjXctzUoc9kyAjyo87nDciv7P5XL",
network: :mainnet,
type: :pubkey

}}

Creates an address.

Exception is raised if the address does not validate correctly.

Examples

iex> BsvRpc.Address.create!("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i") %BsvRpc.Address{

address: "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i",
network: :mainnet,
type: :pubkey

}

Link to this function

create!(public_key, network, type)

View Source
create!(BsvRpc.PublicKey.t(), :mainnet | :testnet, :pubkey | :script) ::
  BsvRpc.Address.t()

Creates an address from public key.

Exception is raised if the address does not validate correctly.

Examples

iex> {:ok, pk} = ExtendedKey.from_string("xpub661MyMwAqRbcGWbSmpbHHMPjxDCw6HoiZQK8eTQCEE6puJeMQDZFBh7CqMVFanFnz7JV9c4TGji3Z1KFRfuFvLUerq2szrDgGMYH4cRwEFL") ...> |> BsvRpc.PublicKey.create() iex> BsvRpc.Address.create!(pk, :mainnet, :pubkey) %BsvRpc.Address{

address: "13guihHjXctzUoc9kyAjyo87nDciv7P5XL",
network: :mainnet,
type: :pubkey

}

Gets gets hash160 for the address.

Examples

iex> {:ok, address} = BsvRpc.Address.create("1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i") iex> BsvRpc.Address.hash160(address) <<101, 161, 96, 89, 134, 74, 47, 219, 199, 201, 154, 71, 35, 168, 57, 91, 198, 241, 136, 235>>