Method: BlockBee::API#initialize
- Defined in:
- lib/blockbee.rb
#initialize(coin, callback_url, api_key, own_address: '', parameters: {}, bb_params: {}) ⇒ API
Returns a new instance of API.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/blockbee.rb', line 46 def initialize(coin, callback_url, api_key, own_address: '', parameters: {}, bb_params: {}) raise BlockBee::MissingAPIKeyError, 'Provide your API Key' if api_key.nil? || api_key.empty? raise BlockBee::CallbackURLMissing, 'Provide your callback URL' if callback_url.nil? || callback_url.empty? raise ArgumentError, 'Coin must be a string' unless coin.nil? || coin.is_a?(String) raise ArgumentError, 'Parameters must be a hash' unless parameters.is_a?(Hash) raise ArgumentError, 'BB params must be a hash' unless bb_params.is_a?(Hash) begin _cb = URI.parse(callback_url) raise ArgumentError, 'Invalid callback URL' unless _cb.scheme && _cb.host rescue URI::InvalidURIError raise ArgumentError, 'Invalid callback URL format' end # Preserve original scheme (HTTP/HTTPS) for development flexibility if _cb.scheme.downcase == 'https' @callback_url = URI::HTTPS.build( host: _cb.host, path: _cb.path, query: URI.encode_www_form(parameters) ) else @callback_url = URI::HTTP.build( host: _cb.host, path: _cb.path, query: URI.encode_www_form(parameters) ) end @coin = coin @own_address = own_address @parameters = parameters @bb_params = bb_params @api_key = api_key @payment_address = '' end |