Class: IcAgent::Client
- Inherits:
-
Object
- Object
- IcAgent::Client
- Defined in:
- lib/ic_agent/client.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
120
- DEFAULT_TIMEOUT_QUERY =
30
Instance Method Summary collapse
- #call(canister_id, req_id, data) ⇒ Object
-
#initialize(url = 'https://ic0.app') ⇒ Client
constructor
A new instance of Client.
- #query(canister_id, data) ⇒ Object
- #read_state(canister_id, data) ⇒ Object
- #status(timeout: DEFAULT_TIMEOUT_QUERY) ⇒ Object
Constructor Details
#initialize(url = 'https://ic0.app') ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/ic_agent/client.rb', line 8 def initialize(url = 'https://ic0.app') @url = url @conn = Faraday.new(url: url) do |faraday| faraday.request :url_encoded faraday.adapter Faraday.default_adapter faraday.headers['Content-Type'] = 'application/cbor' faraday..timeout = DEFAULT_TIMEOUT faraday..open_timeout = DEFAULT_TIMEOUT_QUERY end end |
Instance Method Details
#call(canister_id, req_id, data) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/ic_agent/client.rb', line 26 def call(canister_id, req_id, data) endpoint = "/api/v2/canister/#{canister_id}/call" ret = @conn.post(endpoint, data) ret.body.force_encoding('ISO-8859-1').encode('UTF-8') req_id end |
#query(canister_id, data) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/ic_agent/client.rb', line 19 def query(canister_id, data) endpoint = "/api/v2/canister/#{canister_id}/query" ret = @conn.post(endpoint, data) ret.body.force_encoding('ISO-8859-1').encode('UTF-8') ret.body end |
#read_state(canister_id, data) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/ic_agent/client.rb', line 33 def read_state(canister_id, data) endpoint = "/api/v2/canister/#{canister_id}/read_state" ret = @conn.post(endpoint, data) ret.body.force_encoding('ISO-8859-1').encode('UTF-8') ret.body end |
#status(timeout: DEFAULT_TIMEOUT_QUERY) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/ic_agent/client.rb', line 40 def status(timeout: DEFAULT_TIMEOUT_QUERY) endpoint = '/api/v2/status' ret = @conn.get(endpoint, timeout: timeout) puts "client.status: #{ret.body.force_encoding('ISO-8859-1').encode('UTF-8')}" ret.body end |