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
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
t()
View Sourcet() :: %BsvRpc.Address{ address: String.t(), network: :mainnet | :testnet, type: :pubkey | :script }
A Bitcoin address.
Link to this section Functions
create(address)
View Sourcecreate(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
}}
create(key, network, type)
View Sourcecreate(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
}
create!(public_key, network, type)
View Sourcecreate!(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>>