Module: AdequateCryptoAddress
- Defined in:
- lib/adequate_crypto_address.rb,
lib/adequate_crypto_address/ada.rb,
lib/adequate_crypto_address/bch.rb,
lib/adequate_crypto_address/btc.rb,
lib/adequate_crypto_address/eth.rb,
lib/adequate_crypto_address/ltc.rb,
lib/adequate_crypto_address/sol.rb,
lib/adequate_crypto_address/ton.rb,
lib/adequate_crypto_address/trx.rb,
lib/adequate_crypto_address/xlm.rb,
lib/adequate_crypto_address/xmr.rb,
lib/adequate_crypto_address/xrp.rb,
lib/adequate_crypto_address/xtz.rb,
lib/adequate_crypto_address/zec.rb,
lib/adequate_crypto_address/atom.rb,
lib/adequate_crypto_address/dash.rb,
lib/adequate_crypto_address/doge.rb,
lib/adequate_crypto_address/altcoin.rb,
lib/adequate_crypto_address/version.rb,
lib/adequate_crypto_address/utils/bch.rb,
lib/adequate_crypto_address/utils/xlm.rb,
lib/adequate_crypto_address/utils/bech32.rb,
lib/adequate_crypto_address/utils/monero_base58.rb
Defined Under Namespace
Modules: Utils Classes: Ada, Altcoin, Atom, Bch, Bsc, Btc, Dash, Doge, Eth, InvalidAddress, Ltc, Sol, Ton, Trx, UnknownCurrency, Xlm, Xmr, Xrp, Xtz, Zec
Constant Summary collapse
- Cardano =
Ada- Bitcoincash =
Bch- Bitcoin =
Btc- Ethereum =
Eth- Binancesmartchain =
Bsc- Litecoin =
Ltc- Solana =
Sol- Toncoin =
Ton- Tron =
Trx- Stellar =
Xlm- Monero =
Xmr- Ripple =
Xrp- Tezos =
Xtz- Zcash =
Zec- Cosmos =
Atom- Dogecoin =
Doge- VERSION =
'0.3.0'
Class Method Summary collapse
- .address(address, currency) ⇒ Object
-
.address_type(address, currency) ⇒ Object
Public contract: returns the detected address type as a Symbol when the address is valid for the currency, or nil when it is not.
-
.currency_class(currency) ⇒ Object
Resolve a currency name (string or symbol, any case) to its validator class.
- .valid?(address, currency, type = nil) ⇒ Boolean
Class Method Details
.address(address, currency) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/adequate_crypto_address.rb', line 34 def address(address, currency) klass = currency_class(currency) raise UnknownCurrency, "Wrong currency #{currency}" unless klass klass.new(address) end |
.address_type(address, currency) ⇒ Object
Public contract: returns the detected address type as a Symbol when the address is valid for the currency, or nil when it is not.
43 44 45 |
# File 'lib/adequate_crypto_address.rb', line 43 def address_type(address, currency) address(address, currency).address_type end |
.currency_class(currency) ⇒ Object
Resolve a currency name (string or symbol, any case) to its validator class. Only classes defined directly on this module that implement the validator interface are eligible, so malformed input can never be mistaken for a currency and NoMethodError is never swallowed as UnknownCurrency.
51 52 53 54 55 56 57 58 59 |
# File 'lib/adequate_crypto_address.rb', line 51 def currency_class(currency) const_name = currency.to_s.capitalize return nil unless const_defined?(const_name, false) klass = const_get(const_name) return nil unless klass.is_a?(Class) && klass.method_defined?(:valid?) klass end |
.valid?(address, currency, type = nil) ⇒ Boolean
30 31 32 |
# File 'lib/adequate_crypto_address.rb', line 30 def valid?(address, currency, type = nil) address(address, currency).valid?(type) end |