komodo_coins 0.3.1+2
komodo_coins: ^0.3.1+2 copied to clipboard
A package for fetching managing Komodo Platform coin configuration data storage, runtime updates, and queries.
Komodo Coins #
Fetch and transform the Komodo coins registry for use across Komodo SDK packages and apps. Provides filtering strategies and helpers to work with coin/asset metadata.
Installation #
Preferred (adds latest version to your pubspec):
dart pub add komodo_coins
Quick start (standalone usage) #
If you just need to parse the bundled coins configuration without the full SDK orchestration:
import 'package:komodo_coins/komodo_coins.dart';
import 'package:komodo_defi_types/komodo_defi_types.dart';
Future<void> main() async {
final coins = KomodoCoins();
await coins.init(); // Parses bundled config assets
// All assets, keyed by AssetId
final all = coins.all;
// Find variants of an asset ticker
final btcVariants = coins.findVariantsOfCoin('BTC');
// Get child assets (e.g. ERC‑20 tokens on Ethereum)
final erc20 = coins.findChildAssets(
Asset.fromJson({'coin': 'ETH', 'protocol': {'type': 'ETH'}}).id,
);
print('Loaded ${all.length} assets; BTC variants: ${btcVariants.length}; ERC20 children: ${erc20.length}');
}
Recommended: Use via the SDK Assets module #
Most applications should rely on the higher-level SDK which wires komodo_coins together with runtime updates (komodo_coin_updates), caching, filtering, and ordering.
import 'package:komodo_defi_sdk/komodo_defi_sdk.dart';
Future<void> main() async {
// This single call internally initializes komodo_coins and komodo_coin_updates (when enabled)
final sdk = await KomodoDefiSdk.init();
// Access the curated assets view
final assets = sdk.assets; // or sdk.assetsRepository / sdk.coins depending on exposed API
// Filtered examples (depends on actual SDK API names)
final trezorSupported = assets.filteredAssets(const TrezorAssetFilterStrategy());
print('Trezor supported assets: ${trezorSupported.length}');
}
Using the SDK ensures:
- Automatic initialization ordering
- Runtime configuration & update checks (via
komodo_coin_updates) - Unified caching and persistence strategy
- Consistent filtering utilities
If you only import komodo_coins directly you are responsible for calling init() before accessing data and for handling runtime updates (if desired) yourself.
Filtering strategies #
Use strategies to filter the visible set of assets for a given context (e.g., hardware wallet support):
final filtered = coins.filteredAssets(const TrezorAssetFilterStrategy());
Included strategies:
NoAssetFilterStrategy(default)TrezorAssetFilterStrategyUtxoAssetFilterStrategyEvmAssetFilterStrategy
With the SDK #
KomodoDefiSdk.init() automatically:
- Initializes Hive / storage (if required by higher-level features)
- Initializes
komodo_coins(parses bundled configuration) - Optionally initializes
komodo_coin_updates(if runtime updates are enabled in your SDK configuration) - Exposes a cohesive assets-facing interface (naming subject to the SDK export surface)
Check the SDK README for the latest assets API surface. If an interface referenced here (e.g. assets.filteredAssets) differs, prefer the SDK documentation; this README focuses on the standalone library concepts.
License #
MIT