From 564b5e4a3e15994682c3331c7f7258752250d64d Mon Sep 17 00:00:00 2001 From: shaojunda Date: Wed, 8 Jul 2020 18:16:15 +0800 Subject: [PATCH] feat: support manually config http timeout --- lib/ckb/api.rb | 4 ++-- lib/ckb/rpc.rb | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/ckb/api.rb b/lib/ckb/api.rb index 68add76e..54c4b2ca 100644 --- a/lib/ckb/api.rb +++ b/lib/ckb/api.rb @@ -21,8 +21,8 @@ class API attr_reader :multi_sign_secp_cell_type_hash attr_reader :multi_sign_secp_group_out_point - def initialize(host: CKB::RPC::DEFAULT_URL, mode: MODE::TESTNET) - @rpc = CKB::RPC.new(host: host) + def initialize(host: CKB::RPC::DEFAULT_URL, mode: MODE::TESTNET, timeout_config: {}) + @rpc = CKB::RPC.new(host: host, timeout_config: timeout_config) if mode == MODE::TESTNET || mode == MODE::MAINNET # For testnet chain, we can assume the second cell of the first transaction # in the genesis block contains default lock script we can use here. diff --git a/lib/ckb/rpc.rb b/lib/ckb/rpc.rb index 944ab47f..7cb2472d 100644 --- a/lib/ckb/rpc.rb +++ b/lib/ckb/rpc.rb @@ -28,9 +28,12 @@ class RPC DEFAULT_URL = "http://localhost:8114" - def initialize(host: DEFAULT_URL) + def initialize(host: DEFAULT_URL, timeout_config: {}) @uri = URI(host) @http = Net::HTTP::Persistent.new + @http.open_timeout = timeout_config[:open_timeout] if timeout_config[:open_timeout] + @http.read_timeout = timeout_config[:read_timeout] if timeout_config[:read_timeout] + @http.write_timeout = timeout_config[:write_timeout] if timeout_config[:write_timeout] end def method_missing(method, *params)