Examples

Initialization

1require 'arkecosystem/client'
2 
3manager = ArkEcosystem::Client::ConnectionManager.new()
4 
5connection = manager.connect(ArkEcosystem::Client::Connection.new({
6 host: "http://my.ark.node:port/api/"
7}), 'main')

Blocks

This service API grants access to the blocks resource . A block is a signed set of transactions created by a delegate and permanently committed to the ARK blockchain.

It is not possible to POST a block through the public API. Relay Nodes accept only blocks posted by a delegate at the correct time through the internal API.

List All Blocks

1blocks = connection.blocks.all()
2 
3print blocks.class
4 
5>>> [Faraday::Response]

Retrieve a Block

1block = connection.blocks.show("validBlockId")
2 
3print block.class
4 
5>>> [Faraday::Response]

List All Transactions of a Block

1blockTransactions = connection.blocks.transactions("validBlockId")
2 
3print blockTransactions.class
4 
5>>> [Faraday::Response]

Search All Blocks

1searchedBlock = connection.blocks.search(id: "validBlockId")
2 
3print searchedBlock.class
4 
5>>> [Faraday::Response]

Delegates

The client SDK can be used to query the delegate resource .

A delegate is a regular wallet that has broadcast a registration transaction, acquired a sufficient number of votes, and has a Relay Node configured to forge new blocks through a forger module. At any time only 51 delegates are active. They are cost-efficient miners running the ARK network.

Voters are wallets which have broadcast a vote transaction on a delegate. A vote remains active until an un-vote transaction is sent (it does not have to be recast unless a wallet wishes to change from delegate). Voting for a delegate does not give the delegate access to the wallet nor does it lock the coins in it.

List All Delegates

1delegates = connection.delegates.all()
2 
3print delegates.class
4 
5>>> [Faraday::Response]

Retrieve a Delegate

1delegate = connection.delegates.show("validDelegateId")
2 
3print delegate.class
4 
5>>> [Faraday::Response]

List All Blocks of a Delegate

1delegateBlocks = connection.delegates.blocks("validDelegateId")
2 
3print delegateBlocks.class
4 
5>>> [Faraday::Response]

List All Voters of a Delegate

1delegateVoters = connection.delegates.voters(client, "validDelegateId")
2 
3print delegateVoters.class
4 
5>>> [Faraday::Response]

Node

The ARK network consists of different anonymous nodes (servers), maintaining the public ledger, validating transactions and blocks and providing APIs. The node resource allows for querying the health and configurations of the node used by the instantiated client.

Retrieve the Configuration

1nodeConfiguration = connection.node.configuration()
2 
3print nodeConfiguration.class
4 
5>>> [Faraday::Response]

Retrieve the Status

1nodeStatus = connection.node.status()
2 
3print nodeStatus.class
4 
5>>> [Faraday::Response]

Retrieve the Syncing Status

1nodeSyncingStatus = connection.node.syncing()
2 
3print nodeSyncingStatus.class
4 
5>>> [Faraday::Response]

Peers

Each node is connected to a set of peers, which are Relay or Delegate Nodes as well. The peers resource provides access to all peers connected to our node.

Peers have made their Public API available for use; however for mission-critical queries and transaction posting you should use a node which is under your control. We provide a guide to setting up a Relay Node here .

List All Peers

1peers = connection.peers.all()
2 
3print peers.class
4 
5>>> [Faraday::Response]

Retrieve a Peer

1peer = connection.peers.show("validIpAddress")
2 
3print peer.class
4 
5>>> [Faraday::Response]

Transactions

The heart of any blockchain is formed by its transactions; state-altering payloads signed by a wallet. Most likely you will be querying for transactions most often, using the transaction resource .

A transaction is the only object which may be posted by a non-delegate. It requires a signature from a wallet containing a sufficient amount of ARK.

Create a Transaction

1transaction = connection.transactions.create(id: "dummyCreatedId")
2 
3print transaction.class
4 
5>>> [Faraday::Response]

Retrieve a Transaction

1transaction = connection.transactions.show("validTransactionId")
2 
3print transaction.class
4 
5>>> [Faraday::Response]

List All Transactions

1transactions = connection.transactions.all()
2 
3print transactions.class
4 
5>>> [Faraday::Response]

List All Unconfirmed Transactions

1unconfirmedTransactions = connection.transactions.all_unconfirmed()
2 
3print unconfirmedTransactions.class
4 
5>>> [Faraday::Response]

Get Unconfirmed Transaction

1unconfirmedTransaction = connection.transactions.show_unconfirmed("validTransactionId")
2 
3print unconfirmedTransaction.class
4 
5>>> [Faraday::Response]

Search Transactions

1transactions = connection.transactions.search(id: "validTransactionId")
2 
3print transactions.class
4 
5>>> [Faraday::Response]

List Transaction Types

1transactionTypes = connection.transactions.types()
2 
3print transactionTypes.class
4 
5>>> [Faraday::Response]

Votes

A vote is a transaction sub-type, where the asset field contains a votes object and the transaction.type is 3.

List All Votes

1votes = connection.votes.all()
2 
3print votes.class
4 
5>>> [Faraday::Response]

Retrieve a Vote

1vote = connection.votes.types("validVoteId")
2 
3print vote.class
4 
5>>> [Faraday::Response]

Wallets

The wallet resource provides access to:

  • Wallets.
  • Incoming and outgoing transactions per wallet.
  • Each wallet’s votes.

Retrieve All Wallets

1wallets = connection.wallets.all()
2 
3print wallets.class
4 
5>>> [Faraday::Response]

Retrieve a Wallet

1wallet = connection.wallets.show("validWalletId")
2 
3print wallet.class
4 
5>>> [Faraday::Response]

List All Transactions of a Wallet

1walletTransactions = connection.wallets.transactions("validWalletId")
2 
3print walletTransactions.class
4 
5>>> [Faraday::Response]

List All Received Transactions of a Wallet

1walletReceivedTransactions = connection.wallets.received_transactions("validWalletId")
2 
3print walletReceivedTransactions.class
4 
5>>> [Faraday::Response]

List All Sent Transactions of a Wallet

1walletSentTransactions = connection.wallets.sent_transactions("validWalletId")
2 
3print walletReceivedTransactions.class
4 
5>>> [Faraday::Response]

List All Votes of a Wallet

1walletVotes = connection.wallets.votes("validWalletId")
2 
3print walletVotes.class
4 
5>>> [Faraday::Response]

List All Top Wallets

1topWallets = connection.wallets.top()
2 
3print topWallets.class
4 
5>>> [Faraday::Response]

Search All Wallets

1wallets = connection.wallets.search(id: "validWalletId")
2 
3print wallets.class
4 
5>>> [Faraday::Response]
Last updated 2 years ago
Edit Page
Share: