loss of precision fixes

This commit is contained in:
julian
2023-12-21 16:01:03 -06:00
parent daabdf3389
commit 120858ba97
5 changed files with 13 additions and 24 deletions

View File

@@ -761,9 +761,8 @@ abstract final class LibSpark {
serializedCoins,
required int privateRecipientsCount,
}) {
final privateKeyPtr =
privateKeyHex.to32BytesFromHex().unsignedCharPointer();
privateKeyHex.to32BytesFromHex().unsignedCharPointer();
final serializedCoinsPtr = malloc.allocate<DartSpendCoinData>(
sizeOf<DartSpendCoinData>() * serializedCoins.length);
@@ -812,13 +811,11 @@ abstract final class LibSpark {
malloc.free(result.ref.error);
malloc.free(result);
throw ex;
} else {
final fee = result.ref.fee;
malloc.free(result);
return fee;
}
final fee = result.ref.fee;
malloc.free(result);
return fee;
}
}

View File

@@ -320,7 +320,7 @@ class FlutterLibsparkmobileBindings {
ffi.Pointer<SparkFeeResult> Function(
ffi.Pointer<ffi.UnsignedChar>,
ffi.Int,
ffi.Int,
ffi.Int64,
ffi.Int,
ffi.Pointer<DartSpendCoinData>,
ffi.Int,
@@ -632,7 +632,7 @@ final class SparkSpendTransactionResult extends ffi.Struct {
@ffi.Int()
external int outputScriptsLength;
@ffi.Int()
@ffi.Int64()
external int fee;
@ffi.Int()
@@ -685,6 +685,6 @@ final class DartSpendCoinData extends ffi.Struct {
final class SparkFeeResult extends ffi.Struct {
external ffi.Pointer<ffi.Char> error;
@ffi.Int()
@ffi.Int64()
external int fee;
}

View File

@@ -547,7 +547,7 @@ FFI_PLUGIN_EXPORT
SparkFeeResult* estimateSparkFee(
unsigned char* keyData,
int index,
int sendAmount,
int64_t sendAmount,
int subtractFeeFromAmount,
struct DartSpendCoinData* coins,
int coinsLength,
@@ -573,7 +573,7 @@ SparkFeeResult* estimateSparkFee(
std::pair<CAmount, std::vector<CSparkMintMeta>> estimated = SelectSparkCoins(
sendAmount,
subtractFeeFromAmount,
subtractFeeFromAmount > 0,
cppCoins,
privateRecipientsLength
);

View File

@@ -18,14 +18,6 @@
FFI_PLUGIN_EXPORT
const char* getAddress(unsigned char* keyData, int index, int diversifier, int isTestNet);
/*
FFI_PLUGIN_EXPORT
const char *createFullViewKey(const char* keyData, int index);
FFI_PLUGIN_EXPORT
const char* createIncomingViewKey(const char* keyData, int index);
*/
/*
* FFI-friendly wrapper for spark::identifyCoin.
*
@@ -115,7 +107,7 @@ FFI_PLUGIN_EXPORT
struct SparkFeeResult* estimateSparkFee(
unsigned char* keyData,
int index,
int sendAmount,
int64_t sendAmount,
int subtractFeeFromAmount,
struct DartSpendCoinData* coins,
int coinsLength,

View File

@@ -215,7 +215,7 @@ struct SparkSpendTransactionResult {
struct OutputScript* outputScripts;
int outputScriptsLength;
int fee;
int64_t fee;
int isError;
};
@@ -251,7 +251,7 @@ struct DartSpendCoinData {
struct SparkFeeResult {
char *error;
int fee;
int64_t fee;
};
//#ifdef __cplusplus