Class: Casper::CasperClient
- Inherits:
-
Object
- Object
- Casper::CasperClient
- Defined in:
- lib/casper_network.rb
Overview
Interacting with the network
Instance Attribute Summary collapse
-
#ip_address ⇒ Object
Returns the value of attribute ip_address.
-
#port ⇒ Object
Returns the value of attribute port.
-
#state_root_hash ⇒ Object
Returns the value of attribute state_root_hash.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
-
#chain_get_block(block_hash) ⇒ Hash
Block_info.
-
#chain_get_block_transfers(block_hash = "") ⇒ Array<Hash>
Block_transfers.
-
#chain_get_eraInfo_by_SwitchBlock(block_hash) ⇒ Hash
Era_summary.
-
#chain_get_StateRootHash(block_hash = "") ⇒ String
State_root_hash value.
- #get_error ⇒ Object
-
#info_get_deploy(deploy_hash) ⇒ Hash
Get information about a single deploy by hash.
-
#info_get_peers ⇒ Array<Hash>
Peers array.
-
#info_get_status ⇒ Object
Receive node status information.
-
#initialize(ip_address) ⇒ CasperClient
constructor
Constructor.
- #put_deploy(deploy) ⇒ Object
-
#state_get_AuctionInfo(block_hash = "") ⇒ Hash
Returns current auction system contract information.
- #state_get_balance(state_root_hash, balance_uref) ⇒ Object
- #state_get_dictionary_item(state_root_hash, item_key, uref) ⇒ Object
- #state_get_item(state_root_hash, key, path) ⇒ Object
Constructor Details
#initialize(ip_address) ⇒ CasperClient
Constructor
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/casper_network.rb', line 25 def initialize(ip_address) @ip_address = ip_address @url = "http://" + @ip_address + ":7777/rpc" @state_root_hash = "" @peer_array = [] @block_hash = "" @deploy = {} @node_status = {} @block_transfers = [] @block_info = {} @era_summary = {} @balance_value = "" @auction_state = {} @rpc_error = Casper::RpcError::ErrorHandle.new @err = @rpc_error.error_handling(@url) @pr = [] end |
Instance Attribute Details
#ip_address ⇒ Object
Returns the value of attribute ip_address.
21 22 23 |
# File 'lib/casper_network.rb', line 21 def ip_address @ip_address end |
#port ⇒ Object
Returns the value of attribute port.
21 22 23 |
# File 'lib/casper_network.rb', line 21 def port @port end |
#state_root_hash ⇒ Object
Returns the value of attribute state_root_hash.
21 22 23 |
# File 'lib/casper_network.rb', line 21 def state_root_hash @state_root_hash end |
#url ⇒ Object
Returns the value of attribute url.
21 22 23 |
# File 'lib/casper_network.rb', line 21 def url @url end |
Instance Method Details
#chain_get_block(block_hash) ⇒ Hash
Returns block_info.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/casper_network.rb', line 172 def chain_get_block(block_hash) begin state = Timeout::timeout(10) { client = Jimson::Client.new(@url) result = client.chain_get_block({"block_identifier" => {"Hash" => block_hash}}) @block_info = result["block"] if (!@block_info.empty?() && @block_info["hash"] != block_hash) raise("Returned block does not have a matching hash.") else @block_info.deep_symbolize_keys! Casper::Entity::Block.new(@block_info[:hash], @block_info[:header], @block_info[:body], @block_info[:proofs]) end } rescue Casper::RpcError::InvalidParameter.error end end |
#chain_get_block_transfers(block_hash = "") ⇒ Array<Hash>
Returns block_transfers.
155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/casper_network.rb', line 155 def chain_get_block_transfers(block_hash = "") begin status = Timeout::timeout(5) { client = Jimson::Client.new(@url) response = client.chain_get_block_transfers({ "block_identifier" => {"Hash" => block_hash} }) @transfers = response["transfers"] @transfers.map { |transfer| Casper::Entity::Transfer.new(transfer.deep_symbolize_keys!)} } rescue Casper::RpcError::InvalidParameter.error end end |
#chain_get_eraInfo_by_SwitchBlock(block_hash) ⇒ Hash
Returns era_summary.
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/casper_network.rb', line 192 def chain_get_eraInfo_by_SwitchBlock(block_hash) begin state = Timeout::timeout(10) { client = Jimson::Client.new(@url) response = client.chain_get_era_info_by_switch_block("block_identifier" => {"Hash" => block_hash}) @era_summary = response["era_summary"] if @era_summary == nil Casper::RpcError::InvalidParameter.error else @era_summary.deep_symbolize_keys! Casper::Entity::EraSummary.new(@era_summary) end } rescue Casper::RpcError::InvalidParameter.error end end |
#chain_get_StateRootHash(block_hash = "") ⇒ String
Returns state_root_hash value.
80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/casper_network.rb', line 80 def chain_get_StateRootHash(block_hash = "") begin status = Timeout::timeout(10) { client = Jimson::Client.new(@url) result = client.chain_get_state_root_hash @state_root_hash = result["state_root_hash"] } rescue @rpc_error = Casper::RpcError::ErrorHandle.new @error = @rpc_error.error_handling(@url) end end |
#get_error ⇒ Object
46 47 48 |
# File 'lib/casper_network.rb', line 46 def get_error @err end |
#info_get_deploy(deploy_hash) ⇒ Hash
Get information about a single deploy by hash. def info_get_deploy(deploy_hash)
begin
status = Timeout::timeout(10) {
client = Jimson::Client.new(@url)
response = client.info_get_deploy({"deploy_hash"=> deploy_hash })
if (deploy_hash == "" || deploy_hash == nil)
Casper::RpcError::InvalidParameter.error
end
@deploy = response["deploy"]
# @deploy.keys.each do |key|
# @deploy[(key.to_sym rescue key) || key] = @deploy.delete(key)
# end
@deploy
}
rescue
Casper::RpcError::InvalidParameter.error
end
end
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/casper_network.rb', line 114 def info_get_deploy(deploy_hash) @dep = nil begin status = Timeout::timeout(60) { client = Jimson::Client.new(@url) response = client.info_get_deploy({"deploy_hash"=> deploy_hash }) if (deploy_hash == "" || deploy_hash == nil) Casper::RpcError::InvalidParameter.error end # @deploy.keys.each do |key| # @deploy[(key.to_sym rescue key) || key] = @deploy.delete(key) # end temp = [] @deploy = response["deploy"] @deploy.deep_symbolize_keys! Casper::Entity::Deploy.new(@deploy[:hash], @deploy[:header], @deploy[:payment], @deploy[:session], @deploy[:approvals]) } rescue Casper::RpcError::InvalidParameter.error end end |
#info_get_peers ⇒ Array<Hash>
Returns peers array.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/casper_network.rb', line 63 def info_get_peers begin client = Jimson::Client.new(@url) response = client.info_get_peers @peers = response["peers"] # @peers.map! do |peer| # peer.symbolize_keys # end @peers.map { |item| @pr << Casper::Entity::Peer.new(item.symbolize_keys) } @pr rescue @rpc_error = Casper::RpcError::ErrorHandle.new @error = @rpc_error.error_handling(@url) end end |
#info_get_status ⇒ Object
Receive node status information
139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/casper_network.rb', line 139 def info_get_status begin status = Timeout::timeout(10) { client = Jimson::Client.new(@url) @node_status = client.info_get_status @node_status.deep_symbolize_keys! Casper::Entity::Status.new(@node_status) } rescue @rpc_error = Casper::RpcError::ErrorHandle.new @error = @rpc_error.error_handling(@url) end end |
#put_deploy(deploy) ⇒ Object
295 296 297 298 299 |
# File 'lib/casper_network.rb', line 295 def put_deploy(deploy) client = Jimson::Client.new(url) response = client.account_put_deploy(deploy) response['deploy_hash'] end |
#state_get_AuctionInfo(block_hash = "") ⇒ Hash
Returns current auction system contract information.
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
# File 'lib/casper_network.rb', line 274 def state_get_AuctionInfo(block_hash = "") begin state = Timeout::timeout(50) { client = Jimson::Client.new(@url) response = client.state_get_auction_info @auction_state = response['auction_state'] @auction_state.deep_symbolize_keys! state_root_hash = @auction_state[:state_root_hash] block_height = @auction_state[:block_height] era_validators = @auction_state[:era_validators] @auction_state bids = @auction_state[:bids] Casper::Entity::AuctionState.new(state_root_hash, block_height, era_validators, bids) } rescue @rpc_error = Casper::RpcError::ErrorHandle.new @error = @rpc_error.error_handling(@url) end end |
#state_get_balance(state_root_hash, balance_uref) ⇒ Object
256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 |
# File 'lib/casper_network.rb', line 256 def state_get_balance(state_root_hash, balance_uref) begin state = Timeout::timeout(5) { client = Jimson::Client.new(@url) response = client.state_get_balance({ "state_root_hash" => state_root_hash, "purse_uref" => balance_uref }) @balance_value = response["balance_value"] @balance_value } rescue Casper::RpcError::InvalidParameter.error end end |
#state_get_dictionary_item(state_root_hash, item_key, uref) ⇒ Object
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/casper_network.rb', line 235 def state_get_dictionary_item(state_root_hash, item_key, uref) begin state = Timeout::timeout(10) { client = Jimson::Client.new(@url) response = client.state_get_dictionary_item({ "state_root_hash" => state_root_hash, "dictionary_identifier" => {'URef' => {'seed_uref' => uref, 'dictionary_item_key' => item_key} }}) @stored_value = response["stored_value"] @stored_value.deep_symbolize_keys! # cl_type = @stored_value[:CLValue][:cl_type] # bytes = @stored_value[:CLValue][:bytes] DeploySerializer.new().build_cl_value(@stored_value[:CLValue]) } rescue Casper::RpcError::InvalidParameter.error end end |
#state_get_item(state_root_hash, key, path) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/casper_network.rb', line 214 def state_get_item(state_root_hash, key, path) begin state = Timeout::timeout(20) { client = Jimson::Client.new(@url) response = client.state_get_item({ "state_root_hash" => state_root_hash, "key" => key, "path" => path }) @stored_value = response["stored_value"] @stored_value.deep_symbolize_keys! Casper::Entity::StoredValue.new(@stored_value) } rescue Casper::RpcError::InvalidParameter.error end end |