diff --git a/CHANGELOG.md b/CHANGELOG.md index 363ef5b..3f57a0b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ -# 4.0.0 +## 4.1.0 + +* Update dependencies + +## 4.0.0 * Added support for BitcoinSV network * Introduced classes for improved network address handling diff --git a/analysis_options.yaml b/analysis_options.yaml index a5744c1..12e713a 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,4 +1,4 @@ -include: package:flutter_lints/flutter.yaml +include: package:lints/recommended.yaml # Additional information about this file can be found at # https://dart.dev/guides/language/analysis-options diff --git a/example/lib/bitcoin_cash/create_cash_token_example.dart b/example/lib/bitcoin_cash/create_cash_token_example.dart index 06aa954..2d887a0 100644 --- a/example/lib/bitcoin_cash/create_cash_token_example.dart +++ b/example/lib/bitcoin_cash/create_cash_token_example.dart @@ -56,6 +56,7 @@ void main() async { /// by identifying the transaction that spent the 0th output of the transaction referenced by the category ID. String? vout0Hash; try { + // Retrieve the transaction hash of the 0th output UTXO vout0Hash = utxos.firstWhere((element) => element.utxo.vout == 0).utxo.txHash; } on StateError { diff --git a/example/test/widget_test.dart b/example/test/widget_test.dart index ab73b3a..655e374 100644 --- a/example/test/widget_test.dart +++ b/example/test/widget_test.dart @@ -1 +1,2 @@ -void main() {} +/// "wss://bitcoin.aranguren.org:50004" +void main() async {} diff --git a/lib/src/bitcoin_cash/bcmr_registery.dart b/lib/src/bitcoin_cash/bcmr_registery.dart index 8d1080f..8d1af2d 100644 --- a/lib/src/bitcoin_cash/bcmr_registery.dart +++ b/lib/src/bitcoin_cash/bcmr_registery.dart @@ -1,5 +1,3 @@ -/// https://github.com/bitjson/chip-bcmr - /// A mapping of identifiers to URIs associated with an entity. URI identifiers /// may be widely-standardized or registry-specific. Values must be valid URIs, /// including a protocol prefix – e.g. `https://` or `ipfs://`., Clients are only @@ -117,7 +115,7 @@ class Tag { final URIs? uris; /// A mapping of `Tag` extension identifiers to extension definitions. - /// {@link Extensions} may be widely standardized or application-specific. + /// Extensions may be widely standardized or application-specific. final Extensions? extensions; const Tag({required this.name, this.description, this.uris, this.extensions}); @@ -243,7 +241,7 @@ class NftCategoryFieldType { final String? description; /// The expected encoding of this field when read from the parsing altstack - /// (see {@link ParsableNftCollection}). All encoding definitions must have a + /// (see [ParsableNftCollection]). All encoding definitions must have a /// `type`, and some encoding definitions allow for additional hinting about /// display strategies in clients. /// @@ -279,7 +277,7 @@ class NftCategoryFieldType { final URIs? uris; /// A mapping of NFT field extension identifiers to extension definitions. - /// {@link Extensions} may be widely standardized or application-specific. + /// [Extensions] may be widely standardized or application-specific. final Extensions? extensions; factory NftCategoryFieldType.fromJson(Map json) { @@ -340,8 +338,8 @@ abstract class Parse { /// Interpretation information for a collection of sequential NFTs, a collection /// in which each NFT includes only a sequential identifier within its on-chain -/// commitment. Note that {@link SequentialNftCollection}s differ from -/// {@link ParsableNftCollection}s in that sequential collections lack a +/// commitment. Note that [SequentialNftCollection]s differ from +/// [ParsableNftCollection]s in that sequential collections lack a /// parsing `bytecode` with which to inspect each NFT commitment: the type of /// each NFT is indexed by the full contents its commitment (interpreted as a /// positive VM integer in user interfaces). @@ -366,7 +364,7 @@ class SequentialNftCollection implements Parse { /// Interpretation information for a collection of parsable NFTs, a collection /// in which each NFT may include additional metadata fields beyond a sequential /// identifier within its on-chain commitment. Note that -/// {@link ParsableNftCollection}s differ from {@link SequentialNftCollection}s +/// [ParsableNftCollection]s differ from [SequentialNftCollection]s /// in that parsable collections require a parsing `bytecode` with which to /// inspect each NFT commitment: the type of each NFT is indexed by the /// hex-encoded contents the bottom item on the altstack following the evaluation @@ -409,7 +407,7 @@ class ParsableNftCollection implements Parse { /// pushing the first byte to the altstack as an NFT type identifier and the /// remaining segment of the commitment as the first NFT field value. /// - /// If undefined (in a {@link SequentialNftCollection}), this field could be + /// If undefined (in a [SequentialNftCollection]), this field could be /// considered to have a default value of `00d26b` (OP_0 OP_UTXOTOKENCOMMITMENT /// OP_TOALTSTACK), which takes the full contents of the commitment as a fixed /// type index. As such, each index of the NFT category's `types` maps a @@ -594,7 +592,7 @@ class IdentitySnapshot { /// The split ID of this identity's chain of record. /// - /// If undefined, defaults to {@link Registry.defaultChain}. + /// If undefined, defaults to [Registry.defaultChain]. final String? splitId; /// A mapping of identifiers to URIs associated with this identity. URI @@ -632,7 +630,7 @@ class IdentitySnapshot { final URIs? uris; /// A mapping of `IdentitySnapshot` extension identifiers to extension - /// definitions. {@link Extensions} may be widely standardized or + /// definitions. [Extensions] may be widely standardized or /// application-specific. /// /// Standardized extensions for `IdentitySnapshot`s include the `authchain` @@ -881,9 +879,9 @@ class Registry { final Map? tags; /// The split ID of the chain/network considered the "default" chain for this - /// registry. Identities that do not specify a {@link IdentitySnapshot.splitId} + /// registry. Identities that do not specify a [IdentitySnapshot.splitId] /// are assumed to be set to this split ID. For a description of split IDs, - /// see {@link Registry.chains}. + /// see [Registry.chains]. /// /// If not provided, the `defaultChain` is /// `0000000000000000029e471c41818d24b8b74c911071c4ef0b4a0509f9b5a8ce`, the BCH @@ -894,7 +892,7 @@ class Registry { /// (chipnet) final String? defaultChain; - /// A map of split IDs tracked by this registry to the {@link ChainHistory} for + /// A map of split IDs tracked by this registry to the [ChainHistory] for /// that chain/network. /// /// The split ID of a chain is the block header hash (A.K.A. block ID) of the @@ -911,12 +909,12 @@ class Registry { /// (losing claimable value if the receivers of their transactions don't /// acknowledge transfers on both chains). When a registry trusted by the /// wallet notes the split in it's `chains` map, the wallet can represent the - /// split in the user interface using the the latest {@link ChainSnapshot} for + /// split in the user interface using the the latest [ChainSnapshot] for /// each chain and splitting coins prior to spending (by introducing post-split /// coins in each transaction). /// /// This map may exclude the following well-known split IDs (all clients - /// supporting any of these chains should build-in {@link ChainHistory} for + /// supporting any of these chains should build-in [ChainHistory] for /// those chains): /// /// - `0000000000000000029e471c41818d24b8b74c911071c4ef0b4a0509f9b5a8ce`: @@ -942,7 +940,7 @@ class Registry { final String? license; /// A mapping of `Registry` extension identifiers to extension definitions. - /// {@link Extensions} may be widely standardized or application-specific. + /// [Extensions] may be widely standardized or application-specific. /// /// Standardized extensions for `Registry`s include the `locale` extension. See /// https://github.com/bitjson/chip-bcmr#locales-extension for details. diff --git a/lib/src/cash_token/cash_token.dart b/lib/src/cash_token/cash_token.dart index f58f588..d85c2ec 100644 --- a/lib/src/cash_token/cash_token.dart +++ b/lib/src/cash_token/cash_token.dart @@ -1,24 +1,24 @@ -/// MIT License -/// Copyright (c) Jason Dreyzehner -/// https://github.com/bitauth/libauth?tab=MIT-1-ov-file#readme -/// -/// Permission is hereby granted, free of charge, to any person obtaining a copy -/// of this software and associated documentation files (the "Software"), to deal -/// in the Software without restriction, including without limitation the rights -/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -/// copies of the Software, and to permit persons to whom the Software is -/// furnished to do so, subject to the following conditions: - -/// The above copyright notice and this permission notice shall be included in all -/// copies or substantial portions of the Software. - -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -/// SOFTWARE. +// MIT License +// Copyright (c) Jason Dreyzehner +// https://github.com/bitauth/libauth?tab=MIT-1-ov-file#readme +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. import 'dart:typed_data'; import 'package:blockchain_utils/blockchain_utils.dart'; diff --git a/lib/src/provider/api_provider/electrum_api_provider.dart b/lib/src/provider/api_provider/electrum_api_provider.dart index 1241998..9fc886f 100644 --- a/lib/src/provider/api_provider/electrum_api_provider.dart +++ b/lib/src/provider/api_provider/electrum_api_provider.dart @@ -1,6 +1,8 @@ import 'package:bitcoin_base/src/provider/api_provider.dart'; import 'dart:async'; +import 'package:blockchain_utils/exception/exceptions.dart'; + class ElectrumApiProvider { final BitcoinBaseElectrumRPCService rpc; ElectrumApiProvider(this.rpc); @@ -22,8 +24,8 @@ class ElectrumApiProvider { if (data["error"] != null) { final code = int.parse(((data["error"]?['code']?.toString()) ?? "0")); final message = data["error"]?['message'] ?? ""; - throw ElectrumRPCException( - code: code, + throw RPCError( + errorCode: code, message: message, data: data["error"]?["data"], request: data["request"] ?? request.params, diff --git a/lib/src/provider/models/utxo_details.dart b/lib/src/provider/models/utxo_details.dart index a5c50e6..77428ba 100644 --- a/lib/src/provider/models/utxo_details.dart +++ b/lib/src/provider/models/utxo_details.dart @@ -1,6 +1,3 @@ -/// UtxoAddressDetails represents ownership details associated with a Bitcoin unspent transaction output (UTXO). -/// It includes information such as the public key, Bitcoin address, and multi-signature address (if applicable) -/// of the UTXO owner. import 'package:bitcoin_base/bitcoin_base.dart'; abstract class UTXO { diff --git a/lib/src/provider/service/electrum/electrum.dart b/lib/src/provider/service/electrum/electrum.dart index bc14c8d..c8b56be 100644 --- a/lib/src/provider/service/electrum/electrum.dart +++ b/lib/src/provider/service/electrum/electrum.dart @@ -1,4 +1,3 @@ export 'methods.dart'; export 'params.dart'; export 'service.dart'; -export 'exception.dart'; diff --git a/lib/src/provider/service/electrum/exception.dart b/lib/src/provider/service/electrum/exception.dart index ad39721..2b1e90e 100644 --- a/lib/src/provider/service/electrum/exception.dart +++ b/lib/src/provider/service/electrum/exception.dart @@ -1,51 +1,51 @@ -import 'package:blockchain_utils/blockchain_utils.dart'; +// import 'package:blockchain_utils/blockchain_utils.dart'; -/// Exception class representing errors encountered during RPC (Remote Procedure Call) requests. -class ElectrumRPCException implements BlockchainUtilsException { - /// Constructs an instance of [ElectrumRPCException] with the provided details. - const ElectrumRPCException( - {required this.message, - required this.code, - required this.data, - required this.request}); +// /// Exception class representing errors encountered during RPC (Remote Procedure Call) requests. +// class ElectrumRPCException implements BlockchainUtilsException { +// /// Constructs an instance of [ElectrumRPCException] with the provided details. +// const ElectrumRPCException( +// {required this.message, +// required this.code, +// required this.data, +// required this.request}); - /// The error code associated with the error. - final int code; +// /// The error code associated with the error. +// final int code; - /// A human-readable error message describing the issue. - @override - final String message; +// /// A human-readable error message describing the issue. +// @override +// final String message; - /// Additional data providing more context about the error (nullable). - final dynamic data; +// /// Additional data providing more context about the error (nullable). +// final dynamic data; - /// The original request that triggered the error. - final Map request; +// /// The original request that triggered the error. +// final Map request; - @override - String toString() { - return 'RPC Error: Received code $code with message "$message".'; - } +// @override +// String toString() { +// return 'RPC Error: Received code $code with message "$message".'; +// } - /// Converts the exception details to a JSON-formatted representation. - Map toJson() { - final error = {"message": message, "code": code}; - if (data != null) { - error["data"] = data; - } - final toJson = { - "jsonrpc": "2.0", - "error": error, - }; - if (request.isNotEmpty) { - if (request.containsKey("id")) { - toJson["id"] = request["id"]; - } - if (request.containsKey("params") && request.containsKey("method")) { - toJson["params"] = request["params"]; - toJson["method"] = request["method"]; - } - } - return toJson; - } -} +// /// Converts the exception details to a JSON-formatted representation. +// Map toJson() { +// final error = {"message": message, "code": code}; +// if (data != null) { +// error["data"] = data; +// } +// final toJson = { +// "jsonrpc": "2.0", +// "error": error, +// }; +// if (request.isNotEmpty) { +// if (request.containsKey("id")) { +// toJson["id"] = request["id"]; +// } +// if (request.containsKey("params") && request.containsKey("method")) { +// toJson["params"] = request["params"]; +// toJson["method"] = request["method"]; +// } +// } +// return toJson; +// } +// } diff --git a/pubspec.yaml b/pubspec.yaml index f075bc3..fc4b8f7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: bitcoin_base description: A versatile library for Bitcoin, Dogecoin, Litecoin, Dash, BSV, and BCH. Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR, with advanced creation, signing, and spending capabilities. -version: 4.0.0 +version: 4.1.0 homepage: "https://github.com/mrtnetwork/bitcoin_base" repository: "https://github.com/mrtnetwork/bitcoin_base" Author: mrhaydari.t@gmail.com @@ -16,13 +16,12 @@ environment: dependencies: - blockchain_utils: ^1.6.0 + blockchain_utils: ^2.0.1 dev_dependencies: - test: ^1.24.6 - flutter_lints: ^2.0.0 - lints: ^2.1.1 + test: ^1.25.2 + lints: ^3.0.0 # For information on the generic Dart part of this file, see the diff --git a/test/response.dart b/test/response.dart new file mode 100644 index 0000000..db8eb5b --- /dev/null +++ b/test/response.dart @@ -0,0 +1,706 @@ +final bb = { + "binancecoin": { + "btc": 0.00722128, + "eth": 0.13421445, + "ltc": 4.519315, + "bch": 1.264556, + "bnb": 1.0, + "eos": 425.156, + "xrp": 576.992, + "xlm": 2648, + "link": 21.15024, + "dot": 45.703811, + "yfi": 0.04206406, + "usd": 305.75, + "aed": 1123.0, + "ars": 251878, + "aud": 465.02, + "bdt": 33587, + "bhd": 115.35, + "bmd": 305.75, + "brl": 1504.75, + "cad": 411.58, + "chf": 264.03, + "clp": 277539, + "cny": 2169.87, + "czk": 6972.72, + "dkk": 2099.79, + "eur": 281.44, + "gbp": 240.58, + "gel": 820.93, + "hkd": 2390.46, + "huf": 108839, + "idr": 4823258, + "ils": 1129.48, + "inr": 25413, + "jpy": 45307, + "krw": 408903, + "kwd": 94.16, + "lkr": 97231, + "mmk": 642159, + "mxn": 5246.77, + "myr": 1445.43, + "ngn": 275566, + "nok": 3191.68, + "nzd": 502.55, + "php": 17220.06, + "pkr": 85551, + "pln": 1231.63, + "rub": 27446, + "sar": 1146.62, + "sek": 3193.64, + "sgd": 410.68, + "thb": 10883.74, + "try": 9276.1, + "twd": 9560.75, + "uah": 11578.82, + "vef": 30.61, + "vnd": 7522940, + "zar": 5744.51, + "xdr": 229.72, + "xag": 13.41, + "xau": 0.151468, + "bits": 7221.28, + "sats": 722128 + }, + "bitcoin": { + "btc": 1.0, + "eth": 18.579583, + "ltc": 625.618, + "bch": 175.055, + "bnb": 138.454, + "eos": 58855, + "xrp": 79874, + "xlm": 366580, + "link": 2928, + "dot": 6327, + "yfi": 5.823015, + "usd": 42325, + "aed": 155459, + "ars": 34867996, + "aud": 64373, + "bdt": 4649579, + "bhd": 15968.69, + "bmd": 42325, + "brl": 208306, + "cad": 56976, + "chf": 36551, + "clp": 38420287, + "cny": 300379, + "czk": 965247, + "dkk": 290678, + "eur": 38961, + "gbp": 33303, + "gel": 113644, + "hkd": 330917, + "huf": 15066837, + "idr": 667693573, + "ils": 156356, + "inr": 3517989, + "jpy": 6271988, + "krw": 56605339, + "kwd": 13035.2, + "lkr": 13459822, + "mmk": 88895428, + "mxn": 726321, + "myr": 200093, + "ngn": 38147163, + "nok": 441830, + "nzd": 69568, + "php": 2383808, + "pkr": 11842949, + "pln": 170498, + "rub": 3799406, + "sar": 158729, + "sek": 442102, + "sgd": 56851, + "thb": 1506658, + "try": 1284110, + "twd": 1323515, + "uah": 1602880, + "vef": 4238.04, + "vnd": 1041416166, + "zar": 795225, + "xdr": 31801, + "xag": 1856.13, + "xau": 20.97, + "bits": 999657, + "sats": 99965662 + }, + "bitcoin-cash": { + "btc": 0.00571068, + "eth": 0.10613848, + "ltc": 3.573931, + "bch": 1.0, + "bnb": 0.7909399, + "eos": 336.219, + "xrp": 456.293, + "xlm": 2094, + "link": 16.725877, + "dot": 36.143151, + "yfi": 0.03326479, + "usd": 241.79, + "aed": 888.08, + "ars": 199188, + "aud": 367.74, + "bdt": 26561, + "bhd": 91.22, + "bmd": 241.79, + "brl": 1189.98, + "cad": 325.49, + "chf": 208.8, + "clp": 219481, + "cny": 1715.96, + "czk": 5514.11, + "dkk": 1660.54, + "eur": 222.57, + "gbp": 190.25, + "gel": 649.21, + "hkd": 1890.41, + "huf": 86071, + "idr": 3814293, + "ils": 893.21, + "inr": 20097, + "jpy": 35830, + "krw": 323366, + "kwd": 74.47, + "lkr": 76891, + "mmk": 507828, + "mxn": 4149.21, + "myr": 1143.06, + "ngn": 217921, + "nok": 2524.02, + "nzd": 397.42, + "php": 13617.84, + "pkr": 67655, + "pln": 973.99, + "rub": 21705, + "sar": 906.76, + "sek": 2525.57, + "sgd": 324.77, + "thb": 8607.0, + "try": 7335.66, + "twd": 7560.76, + "uah": 9156.68, + "vef": 24.21, + "vnd": 5949236, + "zar": 4542.83, + "xdr": 181.67, + "xag": 10.6, + "xau": 0.119783, + "bits": 5710.68, + "sats": 571068 + }, + "bitcoin-cash-sv": { + "btc": 0.00170996, + "eth": 0.0317813, + "ltc": 1.070151, + "bch": 0.29944054, + "bnb": 0.23683303, + "eos": 100.675, + "xrp": 136.629, + "xlm": 627.053, + "link": 5.008269, + "dot": 10.82243, + "yfi": 0.00996056, + "usd": 72.4, + "aed": 265.92, + "ars": 59643, + "aud": 110.11, + "bdt": 7953.34, + "bhd": 27.32, + "bmd": 72.4, + "brl": 356.32, + "cad": 97.46, + "chf": 62.52, + "clp": 65720, + "cny": 513.81, + "czk": 1651.1, + "dkk": 497.22, + "eur": 66.64, + "gbp": 56.97, + "gel": 194.39, + "hkd": 566.05, + "huf": 25773, + "idr": 1142123, + "ils": 267.45, + "inr": 6017.69, + "jpy": 10728.55, + "krw": 96826, + "kwd": 22.3, + "lkr": 23024, + "mmk": 152060, + "mxn": 1242.41, + "myr": 342.27, + "ngn": 65253, + "nok": 755.77, + "nzd": 119.0, + "php": 4077.62, + "pkr": 20258, + "pln": 291.64, + "rub": 6499.07, + "sar": 271.51, + "sek": 756.24, + "sgd": 97.25, + "thb": 2577.21, + "try": 2196.53, + "twd": 2263.94, + "uah": 2741.81, + "vef": 7.25, + "vnd": 1781394, + "zar": 1360.27, + "xdr": 54.4, + "xag": 3.18, + "xau": 0.0358668, + "bits": 1709.96, + "sats": 170996 + }, + "dash": { + "btc": 0.0006609, + "eth": 0.01228347, + "ltc": 0.41361308, + "bch": 0.11573372, + "bnb": 0.09153593, + "eos": 38.910783, + "xrp": 52.807, + "xlm": 242.356, + "link": 1.935695, + "dot": 4.182868, + "yfi": 0.00384975, + "usd": 27.98, + "aed": 102.78, + "ars": 23052, + "aud": 42.56, + "bdt": 3073.96, + "bhd": 10.56, + "bmd": 27.98, + "brl": 137.72, + "cad": 37.67, + "chf": 24.16, + "clp": 25401, + "cny": 198.59, + "czk": 638.15, + "dkk": 192.18, + "eur": 25.76, + "gbp": 22.02, + "gel": 75.13, + "hkd": 218.78, + "huf": 9961.1, + "idr": 441430, + "ils": 103.37, + "inr": 2325.84, + "jpy": 4146.58, + "krw": 37423, + "kwd": 8.62, + "lkr": 8898.65, + "mmk": 58771, + "mxn": 480.19, + "myr": 132.29, + "ngn": 25220, + "nok": 292.11, + "nzd": 45.99, + "php": 1576.0, + "pkr": 7829.7, + "pln": 112.72, + "rub": 2511.89, + "sar": 104.94, + "sek": 292.29, + "sgd": 37.59, + "thb": 996.09, + "try": 848.96, + "twd": 875.01, + "uah": 1059.71, + "vef": 2.8, + "vnd": 688509, + "zar": 525.74, + "xdr": 21.02, + "xag": 1.23, + "xau": 0.01386251, + "bits": 660.9, + "sats": 66090 + }, + "dogecoin": { + "btc": 1.89e-06, + "eth": 3.514e-05, + "ltc": 0.00118312, + "bch": 0.00033105, + "bnb": 0.00026183, + "eos": 0.11130222, + "xrp": 0.15105161, + "xlm": 0.69324577, + "link": 0.00553695, + "dot": 0.01196487, + "yfi": 1.101e-05, + "usd": 0.080042, + "aed": 0.293992, + "ars": 65.94, + "aud": 0.121737, + "bdt": 8.79, + "bhd": 0.0301987, + "bmd": 0.080042, + "brl": 0.393931, + "cad": 0.107749, + "chf": 0.069121, + "clp": 72.66, + "cny": 0.568053, + "czk": 1.83, + "dkk": 0.549707, + "eur": 0.07368, + "gbp": 0.062981, + "gel": 0.214914, + "hkd": 0.625803, + "huf": 28.49, + "idr": 1262.69, + "ils": 0.295688, + "inr": 6.65, + "jpy": 11.86, + "krw": 107.05, + "kwd": 0.02465112, + "lkr": 25.45, + "mmk": 168.11, + "mxn": 1.37, + "myr": 0.3784, + "ngn": 72.14, + "nok": 0.835554, + "nzd": 0.131562, + "php": 4.51, + "pkr": 22.4, + "pln": 0.322431, + "rub": 7.19, + "sar": 0.300175, + "sek": 0.836068, + "sgd": 0.107513, + "thb": 2.85, + "try": 2.43, + "twd": 2.5, + "uah": 3.03, + "vef": 0.00801464, + "vnd": 1969.44, + "zar": 1.5, + "xdr": 0.060139, + "xag": 0.00351017, + "xau": 3.965e-05, + "bits": 1.89, + "sats": 189.05 + }, + "ethereum": { + "btc": 0.0538072, + "eth": 1.0, + "ltc": 33.674317, + "bch": 9.422463, + "bnb": 7.452399, + "eos": 3168, + "xrp": 4299, + "xlm": 19731, + "link": 157.595, + "dot": 340.548, + "yfi": 0.31342775, + "usd": 2278.19, + "aed": 8367.69, + "ars": 1876794, + "aud": 3464.93, + "bdt": 250267, + "bhd": 859.53, + "bmd": 2278.19, + "brl": 11212.2, + "cad": 3066.79, + "chf": 1967.36, + "clp": 2067998, + "cny": 16168.11, + "czk": 51955, + "dkk": 15645.94, + "eur": 2097.09, + "gbp": 1792.58, + "gel": 6116.95, + "hkd": 17811.82, + "huf": 810983, + "idr": 35939062, + "ils": 8415.97, + "inr": 189358, + "jpy": 337594, + "krw": 3046821, + "kwd": 701.63, + "lkr": 724484, + "mmk": 4784857, + "mxn": 39095, + "myr": 10770.16, + "ngn": 2053297, + "nok": 23782, + "nzd": 3744.57, + "php": 128310, + "pkr": 637455, + "pln": 9177.15, + "rub": 204506, + "sar": 8543.68, + "sek": 23796, + "sgd": 3060.07, + "thb": 81097, + "try": 69118, + "twd": 71239, + "uah": 86276, + "vef": 228.12, + "vnd": 56054935, + "zar": 42804, + "xdr": 1711.71, + "xag": 99.91, + "xau": 1.13, + "bits": 53807, + "sats": 5380720 + }, + "litecoin": { + "btc": 0.00159799, + "eth": 0.02970019, + "ltc": 1.0, + "bch": 0.27983253, + "bnb": 0.22132469, + "eos": 94.082, + "xrp": 127.682, + "xlm": 585.992, + "link": 4.680317, + "dot": 10.113754, + "yfi": 0.00930832, + "usd": 67.66, + "aed": 248.51, + "ars": 55738, + "aud": 102.9, + "bdt": 7432.53, + "bhd": 25.53, + "bmd": 67.66, + "brl": 332.99, + "cad": 91.08, + "chf": 58.43, + "clp": 61416, + "cny": 480.17, + "czk": 1542.99, + "dkk": 464.66, + "eur": 62.28, + "gbp": 53.24, + "gel": 181.66, + "hkd": 528.98, + "huf": 24085, + "idr": 1067334, + "ils": 249.94, + "inr": 5623.64, + "jpy": 10026.02, + "krw": 90486, + "kwd": 20.84, + "lkr": 21516, + "mmk": 142103, + "mxn": 1161.05, + "myr": 319.86, + "ngn": 60980, + "nok": 706.28, + "nzd": 111.21, + "php": 3810.61, + "pkr": 18931.42, + "pln": 272.55, + "rub": 6073.5, + "sar": 253.73, + "sek": 706.72, + "sgd": 90.88, + "thb": 2408.45, + "try": 2052.7, + "twd": 2115.69, + "uah": 2562.27, + "vef": 6.77, + "vnd": 1664745, + "zar": 1271.2, + "xdr": 50.84, + "xag": 2.97, + "xau": 0.03351816, + "bits": 1597.99, + "sats": 159799 + }, + "matic-network": { + "btc": 1.887e-05, + "eth": 0.00035071, + "ltc": 0.01180914, + "bch": 0.00330433, + "bnb": 0.00261346, + "eos": 1.110949, + "xrp": 1.507702, + "xlm": 6.919545, + "link": 0.05526639, + "dot": 0.11942582, + "yfi": 0.00010992, + "usd": 0.798932, + "aed": 2.93, + "ars": 658.17, + "aud": 1.22, + "bdt": 87.77, + "bhd": 0.301424, + "bmd": 0.798932, + "brl": 3.93, + "cad": 1.075, + "chf": 0.689927, + "clp": 725.22, + "cny": 5.67, + "czk": 18.22, + "dkk": 5.49, + "eur": 0.735423, + "gbp": 0.628635, + "gel": 2.15, + "hkd": 6.25, + "huf": 284.4, + "idr": 12603.36, + "ils": 2.95, + "inr": 66.41, + "jpy": 118.39, + "krw": 1068.48, + "kwd": 0.246052, + "lkr": 254.07, + "mmk": 1677.99, + "mxn": 13.71, + "myr": 3.78, + "ngn": 720.06, + "nok": 8.34, + "nzd": 1.31, + "php": 45.0, + "pkr": 223.55, + "pln": 3.22, + "rub": 71.72, + "sar": 3.0, + "sek": 8.35, + "sgd": 1.073, + "thb": 28.44, + "try": 24.24, + "twd": 24.98, + "uah": 30.26, + "vef": 0.079997, + "vnd": 19657.73, + "zar": 15.01, + "xdr": 0.600274, + "xag": 0.03503629, + "xau": 0.00039579, + "bits": 18.87, + "sats": 1886.95 + }, + "ripple": { + "btc": 1.252e-05, + "eth": 0.00023265, + "ltc": 0.00783402, + "bch": 0.00219205, + "bnb": 0.00173373, + "eos": 0.7369883, + "xrp": 1.0, + "xlm": 4.590331, + "link": 0.03666297, + "dot": 0.07922545, + "yfi": 7.292e-05, + "usd": 0.530001, + "aed": 1.95, + "ars": 436.62, + "aud": 0.806085, + "bdt": 58.22, + "bhd": 0.199961, + "bmd": 0.530001, + "brl": 2.61, + "cad": 0.713461, + "chf": 0.457688, + "clp": 481.1, + "cny": 3.76, + "czk": 12.09, + "dkk": 3.64, + "eur": 0.48787, + "gbp": 0.417028, + "gel": 1.42, + "hkd": 4.14, + "huf": 188.67, + "idr": 8360.9, + "ils": 1.96, + "inr": 44.05, + "jpy": 78.54, + "krw": 708.82, + "kwd": 0.163228, + "lkr": 168.54, + "mmk": 1113.15, + "mxn": 9.1, + "myr": 2.51, + "ngn": 477.68, + "nok": 5.53, + "nzd": 0.871139, + "php": 29.85, + "pkr": 148.3, + "pln": 2.13, + "rub": 47.58, + "sar": 1.99, + "sek": 5.54, + "sgd": 0.711897, + "thb": 18.87, + "try": 16.08, + "twd": 16.57, + "uah": 20.07, + "vef": 0.053069, + "vnd": 13040.67, + "zar": 9.96, + "xdr": 0.398213, + "xag": 0.02324259, + "xau": 0.00026256, + "bits": 12.52, + "sats": 1251.78 + }, + "tron": { + "btc": 2.66e-06, + "eth": 4.951e-05, + "ltc": 0.00166716, + "bch": 0.00046649, + "bnb": 0.00036895, + "eos": 0.15683814, + "xrp": 0.21284979, + "xlm": 0.97686624, + "link": 0.00780223, + "dot": 0.01685993, + "yfi": 1.552e-05, + "usd": 0.112789, + "aed": 0.414269, + "ars": 92.92, + "aud": 0.171543, + "bdt": 12.39, + "bhd": 0.04255358, + "bmd": 0.112789, + "brl": 0.555096, + "cad": 0.151831, + "chf": 0.0974, + "clp": 102.38, + "cny": 0.800454, + "czk": 2.57, + "dkk": 0.774603, + "eur": 0.103823, + "gbp": 0.088748, + "gel": 0.302839, + "hkd": 0.881831, + "huf": 40.15, + "idr": 1779.28, + "ils": 0.416659, + "inr": 9.37, + "jpy": 16.71, + "krw": 150.84, + "kwd": 0.03473638, + "lkr": 35.87, + "mmk": 236.89, + "mxn": 1.94, + "myr": 0.533211, + "ngn": 101.66, + "nok": 1.18, + "nzd": 0.185387, + "php": 6.35, + "pkr": 31.56, + "pln": 0.454344, + "rub": 10.12, + "sar": 0.422982, + "sek": 1.18, + "sgd": 0.151499, + "thb": 4.01, + "try": 3.42, + "twd": 3.53, + "uah": 4.27, + "vef": 0.01129359, + "vnd": 2775.18, + "zar": 2.12, + "xdr": 0.084744, + "xag": 0.00494625, + "xau": 5.588e-05, + "bits": 2.66, + "sats": 266.39 + } +};