Packages

A simple Elixir API client for the Ark Blockchain.

Current section

Files

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

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

defmodule ArkEcosystem.Client.API.One.Accounts do
@moduledoc """
Documentation for ArkEcosystem.Client.API.One.Accounts
"""
import ArkEcosystem.Client
@doc """
Get an account.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.account(client, "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP")
{:ok,
%ArkEcosystem.Client.API.One.Models.Account{
address: "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP",
balance: "2164427163870",
multisignatures: [],
public_key: "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec",
second_public_key: nil,
second_signature: 0,
u_multisignatures: [],
unconfirmed_balance: "2164427163870",
unconfirmed_signature: 0
}}
"""
@spec account(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def account(client, address) do
client |> get("accounts", query: [address: address])
end
@doc """
Get the balance of an account.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.balance(client, "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP")
{:ok,
%{
"balance" => "2164627163870",
"success" => true,
"unconfirmedBalance" => "2164627163870"
}}
"""
@spec balance(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def balance(client, address) do
client |> get("accounts/getBalance", query: [address: address])
end
@doc """
Get the delegates of an account.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.delegates(client, "DFAVFGgkpYc4hrvUNZRf9Tpi7irWeKexLc")
{:ok,
[
%ArkEcosystem.Client.API.One.Models.Delegate{
address: "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP",
approval: 0.09,
missedblocks: 1748,
producedblocks: 3469,
productivity: 66.49,
public_key: "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec",
rate: 17,
username: "arkoar.group",
vote: "12385839821762"
}
]}
"""
@spec delegates(Tesla.Client.t(), String.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def delegates(client, address, parameters \\ []) do
client |> get("accounts/delegates", query: [address: address] ++ parameters)
end
@doc """
Get the delegate fee of an account.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.fee(client)
{:ok, %{"fee" => 2500000000, "success" => true}}
"""
@spec fee(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def fee(client) do
client |> get("accounts/delegates/fee")
end
@doc """
Get the public key of an account.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.publickey(client, "DQCZQzibtABoggT9ygSzFNQ3A7PJyxttPP")
{:ok, "02d21954fb256662f82560cdced947af040e5190d9a08e65ee29443090499b22ec"}
"""
@spec publickey(Tesla.Client.t(), String.t()) :: ArkEcosystem.Client.response()
def publickey(client, address) do
client |> get("accounts/getPublickey", query: [address: address])
end
@doc """
Get the total amount of accounts.
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.count(client)
{:ok,
%{
"count" => 841,
"success" => true
}}
"""
@spec count(Tesla.Client.t()) :: ArkEcosystem.Client.response()
def count(client) do
client |> get("accounts/count")
end
@doc """
Get all accounts
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.all(client, [limit: 30, offset: 10])
// TODO
"""
@spec all(Tesla.Client.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def all(client, parameters \\ []) do
client |> get("accounts/getAllAccounts", query: parameters)
end
@doc """
Get the top accounts
## Examples
iex> ArkEcosystem.Client.API.One.Accounts.top(client, [limit: 30, offset: 10])
{:ok,
%{
"accounts" => [
%{
"address" => "DGihocTkwDygiFvmg6aG8jThYTic47GzU9",
"balance" => "11499593562120633",
"publicKey" => "024c8247388a02ecd1de2a3e3fd5b7c61ecc2797fa3776599d558333ef1802d231"
},
...
],
"success" => true
}}
"""
@spec top(Tesla.Client.t(), Keyword.t()) :: ArkEcosystem.Client.response()
def top(client, parameters \\ []) do
client |> get("accounts/top", query: parameters)
end
end