0.0
No commit activity in last 3 years
No release in over 3 years
Client SDK for accessing BlockchainNode API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.12
~> 0.9
~> 3
~> 0.9
 Project Readme

BlockchainNode (BCN) Ruby Client

Gem Version

This gem is a secure RPC wrapper to connect to nodes launched by https://blockchainnode.io.

Installation and Configuration

gem install blockchain-node

The client is secured using a client-credentials OAUTH flow. You can generate API keys in your BCN account.

If you are using a Rails application, add the following initializer to config/initializers/blockchain_node.rb

BlockchainNode.configure do |config|
  config.client_id = "CLIENT_ID"
  config.client_secret = "CLIENT_SECRET"
end

Security Note: It is recommended that you secure your CLIENT_ID and CLIENT_SECRET and do not check that into your code repo. If your CLIENT_ID and CLIENT_SECRET are compromised, your wallet will be secure as long as it is encrypted and not left unlocked.

Usage

Initialize the library

# the node ID from your BCN console
node_id = "123ABC"
client = BlockchainNode::Client.new(node_id)

Make RPC method calls directly. Pass in parameters as args to the method call.

Other helper methods:

# returns a list of nodes you have running on your account
client.nodes

Bitcoin Example

List of Bitcoin RPC Calls

Ethereum Example

Notice, for geth, responses are returned in hex so they have to be converted to an integer.

Balances are stored as integers with 18 decimals of spacing (wei). Convert to ether. Helpful Calculator

resp = client.eth_blockNumber
Integer(resp[:response])

client.personal_listAccounts

resp = client.eth_getBalance("0xf4c2a25fcbaad4e568fb74d6644b164e999d3132", "latest")
Integer(resp[:response]) / 1000000000000000000.0

List of Ethereum (geth) RPC Calls

Contact

Comments and feedback are welcome. Send an email to matt at blockchainnode.io.

License

This code is free to use under the terms of the MIT license.