mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-03-12 09:32:33 +00:00
add breez secrets config + update versions + working receives
This commit is contained in:
parent
ee2d440465
commit
38bf4a04b9
8 changed files with 81 additions and 27 deletions
2
.github/workflows/pr_test_build.yml
vendored
2
.github/workflows/pr_test_build.yml
vendored
|
@ -152,6 +152,8 @@ jobs:
|
|||
echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart
|
||||
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart
|
||||
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
|
||||
echo "const breezApiKey = '${{ secrets.BREEZ_API_KEY }}';" >> cw_bitcoin/lib/.secrets.g.dart
|
||||
echo "const breezInviteCode = '${{ secrets.BREEZ_INVITE_CODE }}';" >> cw_bitcoin/lib/.secrets.g.dart
|
||||
|
||||
- name: Rename app
|
||||
run: echo -e "id=com.cakewallet.test\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
import 'package:cw_bitcoin/bitcoin_mnemonic.dart';
|
||||
|
@ -13,6 +15,8 @@ import 'package:cw_core/wallet_info.dart';
|
|||
import 'package:cw_bitcoin/bitcoin_address_record.dart';
|
||||
import 'package:cw_bitcoin/electrum_balance.dart';
|
||||
import 'package:cw_bitcoin/bitcoin_wallet_addresses.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:cw_bitcoin/.secrets.g.dart' as secrets;
|
||||
|
||||
part 'bitcoin_wallet.g.dart';
|
||||
|
||||
|
@ -49,26 +53,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
|||
networkType: networkType);
|
||||
|
||||
// initialize breeze:
|
||||
String inviteCode = "<invite code>";
|
||||
String apiKey = "<api key>";
|
||||
NodeConfig breezNodeConfig = NodeConfig.greenlight(
|
||||
config: GreenlightNodeConfig(
|
||||
partnerCredentials: null,
|
||||
inviteCode: inviteCode,
|
||||
),
|
||||
);
|
||||
BreezSDK()
|
||||
.defaultConfig(
|
||||
envType: EnvironmentType.Production,
|
||||
apiKey: apiKey,
|
||||
nodeConfig: breezNodeConfig,
|
||||
)
|
||||
.then((value) {
|
||||
Config breezConfig = value;
|
||||
// Customize the config object according to your needs
|
||||
breezConfig = breezConfig.copyWith(workingDir: "/breez/${walletInfo.name}");
|
||||
BreezSDK().connect(config: breezConfig, seed: seedBytes);
|
||||
});
|
||||
setupBreeze(seedBytes);
|
||||
|
||||
autorun((_) {
|
||||
this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress;
|
||||
|
@ -114,4 +99,55 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
|||
initialRegularAddressIndex: snp.regularAddressIndex,
|
||||
initialChangeAddressIndex: snp.changeAddressIndex);
|
||||
}
|
||||
|
||||
void printDirectoryTree(Directory directory, {String prefix = ''}) {
|
||||
try {
|
||||
final files = directory.listSync();
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
final isLast = i == files.length - 1;
|
||||
if (files[i] is File) {
|
||||
print(
|
||||
'${prefix}${isLast ? '└─' : '├─'} ${files[i].path.split(Platform.pathSeparator).last}');
|
||||
} else if (files[i] is Directory) {
|
||||
print(
|
||||
'${prefix}${isLast ? '└─' : '├─'} ${files[i].path.split(Platform.pathSeparator).last}');
|
||||
printDirectoryTree(files[i] as Directory, prefix: '${prefix}${isLast ? ' ' : '│ '}');
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
print('Error: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> setupBreeze(Uint8List seedBytes) async {
|
||||
// Initialize SDK logs listener
|
||||
final sdk = BreezSDK();
|
||||
sdk.initialize();
|
||||
|
||||
NodeConfig breezNodeConfig = NodeConfig.greenlight(
|
||||
config: GreenlightNodeConfig(
|
||||
partnerCredentials: null,
|
||||
inviteCode: secrets.breezInviteCode,
|
||||
),
|
||||
);
|
||||
Config breezConfig = await sdk.defaultConfig(
|
||||
envType: EnvironmentType.Production,
|
||||
apiKey: secrets.breezApiKey,
|
||||
nodeConfig: breezNodeConfig,
|
||||
);
|
||||
|
||||
printDirectoryTree(Directory((await getApplicationDocumentsDirectory()).path));
|
||||
// Customize the config object according to your needs
|
||||
String workingDir = (await getApplicationDocumentsDirectory()).path;
|
||||
workingDir = "$workingDir/wallets/bitcoin/${walletInfo.name}/breez/";
|
||||
new Directory(workingDir).createSync(recursive: true);
|
||||
breezConfig = breezConfig.copyWith(workingDir: workingDir);
|
||||
|
||||
print(workingDir);
|
||||
|
||||
// await sdk.connect(config: breezConfig, seed: seedBytes);
|
||||
|
||||
print(await sdk.isInitialized());
|
||||
print(await sdk.listLsps());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,9 +46,6 @@ class BitcoinWalletService extends WalletService<
|
|||
final walletInfo = walletInfoSource.values.firstWhereOrNull(
|
||||
(info) => info.id == WalletBase.idFor(name, getType()))!;
|
||||
|
||||
// Initialize SDK logs listener
|
||||
BreezSDK().initialize();
|
||||
|
||||
final wallet = await BitcoinWalletBase.open(
|
||||
password: password, name: name, walletInfo: walletInfo,
|
||||
unspentCoinsInfo: unspentCoinsInfoSource);
|
||||
|
|
|
@ -30,6 +30,7 @@ dependencies:
|
|||
breez_sdk:
|
||||
git:
|
||||
url: https://github.com/breez/breez-sdk-flutter.git
|
||||
ref: v0.2.14
|
||||
rxdart: ^0.27.5
|
||||
unorm_dart: ^0.2.0
|
||||
cryptography: ^2.0.5
|
||||
|
|
|
@ -182,7 +182,7 @@ class AddressPage extends BasePage {
|
|||
ReceiveOnchainRequest req = const ReceiveOnchainRequest();
|
||||
SwapInfo swapInfo = await BreezSDK().receiveOnchain(req: req);
|
||||
|
||||
// Send your funds to the below bitcoin address
|
||||
// Send your funds to the below bitcoin address
|
||||
String address = swapInfo.bitcoinAddress;
|
||||
print(address);
|
||||
print("Minimum amount allowed to deposit in sats: ${swapInfo.minAllowedDeposit}");
|
||||
|
|
|
@ -110,6 +110,7 @@ dependencies:
|
|||
breez_sdk:
|
||||
git:
|
||||
url: https://github.com/breez/breez-sdk-flutter.git
|
||||
ref: v0.2.12
|
||||
|
||||
|
||||
dev_dependencies:
|
||||
|
@ -133,7 +134,8 @@ dependency_overrides:
|
|||
bech32:
|
||||
git:
|
||||
url: https://github.com/cake-tech/bech32.git
|
||||
flutter_rust_bridge: ^1.82.1
|
||||
flutter_rust_bridge: ^1.82.6
|
||||
uuid: ^4.1.0
|
||||
|
||||
flutter_icons:
|
||||
image_path: "assets/images/app_logo.png"
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'utils/utils.dart';
|
|||
|
||||
const configPath = 'tool/.secrets-config.json';
|
||||
const evmChainsConfigPath = 'tool/.evm-secrets-config.json';
|
||||
const bitcoinConfigPath = 'tool/.bitcoin-secrets-config.json';
|
||||
|
||||
Future<void> main(List<String> args) async => generateSecretsConfig(args);
|
||||
|
||||
|
@ -18,6 +19,8 @@ Future<void> generateSecretsConfig(List<String> args) async {
|
|||
|
||||
final configFile = File(configPath);
|
||||
final evmChainsConfigFile = File(evmChainsConfigPath);
|
||||
final bitcoinConfigFile = File(bitcoinConfigPath);
|
||||
|
||||
final secrets = <String, dynamic>{};
|
||||
|
||||
secrets.addAll(extraInfo);
|
||||
|
@ -56,8 +59,16 @@ Future<void> generateSecretsConfig(List<String> args) async {
|
|||
|
||||
secrets[sec.name] = sec.generate();
|
||||
});
|
||||
|
||||
secretsJson = JsonEncoder.withIndent(' ').convert(secrets);
|
||||
|
||||
await evmChainsConfigFile.writeAsString(secretsJson);
|
||||
|
||||
secrets.clear();
|
||||
SecretKey.bitcoinSecrets.forEach((sec) {
|
||||
if (secrets[sec.name] != null) {
|
||||
return;
|
||||
}
|
||||
secrets[sec.name] = sec.generate();
|
||||
});
|
||||
secretsJson = JsonEncoder.withIndent(' ').convert(secrets);
|
||||
await bitcoinConfigFile.writeAsString(secretsJson);
|
||||
}
|
||||
|
|
|
@ -44,6 +44,11 @@ class SecretKey {
|
|||
SecretKey('polygonScanApiKey', () => ''),
|
||||
];
|
||||
|
||||
static final bitcoinSecrets = [
|
||||
SecretKey('breezApiKey', () => ''),
|
||||
SecretKey('breezInviteCode', () => ''),
|
||||
];
|
||||
|
||||
final String name;
|
||||
final String Function() generate;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue