Packages

A simple Elixir API client for the Ark Blockchain.

Current section

Files

Jump to
arkecosystem_client lib arkecosystem client api one delegates.ex
Raw

lib/arkecosystem/client/api/one/delegates.ex

defmodule ArkEcosystem.Client.API.One.Delegates do
@moduledoc """
Documentation for ArkEcosystem.Client.API.One.Delegates
"""
import ArkEcosystem.Client
@doc """
Get the count of delegates.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.count(client)
{:ok, 198}
"""
@spec count(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def count(client) do
client |> get("delegates/count")
end
@doc """
Get a single delegate.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.delegate(client)
{:ok,
%ArkEcosystem.Client.API.One.Models.Delegate{
address: "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP",
approval: 0.09,
missedblocks: 1748,
producedblocks: 3473,
productivity: 66.52,
public_key: "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec",
rate: 17,
username: "arkoar.group",
vote: "12385839821762"
}}
"""
@spec delegate(Tesla.Client.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def delegate(client, parameters \\ []) do
client |> get("delegates/get", query: parameters)
end
@doc """
Get all delegates.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.delegates(client)
{:ok,
[
%ArkEcosystem.Client.API.One.Models.Delegate{
address: "DARiJqhogp2Lu6bxufUFQQMuMyZbxjCydN",
approval: 4.32,
missedblocks: 1722,
producedblocks: 61445,
productivity: 97.27,
public_key: "022cca9529ec97a772156c152a00aad155ee6708243e65c9d211a589cb5d43234d",
rate: 1,
username: "boldninja",
vote: "566475956800532"
},
%ArkEcosystem.Client.API.One.Models.Delegate{...},
%ArkEcosystem.Client.API.One.Models.Delegate{...},
%ArkEcosystem.Client.API.One.Models.Delegate{...},
...
]}
"""
@spec delegates(Tesla.Client.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def delegates(client, parameters \\ []) do
client |> get("delegates", query: parameters)
end
@doc """
Get Delegate Fee
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.fee(client)
{:ok, 2500000000}
"""
@spec fee(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def fee(client) do
client |> get("delegates/fee")
end
@doc """
Get the amount of ARKs forged by an account.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.forged_by_account(client, "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec")
{:ok,
%{
"fees" => "190000000",
"forged" => "695190000000",
"rewards" => "695000000000",
"success" => true
}}
"""
@spec forged_by_account(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def forged_by_account(client, generatorPublicKey) do
client |> get(
"delegates/forging/getForgedByAccount",
query: [generatorPublicKey: generatorPublicKey]
)
end
@doc """
Get a delegate's forging status
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.forging_status(client, "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec")
{:ok, true}
"""
@spec forging_status(Tesla.Client.t(), String.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def forging_status(client, public_key, parameters \\ []) do
client |> get(
"delegates/forging/status",
query: [publicKey: public_key] ++ parameters
)
end
@doc """
Get the next forgers.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.next_forgers(client)
{:ok,
%{
"currentBlock" => 3102247,
"currentSlot" => 4185367,
"delegates" => ["02845161cfca4d6ddde8e0d53538b6f881fb3ad9383cd77cebc55375dd6fd17663",
"02ce086b1e1609c691c0d2e0670a15248a7244195798bcc578b12133fe04defe59",
"033f28ad2e9b897d46f1e67c7c52070e9ca46b04c0679ebb21fb236719e38aade3",
"031e195f2ba9afcfbea54866b0dac663f568620fb098fdea239f87b4e36c282e44",
"0200af8a7a8572bcb3fcd305248343358198c8ed5bd004bbacfb16e7f0b09e532b",
"03794e95585ab18fd95c963cfb2ec24f37ad159f6a43e05dd826577b58a32de309",
"0326580718fc86ba609799ac95fcd2721af259beb5afa81bfce0ab7d9fe95de991",
"02a9a0ac34a94f9d27fd9b4b56eb3c565a9a3f61e660f269775fb456f7f3301586",
"0257b7724e97cd832e0c28533a86da5220656f9b5122141daab20e8526decce01f",
"035f47535447d5511ba08fc4d805ea662a1f47bfba9204cc9dee77199c6f98a505"],
"success" => true
}}
"""
@spec next_forgers(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def next_forgers(client) do
client |> get("delegates/getNextForgers")
end
@doc """
Search for specific delegates.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.search(client, "arkoar")
{:ok,
[
%ArkEcosystem.Client.API.One.Models.Delegate{
address: "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP",
approval: nil,
missedblocks: 1748,
producedblocks: 3476,
productivity: nil,
public_key: "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec",
rate: nil,
username: "arkoar.group",
vote: "12385839821762"
}
]}
"""
@spec search(
Tesla.Client.t(),
String.t(),
Keyword.t()
) :: ArkEcosystem.Client.response()
def search(client, q, parameters \\ []) do
client |> get("delegates/search", query: [q: q] ++ parameters)
end
@doc """
Get a list of voters for a delegate.
## Examples
iex> ArkEcosystem.Client.API.One.Delegates.voters(client, "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec")
iex(10)> ArkEcosystem.Client.API.One.Delegates.voters(client, "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec")
{:ok,
[
%ArkEcosystem.Client.API.One.Models.Account{
address: "DP8SxqSnCV3Rsdvjeqrum2HA2CAgymCPJP",
balance: "200000000",
multisignatures: nil,
public_key: "023050fa9cea524bb908ffc8836c888ffd1b00d6fb863624c2340f828ac40b4fd1",
second_public_key: nil,
second_signature: nil,
u_multisignatures: nil,
unconfirmed_balance: nil,
unconfirmed_signature: nil
},
%ArkEcosystem.Client.API.One.Models.Account{...},
%ArkEcosystem.Client.API.One.Models.Account{...},
...
]}
"""
@spec voters(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def voters(client, public_key) do
client |> get("delegates/voters", query: [publicKey: public_key])
end
end