pass isTestnet bool as int

This commit is contained in:
sneurlax
2023-11-09 18:22:26 -06:00
parent ae09f016b2
commit 236e4de255
4 changed files with 27 additions and 16 deletions

View File

@@ -64,7 +64,7 @@ class _MyAppState extends State<MyApp> {
final diversifier = int.parse(diversifierController.text);
String address = await _flutterLibsparkmobilePlugin.getAddress(
keyData, index, diversifier);
keyData, index, diversifier, isTestnet);
addressController.text = address;
if (kDebugMode) {
@@ -234,15 +234,24 @@ class _MyAppState extends State<MyApp> {
),
),
),
// Checkbox(
// value: isTestnet,
// onChanged: (bool? newValue) {
// setState(() {
// isTestnet = newValue ?? true;
// });
// },
// ),
// const Text('Testnet'),
Expanded(
child: Container(
padding: const EdgeInsets.only(bottom: 22),
child: Row(
children: [
Checkbox(
value: isTestnet,
onChanged: (bool? newValue) {
setState(() {
isTestnet = newValue ?? true;
});
},
),
const Text('Testnet'),
],
),
),
),
],
),
const SizedBox(height: 20),

View File

@@ -19,7 +19,7 @@ class FlutterLibsparkmobile {
/// Derive an address from the keyData (mnemonic).
Future<String> getAddress(
List<int> keyData, int index, int diversifier) async {
List<int> keyData, int index, int diversifier, bool isTestNet) async {
// Validate that the keyData is 32 bytes.
if (keyData.length != 32) {
throw 'Key data must be 32 bytes.';
@@ -30,8 +30,8 @@ class FlutterLibsparkmobile {
final keyDataPointer = keyDataHex.toNativeUtf8().cast<Char>();
// Call the native method with the pointer.
final addressPointer =
_bindings.getAddress(keyDataPointer, index, diversifier);
final addressPointer = _bindings.getAddress(
keyDataPointer, index, diversifier, isTestNet ? 1 : 0);
// Convert the Pointer<Char> to a Dart String.
final addressString = addressPointer.cast<Utf8>().toDartString();

View File

@@ -26,18 +26,20 @@ class SparkMobileBindings {
ffi.Pointer<ffi.Char> keyDataHex,
int index,
int diversifier,
int isTestNet,
) {
return _getAddress(
keyDataHex,
index,
diversifier,
isTestNet,
);
}
late final _getAddressPtr = _lookup<
ffi.NativeFunction<
ffi.Pointer<ffi.Char> Function(
ffi.Pointer<ffi.Char>, ffi.Int, ffi.Int)>>('getAddress');
ffi.Pointer<ffi.Char>, ffi.Int, ffi.Int, ffi.Int)>>('getAddress');
late final _getAddress = _getAddressPtr.asFunction<
ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>, int, int)>();
ffi.Pointer<ffi.Char> Function(ffi.Pointer<ffi.Char>, int, int, int)>();
}