fix(docs): Add proper descriptions to module READMEs (#2490)

T145 committed Dec 1, 2025 at 20:47 UTC 3e4409d2ba96b020586e593d8b91684f51ea6e29
14 files changed +450 -219
cw_bitcoin/README.md
+35 -9
@@ -1,14 +1,40 @@
1 # cw_bitcoin
2
3 -A new Flutter package project.
3 +Bitcoin-family Electrum wallet implementation used by Cake Wallet (BTC, LTC and derivatives).
4
5 -## Getting Started
5 +## Features
6
7 -This project is a starting point for a Dart
8 -[package](https://flutter.dev/developing-packages/),
9 -a library module containing code that can be shared easily across
10 -multiple Flutter or Dart projects.
7 +- Electrum client and wallet with address/UTXO management and snapshots.
8 +- Derivation via BIP‑39; receive/change chains with per-coin configs.
9 +- Create/sign/broadcast transactions; PSBT helpers and payjoin support.
10 +- Transaction history, priorities, and size-based fee calculations.
11 +- Hardware wallet support for BTC/LTC.
12
12 -For help getting started with Flutter, view our
13 -[online documentation](https://flutter.dev/docs), which offers tutorials,
14 -samples, guidance on mobile development, and a full API reference.
13 +## Getting started
14 +
15 +Use the module via app services (see `bitcoin_wallet_service.dart`, `litecoin_wallet_service.dart`). Ensure Electrum nodes are configured for the target coin.
16 +
17 +```dart
18 +final wallet = await BitcoinWallet.create(
19 + mnemonic: '...',
20 + password: 'secret',
21 + walletInfo: walletInfo,
22 + unspentCoinsInfo: unspentCoinsBox,
23 + encryptionFileUtils: encryption,
24 +);
25 +```
26 +
27 +## Usage
28 +
29 +Send BTC with medium priority:
30 +
31 +```dart
32 +final feeRate = wallet.feeRate(BitcoinTransactionPriority.medium);
33 +final pending = await wallet.createTransaction(
34 + outputs: [BitcoinTransactionOutput(address: 'bc1...', amount: 50000)],
35 + feeRate: feeRate,
36 +);
37 +final txHash = await pending.commit();
38 +```
39 +
40 +See `lib/` for wallet/services, PSBT, and payjoin utilities.
cw_bitcoin_cash/README.md
+36 -26
@@ -1,39 +1,49 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_bitcoin_cash
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +Bitcoin Cash wallet module using the shared Electrum implementation configured for BCH mainnet. Includes CashAddr handling and BCH-specific fee/priority presets.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- Derive keys via BIP‑39; maintain receive/change address chains.
8 +- Load/save snapshots of addresses, indices, and balances.
9 +- Electrum connectivity and UTXO management.
10 +- Create/sign/broadcast BCH transactions; calculate size-based fees by priority.
11 +- CashAddr compatibility for addresses; migration of legacy snapshots.
12 +- Message signing and verification.
13
17 -## Features
14 +### Getting started
15
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
16 +Create/open via the app’s wallet service using `WalletType.bitcoinCash`. Ensure BCH Electrum nodes are configured.
17
21 -## Getting started
22 -
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
18 +```dart
19 +final wallet = await BitcoinCashWallet.create(
20 + mnemonic: '...',
21 + password: 'secret',
22 + walletInfo: walletInfo,
23 + unspentCoinsInfo: unspentCoinsBox,
24 + encryptionFileUtils: encryption,
25 +);
26 +```
27
26 -## Usage
28 +### Usage
29
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
30 +Fee calculation and send:
31
32 ```dart
32 -const like = 'sample';
33 +final feeRate = wallet.feeRate(BitcoinCashTransactionPriority.medium);
34 +final pending = await wallet.createTransaction(
35 + outputs: [
36 + BitcoinTransactionOutput(
37 + address: 'bitcoincash:qq...',
38 + amount: 10000, // satoshis
39 + ),
40 + ],
41 + feeRate: feeRate,
42 +);
43 +final txHash = await pending.commit();
44 ```
45
35 -## Additional information
46 +### Additional information
47
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
48 +- See `lib/src/` for: `BitcoinCashWallet`, `BitcoinCashWalletAddresses`, and helpers in `bitcoin_cash_base.dart`.
49 +- Snapshot migration and CashAddr normalization are handled during open.
cw_core/README.md
+17 -9
@@ -1,14 +1,22 @@
1 # cw_core
2
3 -A new Flutter package project.
3 +Core abstractions and shared types for Cake Wallet modules.
4
5 -## Getting Started
5 +## Highlights
6
7 -This project is a starting point for a Dart
8 -[package](https://flutter.dev/developing-packages/),
9 -a library module containing code that can be shared easily across
10 -multiple Flutter or Dart projects.
7 +- Wallet primitives: `WalletBase`, `WalletService`, `WalletInfo`, `WalletAddresses`.
8 +- Transaction primitives: `TransactionInfo`, `TransactionHistoryBase`, directions/priorities.
9 +- Currency models: `CryptoCurrency`, `Erc20Token`, SPL/TRON token types.
10 +- Persistence helpers: Hive adapters, path helpers (`pathForWallet`), encrypted storage utils.
11 +- Node representation (`Node`) and sync status types.
12
12 -For help getting started with Flutter, view our
13 -[online documentation](https://flutter.dev/docs), which offers tutorials,
14 -samples, guidance on mobile development, and a full API reference.
13 +## Usage
14 +
15 +Extend `WalletBase` for a new chain and provide a `WalletService` implementation to create/open/restore wallets.
16 +
17 +```dart
18 +class MyChainWallet extends WalletBase<MyBalance, MyHistory, MyTxInfo> { /* ... */ }
19 +class MyChainWalletService extends WalletService<New, FromSeed, FromKeys, FromHardware> { /* ... */ }
20 +```
21 +
22 +See the chain modules (e.g., `cw_bitcoin`, `cw_evm`) for complete examples.
cw_decred/README.md
+45 -1
@@ -1,3 +1,47 @@
1 # cw_decred
2
3 -TODO: Fill this out.
3 +Decred wallet module that bridges to the native `libdcrwallet` via FFI. Provides high‑level methods to create/load wallets, sync, query balances/transactions, build and broadcast transactions, and sign/verify messages.
4 +
5 +## Features
6 +
7 +- FFI bindings to `libdcrwallet` with an isolate‑based request/response model.
8 +- Initialize, create, load, close wallets; watch‑only creation.
9 +- Start sync with optional peer list; query sync status and best block.
10 +- Query balances, list transactions and unspents, rescan from height.
11 +- Create signed transactions and broadcast raw transactions.
12 +- Export wallet seed; change wallet password.
13 +- Address management (new external address, default pubkey, address lists).
14 +- Message signing and verification.
15 +
16 +## Getting started
17 +
18 +Ensure the platform library is available:
19 +
20 +- Android/Linux: `libdcrwallet.so`
21 +- Apple: embedded `cw_decred.framework/cw_decred`
22 +
23 +Initialize and load a wallet:
24 +
25 +```dart
26 +final lib = await Libwallet.spawn();
27 +await lib.initLibdcrwallet('', 'info');
28 +await lib.loadWallet(jsonEncode({ /* libdcrwallet config */ }));
29 +await lib.startSync('wallet.db', '');
30 +final status = await lib.syncStatus('wallet.db');
31 +```
32 +
33 +## Usage
34 +
35 +Create, sign, and broadcast a transaction:
36 +
37 +```dart
38 +final signed = await lib.createSignedTransaction('wallet.db', jsonEncode({
39 + // inputs/outputs and policy for libdcrwallet
40 +}));
41 +final txid = await lib.sendRawTransaction('wallet.db', signed);
42 +```
43 +
44 +## Additional information
45 +
46 +- See `lib/api/` for the isolate wrapper (`libdcrwallet.dart`) and low‑level bindings.
47 +- Errors are surfaced via the `PayloadResult` struct; some calls support `throwOnError` in higher‑level wrappers.
cw_dogecoin/README.md
+35 -26
@@ -1,39 +1,48 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_dogecoin
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/tools/pub/writing-package-pages).
3 +Dogecoin wallet module using the shared Bitcoin Electrum implementation (`cw_bitcoin`) configured for Dogecoin mainnet.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/to/develop-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- Derive keys via BIP‑39; Dogecoin HD paths using `bitcoin_base`.
8 +- Connect to Electrum nodes; maintain address sets and UTXOs.
9 +- Create/sign/broadcast DOGE transactions with configurable fee rate.
10 +- Address book and index management (receive/change, auto-generate settings).
11 +- Message signing and verification.
12
17 -## Features
13 +### Getting started
14
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
15 +Create/open via `DogecoinWalletService` in the app using `WalletType.dogecoin`. Ensure Electrum nodes are configured for Dogecoin.
16
21 -## Getting started
22 -
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
17 +```dart
18 +final wallet = await DogeCoinWallet.create(
19 + mnemonic: '...',
20 + password: 'secret',
21 + walletInfo: walletInfo,
22 + unspentCoinsInfo: unspentCoinsBox,
23 + encryptionFileUtils: encryption,
24 +);
25 +```
26
26 -## Usage
27 +### Usage
28
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
29 +Estimate fee and send:
30
31 ```dart
32 -const like = 'sample';
32 +final feeRate = wallet.feeRate(BitcoinCashTransactionPriority.medium); // example priority mapping
33 +final pending = await wallet.createTransaction(
34 + outputs: [
35 + BitcoinTransactionOutput(
36 + address: 'D...',
37 + amount: 1 * 100000000, // 1 DOGE in koinu
38 + ),
39 + ],
40 + feeRate: feeRate,
41 +);
42 +final txHash = await pending.commit();
43 ```
44
35 -## Additional information
45 +### Additional information
46
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
47 +- See `lib/src/` for classes: `DogeCoinWallet`, `DogeCoinWalletAddresses`.
48 +- Relies on core Electrum features in `cw_bitcoin` for UTXO selection and persistence.
cw_ethereum/README.md
+50 -25
@@ -1,39 +1,64 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_ethereum
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +Ethereum wallet module built on `cw_evm`. Supports native ETH and ERC‑20 tokens, with history fetched via Etherscan.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- EVM client specialized for Ethereum mainnet (chainId 1).
8 +- Default ERC‑20 token list and wallet‑scoped token storage/migration.
9 +- History via Etherscan v2 API (external, internal, and token transfers).
10 +- EIP‑1559 fee support; gas estimation per transaction intent.
11 +- Create/sign native and ERC‑20 transfers; approvals; broadcast.
12 +- Manage ERC‑20 tokens and balances; metadata lookup when needed.
13 +- Message signing and verification.
14 +- Node health checks for native and USDC token balance.
15
17 -## Features
16 +### Getting started
17
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
18 +Add shared EVM secrets (see `cw_evm` README):
19
21 -## Getting started
20 +```dart
21 +// cw_evm/lib/.secrets.g.dart (DO NOT COMMIT)
22 +const String etherScanApiKey = 'YOUR_ETHERSCAN_KEY';
23 +const String nowNodesApiKey = 'YOUR_NOWNODES_KEY'; // if using eth.nownodes.io
24 +const String moralisApiKey = 'YOUR_MORALIS_KEY'; // optional
25 +```
26 +
27 +Connect and sync:
28
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
29 +```dart
30 +final service = EthereumWalletService(walletInfoBox, true, client: EthereumClient());
31 +final wallet = await service.create(EVMChainNewWalletCredentials(name: 'My ETH', password: 'secret'));
32 +await wallet.connectToNode(node: Node(uriRaw: 'eth.llamarpc.com', isSSL: true));
33 +await wallet.startSync();
34 +```
35
26 -## Usage
36 +### Usage
37 +
38 +Send ETH:
39 +
40 +```dart
41 +final pending = await wallet.createTransaction(
42 + EVMChainTransactionCredentials.single(
43 + address: '0x...',
44 + cryptoAmount: '0.05',
45 + currency: CryptoCurrency.eth,
46 + priority: EVMChainTransactionPriority.medium,
47 + ),
48 +);
49 +final hash = await pending.commit();
50 +```
51
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
52 +Add an ERC‑20 token and refresh balance:
53
54 ```dart
32 -const like = 'sample';
55 +final token = await wallet.getErc20Token('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', 'eth'); // USDC
56 +if (token != null) {
57 + await wallet.addErc20Token(token);
58 +}
59 ```
60
35 -## Additional information
61 +### Additional information
62
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
63 +- Toggle Etherscan usage via shared preferences key `use_etherscan`.
64 +- See `lib/` for APIs: `EthereumClient`, `EthereumWallet`, `EthereumWalletService`.
cw_evm/README.md
+39 -26
@@ -1,39 +1,52 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_evm
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +Shared EVM-chain wallet foundation for Cake Wallet. Provides common client/wallet abstractions used by `cw_ethereum`, `cw_polygon`, and other EVM chains.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### What it provides
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- `EVMChainClient` (Web3 + HTTP):
8 + - Connect to RPC (supports NowNodes short hosts with API key).
9 + - Read balance, gas price/base fee, estimate gas, send raw tx, watch tx.
10 + - Sign native and ERC‑20 transactions; build approval calldata.
11 + - Fetch ERC‑20 metadata (via Moralis) and balances.
12 +- `EVMChainWallet`:
13 + - Derive keys from BIP‑39 or use private key / Ledger (`EvmLedgerCredentials`).
14 + - EIP‑1559 fee calculation with priority presets; Polygon-specific tuning.
15 + - ERC‑20 token box per wallet; add/remove tokens and maintain balances.
16 + - Transaction history assembly (external/internal + token transfers).
17 + - Message sign/verify helpers.
18 +- `EVMChainWalletService`: common create/open/restore/rename lifecycle.
19
17 -## Features
20 +### Secrets
21
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
22 +Create `cw_evm/lib/.secrets.g.dart` (do not commit):
23
21 -## Getting started
22 -
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
24 +```dart
25 +const String nowNodesApiKey = '...'; // used for eth.nownodes.io / matic.nownodes.io
26 +const String etherScanApiKey = '...'; // Etherscan v2 API key (incl. Polygon)
27 +const String moralisApiKey = '...'; // optional, ERC-20 metadata lookup
28 +```
29
26 -## Usage
30 +### Extending to a new EVM chain
31
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
32 +Create a client and wallet subclass:
33
34 ```dart
32 -const like = 'sample';
35 +class MyChainClient extends EVMChainClient {
36 + @override
37 + int get chainId => 8453; // example
38 + @override
39 + Uint8List prepareSignedTransactionForSending(Uint8List tx) => tx;
40 + @override
41 + Future<List<EVMChainTransactionModel>> fetchTransactions(String address, {String? contractAddress}) async { /* ... */ }
42 + @override
43 + Future<List<EVMChainTransactionModel>> fetchInternalTransactions(String address) async { /* ... */ }
44 +}
45 ```
46
35 -## Additional information
47 +Then wire into a `WalletService` similar to `EthereumWalletService`/`PolygonWalletService`.
48 +
49 +### Additional information
50
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
51 +- Uses `web3dart` under the hood and integrates with Cake Wallet’s `cw_core` types.
52 +- See `lib/` for the reference implementation details.
cw_monero/README.md
+11 -2
@@ -1,5 +1,14 @@
1 # cw_monero
2
3 -This project is part of Cake Wallet app.
3 +Monero wallet module for Cake Wallet, backed by native bindings to Monero’s wallet library and high-level Dart wrappers.
4
5 -Copyright (c) 2020 Cake Technologies LLC.
\ No newline at end of file
5 +## Features
6 +
7 +- Create/open/restore Monero wallets; manage accounts and subaddresses.
8 +- Build/sign/broadcast transactions; track history and unspent outputs.
9 +- Ledger hardware wallet support.
10 +- Exception types for common wallet operations.
11 +
12 +## Usage
13 +
14 +See `lib/api/wallet.dart`, `wallet_manager.dart`, and high-level wrappers like `monero_wallet.dart` and `monero_wallet_service.dart` in the app for examples of creating and managing wallets.
cw_mweb/README.md
+7 -9
@@ -1,15 +1,13 @@
1 # cw_mweb
2
3 -A new Flutter plugin project.
3 +MimbleWimble Extension Blocks (MWEB) integration bridge for Cake Wallet modules that support MWEB-enabled chains.
4
5 -## Getting Started
5 +## Features
6
7 -This project is a starting point for a Flutter
8 -[plug-in package](https://flutter.dev/developing-packages/),
9 -a specialized package that includes platform-specific implementation code for
10 -Android and/or iOS.
7 +- Dart platform interface and method-channel implementation.
8 +- Protobuf stubs for `mwebd` interactions (`mwebd.pb*.dart`).
9 +- Provides a uniform API surface for MWEB-capable coins.
10
12 -For help getting started with Flutter development, view the
13 -[online documentation](https://flutter.dev/docs), which offers tutorials,
14 -samples, guidance on mobile development, and a full API reference.
11 +## Usage
12
13 +Import `cw_mweb` and use the platform interface to interact with an MWEB daemon/binding. See the chain-specific modules for concrete usage.
cw_polygon/README.md
+49 -25
@@ -1,39 +1,63 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_polygon
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +Polygon (PoS) wallet module built on the shared EVM base (`cw_evm`). Supports native MATIC and ERC‑20 tokens with PolygonScan-backed history.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- EVM chain integration (chainId 137) with `web3dart`.
8 +- Default ERC‑20 token list and per‑wallet token box.
9 +- History via Etherscan v2 API (Polygon chain id) and internal tx support.
10 +- Fee handling tuned for Polygon (priority fee floor, legacy gasPrice when needed).
11 +- Create/sign native and ERC‑20 transfers; approvals; send/broadcast.
12 +- Manage tokens (enable/disable, add/remove) and balances.
13 +- Message signing and verification.
14
17 -## Features
15 +### Getting started
16
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
17 +Provide secrets used by the shared EVM layer in `cw_evm/lib/.secrets.g.dart`:
18
21 -## Getting started
19 +```dart
20 +// cw_evm/lib/.secrets.g.dart (DO NOT COMMIT)
21 +const String etherScanApiKey = 'YOUR_ETHERSCAN_KEY';
22 +const String nowNodesApiKey = 'YOUR_NOWNODES_KEY'; // if using matic.nownodes.io
23 +const String moralisApiKey = 'YOUR_MORALIS_KEY'; // optional: ERC20 metadata
24 +```
25 +
26 +Connect and sync:
27
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
28 +```dart
29 +final service = PolygonWalletService(walletInfoBox, true, client: PolygonClient());
30 +final wallet = await service.create(EVMChainNewWalletCredentials(name: 'My POL', password: 'secret'));
31 +await wallet.connectToNode(node: Node(uriRaw: 'polygon-rpc.com', isSSL: true));
32 +await wallet.startSync();
33 +```
34
26 -## Usage
35 +### Usage
36 +
37 +Send MATIC:
38 +
39 +```dart
40 +final pending = await wallet.createTransaction(
41 + EVMChainTransactionCredentials.single(
42 + address: '0x...',
43 + cryptoAmount: '0.2',
44 + currency: CryptoCurrency.maticpoly,
45 + priority: EVMChainTransactionPriority.medium,
46 + ),
47 +);
48 +final hash = await pending.commit();
49 +```
50
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
51 +Add an ERC‑20 token and refresh balance:
52
53 ```dart
32 -const like = 'sample';
54 +final token = await wallet.getErc20Token('0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', 'polygon'); // USDC
55 +if (token != null) {
56 + await wallet.addErc20Token(token);
57 +}
58 ```
59
35 -## Additional information
60 +### Additional information
61
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
62 +- Toggle PolygonScan usage via shared preferences key `use_polygonscan`.
63 +- See `lib/` for APIs: `PolygonClient`, `PolygonWallet`, `PolygonWalletService`.
cw_solana/README.md
+49 -25
@@ -1,39 +1,63 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_solana
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +Solana wallet module for Cake Wallet. Provides native SOL and SPL token support built on `on_chain/solana` with high-throughput RPC usage and safe transaction parsing.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- Connect to Solana RPC (Ankr/Chainstack/custom) via `SolanaRPC` over HTTP.
8 +- Fetch SOL balances and aggregate SPL token balances across accounts.
9 +- Parse and stream native and SPL token transactions (filters ATA-only and spam-like micro txs).
10 +- Estimate fees per compiled message and enforce rent-exemption checks.
11 +- Create/sign/broadcast SOL and SPL transfers; auto-create recipient ATA when necessary.
12 +- Manage SPL tokens; fetch on-chain metadata (symbol/name) for unknown mints.
13 +- Sign and verify messages.
14 +- Node health checks for SOL and a known SPL token (USDC).
15
17 -## Features
16 +### Getting started
17
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
18 +If you use hosted RPC providers, add a secrets file for keys (optional unless using those hosts):
19
21 -## Getting started
20 +```dart
21 +// cw_solana/lib/.secrets.g.dart (DO NOT COMMIT)
22 +const String ankrApiKey = 'YOUR_ANKR_KEY';
23 +const String chainStackApiKey = 'YOUR_CHAINSTACK_KEY';
24 +```
25 +
26 +Connect and sync:
27
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
28 +```dart
29 +final service = SolanaWalletService(walletInfoBox, true);
30 +final wallet = await service.create(SolanaNewWalletCredentials(name: 'My SOL', password: 'secret'));
31 +await wallet.connectToNode(node: Node(uriRaw: 'api.mainnet-beta.solana.com', isSSL: true));
32 +await wallet.startSync();
33 +final sol = wallet.balance[CryptoCurrency.sol]?.balance;
34 +```
35
26 -## Usage
36 +### Usage
37 +
38 +Send SOL:
39 +
40 +```dart
41 +final pending = await wallet.createTransaction(
42 + SolanaTransactionCredentials.single(
43 + address: 'SoL...',
44 + cryptoAmount: '0.05',
45 + currency: CryptoCurrency.sol,
46 + ),
47 +);
48 +final sig = await pending.commit();
49 +```
50
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
51 +Add an SPL token by mint:
52
53 ```dart
32 -const like = 'sample';
54 +final token = await wallet.getSPLToken('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'); // USDC
55 +if (token != null) {
56 + await wallet.addSPLToken(token);
57 +}
58 ```
59
35 -## Additional information
60 +### Additional information
61
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
62 +- When using `rpc.ankr.com` or `solana-mainnet.core.chainstack.com`, the client reads API keys from `.secrets.g.dart`.
63 +- See `lib/` for APIs: `SolanaWalletClient`, `SolanaWallet`, `SolanaWalletService`, and credential types.
cw_tron/README.md
+49 -25
@@ -1,39 +1,63 @@
1 -<!--
2 -This README describes the package. If you publish this package to pub.dev,
3 -this README's contents appear on the landing page for your package.
1 +## cw_tron
2
5 -For information about how to write a good package README, see the guide for
6 -[writing package pages](https://dart.dev/guides/libraries/writing-package-pages).
3 +TRON wallet module for Cake Wallet. Implements TRX and TRC-20 token support on top of `on_chain` (Tron), with transaction history and fee estimation via TronGrid.
4
8 -For general information about developing packages, see the Dart guide for
9 -[creating packages](https://dart.dev/guides/libraries/create-library-packages)
10 -and the Flutter guide for
11 -[developing packages and plugins](https://flutter.dev/developing-packages).
12 --->
5 +### Features
6
14 -TODO: Put a short description of the package here that helps potential users
15 -know whether this package might be useful for them.
7 +- Connect to TRON nodes over HTTP(S) via `TronProvider`/`TronHTTPProvider`.
8 +- Fetch TRX balance and TRC-20 token balances.
9 +- Estimate fees using bandwidth/energy and memo fee; accounts for available account resources.
10 +- Create and sign TRX and TRC-20 transfers (supports send-all and optional memo).
11 +- Broadcast signed transactions.
12 +- Load account history (TRX and TRC-20), filtering spam and TRC10-only events.
13 +- Manage TRC-20 tokens: add/remove tokens and fetch token metadata.
14 +- Sign/verify messages.
15 +- Node health checks for both native and token balance endpoints.
16
17 -## Features
17 +### Getting started
18
19 -TODO: List what your package can do. Maybe include images, gifs, or videos.
19 +Provide a TRON RPC endpoint and a TronGrid API key. Add a secrets file:
20
21 -## Getting started
21 +```dart
22 +// cw_tron/lib/.secrets.g.dart (DO NOT COMMIT)
23 +const String tronGridApiKey = 'YOUR_TRONGRID_API_KEY';
24 +```
25 +
26 +Basic connect and sync:
27
23 -TODO: List prerequisites and provide or point to information on how to
24 -start using the package.
28 +```dart
29 +final service = TronWalletService(walletInfoBox, client: TronClient(), isDirect: true);
30 +final wallet = await service.create(TronNewWalletCredentials(name: 'My TRON', password: 'secret'));
31 +await wallet.connectToNode(node: Node(uriRaw: 'api.trongrid.io', isSSL: true));
32 +await wallet.startSync();
33 +final trxBalance = wallet.balance[CryptoCurrency.trx];
34 +```
35
26 -## Usage
36 +### Usage
37 +
38 +Send TRX:
39 +
40 +```dart
41 +final pending = await wallet.createTransaction(
42 + TronTransactionCredentials.single(
43 + address: 'T...',
44 + cryptoAmount: '1.5',
45 + currency: CryptoCurrency.trx,
46 + ),
47 +);
48 +final txHash = await pending.commit();
49 +```
50
28 -TODO: Include short and useful examples for package users. Add longer examples
29 -to `/example` folder.
51 +Add USDT (TRC-20):
52
53 ```dart
32 -const like = 'sample';
54 +final usdt = await wallet.getTronToken('TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t');
55 +if (usdt != null) {
56 + await wallet.addTronToken(usdt);
57 +}
58 ```
59
35 -## Additional information
60 +### Additional information
61
37 -TODO: Tell users more about the package: where to find more information, how to
38 -contribute to the package, how to file issues, what response they can expect
39 -from the package authors, and more.
62 +- History and token queries use TronGrid; set `tronGridApiKey`.
63 +- See `lib/` for APIs: `TronClient`, `TronWallet`, `TronWalletService`, and credential types.
cw_wownero/README.md
+11 -2
@@ -1,5 +1,14 @@
1 # cw_wownero
2
3 -This project is part of Cake Wallet app.
3 +Wownero wallet module for Cake Wallet, providing a Monero-family wallet with Wownero-specific APIs and bindings.
4
5 -Copyright (c) 2020 Cake Technologies LLC.
\ No newline at end of file
5 +## Features
6 +
7 +- Create/open/restore Wownero wallets; accounts and subaddresses.
8 +- Build/sign/broadcast transactions; history and unspent outputs.
9 +- Platform interface and method channel for native bindings.
10 +- Exception types for setup, creation, opening, and restore flows.
11 +
12 +## Usage
13 +
14 +See `lib/api/` and high-level wrappers like `wownero_wallet.dart` and `wownero_wallet_service.dart` for end-to-end wallet lifecycle and usage.
cw_zano/README.md
+17 -9
@@ -1,15 +1,23 @@
1 # cw_zano
2
3 -A new flutter plugin project.
3 +Zano wallet module for Cake Wallet. Provides a Dart wrapper around the Zano wallet API with typed models and transaction helpers.
4
5 -## Getting Started
5 +## Features
6
7 -This project is a starting point for a Flutter
8 -[plug-in package](https://flutter.dev/developing-packages/),
9 -a specialized package that includes platform-specific implementation code for
10 -Android and/or iOS.
7 +- Wallet lifecycle and status queries via `ZanoWalletApi`.
8 +- Typed models for balances, transfers, recent history, and wallet info.
9 +- Build and submit transfers; pending transaction modeling.
10 +- Address and asset utilities, formatter helpers.
11
12 -For help getting started with Flutter, view our
13 -[online documentation](https://flutter.dev/docs), which offers tutorials,
14 -samples, guidance on mobile development, and a full API reference.
12 +## Usage
13
14 +See `lib/zano_wallet_api.dart` and `lib/zano_wallet.dart` for the high-level API. Typical flow:
15 +
16 +```dart
17 +final api = ZanoWalletApi();
18 +final info = await api.getWalletInfo();
19 +final balance = await api.getBalance();
20 +// create transfer params and broadcast
21 +```
22 +
23 +Consult `lib/api/model/` for full set of supported request/response models.