Current section
Files
Jump to
Current section
Files
lib/arkecosystem/client/api/one/blocks.ex
defmodule ArkEcosystem.Client.API.One.Blocks do
@moduledoc """
Documentation for ArkEcosystem.Client.API.One.Blocks
"""
import ArkEcosystem.Client
@doc """
Get block by id.
## Examples
iex(3)> ArkEcosystem.Client.API.One.Blocks.block(client, "887102556000070987")
{:ok,
%ArkEcosystem.Client.API.One.Models.Block{
block_signature: "3045022100cf25e7aa0ad979b8a681930dda181337f6aec2f45f95fc15f8082a0acab7d501022061e66f303278245abeb30ec63e9cf282d6180d1f10439f0b11741bafa52a8e18",
confirmations: 27,
generator_id: "DHQ4Fjsyiop3qBR4otAjAu6cBHkgRELqGA",
generator_public_key: "0275776018638e5c40f1b922901e96cac2caa734585ef302b4a2801ee9a338a456",
height: 3102078,
id: "887102556000070987",
number_of_transactions: 0,
payload_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
payload_length: 0,
previous_block: "4763192919900613939",
reward: 200000000,
timestamp: 33481344,
total_amount: 0,
total_fee: 0,
total_forged: "200000000",
version: 0
}}
"""
@spec block(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def block(client, id) do
client |> get("blocks/get", query: [id: id])
end
@doc """
Get all blocks.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.blocks(client)
{:ok,
[
%ArkEcosystem.Client.API.One.Models.Block{
block_signature: "3045022100cf25e7aa0ad979b8a681930dda181337f6aec2f45f95fc15f8082a0acab7d501022061e66f303278245abeb30ec63e9cf282d6180d1f10439f0b11741bafa52a8e18",
confirmations: 1,
generator_id: "DHQ4Fjsyiop3qBR4otAjAu6cBHkgRELqGA",
generator_public_key: "0275776018638e5c40f1b922901e96cac2caa734585ef302b4a2801ee9a338a456",
height: 3102078,
id: "887102556000070987",
number_of_transactions: 0,
payload_hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
payload_length: 0,
previous_block: "4763192919900613939",
reward: 200000000,
timestamp: 33481344,
total_amount: 0,
total_fee: 0,
total_forged: "200000000",
version: 0
},
%ArkEcosystem.Client.API.One.Models.Block{...},
%ArkEcosystem.Client.API.One.Models.Block{...},
%ArkEcosystem.Client.API.One.Models.Block{...},
%ArkEcosystem.Client.API.One.Models.Block{...},
...
]}
"""
@spec blocks(Tesla.Client.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def blocks(client, parameters \\ []) do
client |> get("blocks", query: parameters)
end
@doc """
Get the blockchain epoch.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.epoch(client)
{:ok, "2017-03-21T13:00:00.000Z"}
"""
@spec epoch(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def epoch(client) do
client |> get("blocks/getEpoch")
end
@doc """
Get the transaction fee for sending "normal" transactions
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.fee(client)
{:ok, 10000000}
"""
@spec fee(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def fee(client) do
client |> get("blocks/getFee")
end
@doc """
Get the network fees.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.fees(client)
{:ok,
%{
"delegate" => 2500000000,
"multisignature" => 500000000,
"secondsignature" => 500000000,
"send" => 10000000,
"vote" => 100000000
}}
"""
@spec fees(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def fees(client) do
client |> get("blocks/getFees")
end
@doc """
Get the blockchain height.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.height(client)
{:ok, %{"height" => 3102123, "id" => "6065299679901800950", "success" => true}}
"""
@spec height(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def height(client) do
client |> get("blocks/getHeight")
end
@doc """
Get the blockchain milestone.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.milestone(client)
{:ok, 1}
"""
@spec milestone(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def milestone(client) do
client |> get("blocks/getMilestone")
end
@doc """
Get the blockchain nethash.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.nethash(client)
{:ok, "578e820911f24e039733b45e4882b73e301f813a0d2c31330dafda84534ffa23"}
"""
@spec nethash(Tesla.Client) :: ArkEcosystem.Client.response()
def nethash(client) do
client |> get("blocks/getNethash")
end
@doc """
Get the blockchain reward.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.reward(client)
{:ok, 200000000}
"""
@spec reward(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def reward(client) do
client |> get("blocks/getReward")
end
@doc """
Get the blockchain status.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.status(client)
{:ok,
%{
"epoch" => "2017-03-21T13:00:00.000Z",
"fee" => 10000000,
"height" => 3102147,
"milestone" => 1,
"nethash" => "578e820911f24e039733b45e4882b73e301f813a0d2c31330dafda84534ffa23",
"reward" => 200000000,
"success" => true,
"supply" => 13120429400000000
}}
"""
@spec status(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def status(client) do
client |> get("blocks/getStatus")
end
@doc """
Get the blockchain supply.
## Examples
iex> ArkEcosystem.Client.API.One.Blocks.supply(client)
{:ok, 13120431600000000}
"""
@spec supply(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def supply(client) do
client |> get("blocks/getSupply")
end
end