Current section

Files

Jump to
bitcoinex test network.ex
Raw

test/network.ex

defmodule Bitcoinex.Network do
@enforce_keys [
:name,
:hrp_segwit_prefix,
:p2pkh_version_decimal_prefix,
:p2sh_version_decimal_prefix
]
defstruct [
:name,
:hrp_segwit_prefix,
:p2pkh_version_decimal_prefix,
:p2sh_version_decimal_prefix
]
@type t() :: %__MODULE__{
name: atom,
hrp_segwit_prefix: String.t(),
p2pkh_version_decimal_prefix: integer(),
p2sh_version_decimal_prefix: integer()
}
@type network_name :: :mainnet | :testnet | :regtest
def supported_networks() do
[
mainnet(),
testnet(),
regtest()
]
end
def mainnet do
%__MODULE__{
name: :mainnet,
hrp_segwit_prefix: "bc",
p2pkh_version_decimal_prefix: 0,
p2sh_version_decimal_prefix: 5
}
end
def testnet do
%__MODULE__{
name: :testnet,
hrp_segwit_prefix: "tb",
p2pkh_version_decimal_prefix: 111,
p2sh_version_decimal_prefix: 196
}
end
def regtest do
%__MODULE__{
name: :regtest,
hrp_segwit_prefix: "bcrt",
p2pkh_version_decimal_prefix: 111,
p2sh_version_decimal_prefix: 196
}
end
end