summaryrefslogtreecommitdiff
path: root/impls/monero.dart
diff options
context:
space:
mode:
Diffstat (limited to 'impls/monero.dart')
-rw-r--r--impls/monero.dart/lib/src/monero.dart63
-rw-r--r--impls/monero.dart/lib/src/wallet2.dart42
-rw-r--r--impls/monero.dart/lib/src/wownero.dart63
3 files changed, 164 insertions, 4 deletions
diff --git a/impls/monero.dart/lib/src/monero.dart b/impls/monero.dart/lib/src/monero.dart
index 76fee3b..5d71b26 100644
--- a/impls/monero.dart/lib/src/monero.dart
+++ b/impls/monero.dart/lib/src/monero.dart
@@ -10,7 +10,9 @@ class Monero implements Wallet2 {
Wallet2WalletManagerFactory walletManagerFactory() {
return MoneroWalletManagerFactory();
}
-
+
+ @override
+ int ffiAddress() => 0;
}
class MoneroAddressBook implements Wallet2AddressBook {
@@ -58,6 +60,9 @@ class MoneroAddressBook implements Wallet2AddressBook {
bool setDescription({required int rowId, required String description}) {
return monero.AddressBook_setDescription(addressBookPtr, rowId: rowId, description: description);
}
+
+ @override
+ int ffiAddress() => addressBookPtr.address;
}
class MoneroAddressBookRow implements Wallet2AddressBookRow {
@@ -89,6 +94,9 @@ class MoneroAddressBookRow implements Wallet2AddressBookRow {
int getRowId() {
return monero.AddressBookRow_getRowId(addressBookRowPtr);
}
+
+ @override
+ int ffiAddress() => addressBookRowPtr.address;
}
class MoneroCoins implements Wallet2Coins {
@@ -147,6 +155,9 @@ class MoneroCoins implements Wallet2Coins {
void thawByPublicKey({required String publicKey}) {
monero.Coins_thawByPublicKey(coinsPtr, publicKey: publicKey);
}
+
+ @override
+ int ffiAddress() => coinsPtr.address;
}
class MoneroCoinsInfo implements Wallet2CoinsInfo {
@@ -258,6 +269,9 @@ class MoneroCoinsInfo implements Wallet2CoinsInfo {
bool unlocked() {
return monero.CoinsInfo_unlocked(coinsInfoPtr);
}
+
+ @override
+ int ffiAddress() => coinsInfoPtr.address;
}
class MoneroDeviceProgress implements Wallet2DeviceProgress {
@@ -274,6 +288,9 @@ class MoneroDeviceProgress implements Wallet2DeviceProgress {
bool progress() {
return monero.DeviceProgress_progress(deviceProgressPtr);
}
+
+ @override
+ int ffiAddress() => deviceProgressPtr.address;
}
class MoneroWalletListener implements Wallet2WalletListener {
@@ -305,6 +322,9 @@ class MoneroWalletListener implements Wallet2WalletListener {
void resetNeedToRefresh() {
monero.MONERO_cw_WalletListener_resetNeedToRefresh(walletListenerPtr);
}
+
+ @override
+ int ffiAddress() => walletListenerPtr.address;
}
class MoneroWalletChecksum implements Wallet2Checksum {
@@ -324,6 +344,9 @@ class MoneroWalletChecksum implements Wallet2Checksum {
String checksum_wallet2_api_c_h() {
return monero.MONERO_checksum_wallet2_api_c_h();
}
+
+ @override
+ int ffiAddress() => 0;
}
class MoneroFree implements Wallet2Free {
@@ -333,6 +356,9 @@ class MoneroFree implements Wallet2Free {
void free(Pointer<Void> ptr) {
monero.MONERO_free(ptr);
}
+
+ @override
+ int ffiAddress() => 0;
}
class MoneroMultisigState implements Wallet2MultisigState {
@@ -359,6 +385,9 @@ class MoneroMultisigState implements Wallet2MultisigState {
int total(Pointer<Void> ptr) {
return monero.MultisigState_total(multisigStatePtr);
}
+
+ @override
+ int ffiAddress() => multisigStatePtr.address;
}
class MoneroPendingTransaction implements Wallet2PendingTransaction {
@@ -440,6 +469,9 @@ class MoneroPendingTransaction implements Wallet2PendingTransaction {
String txid(String separator) {
return monero.PendingTransaction_txid(pendingTransactionPtr, separator);
}
+
+ @override
+ int ffiAddress() => pendingTransactionPtr.address;
}
class MoneroSubaddress implements Wallet2Subaddress {
@@ -472,6 +504,9 @@ class MoneroSubaddress implements Wallet2Subaddress {
void setLabel({required int accountIndex, required int addressIndex, required String label}) {
monero.Subaddress_setLabel(subaddressPtr, accountIndex: accountIndex, addressIndex: addressIndex, label: label);
}
+
+ @override
+ int ffiAddress() => subaddressPtr.address;
}
class MoneroSubaddressAccount implements Wallet2SubaddressAccount {
@@ -504,6 +539,9 @@ class MoneroSubaddressAccount implements Wallet2SubaddressAccount {
void setLabel({required int accountIndex, required String label}) {
monero.SubaddressAccount_setLabel(subaddressAccountPtr, accountIndex: accountIndex, label: label);
}
+
+ @override
+ int ffiAddress() => subaddressAccountPtr.address;
}
class MoneroSubaddressAccountRow implements Wallet2SubaddressAccountRow {
@@ -540,6 +578,9 @@ class MoneroSubaddressAccountRow implements Wallet2SubaddressAccountRow {
String getUnlockedBalance() {
return monero.SubaddressAccountRow_getUnlockedBalance(subaddressAccountRowPtr);
}
+
+ @override
+ int ffiAddress() => subaddressAccountRowPtr.address;
}
class MoneroSubaddressRow implements Wallet2SubaddressRow {
@@ -566,6 +607,9 @@ class MoneroSubaddressRow implements Wallet2SubaddressRow {
int getRowId() {
return monero.SubaddressRow_getRowId(subaddressRowPtr);
}
+
+ @override
+ int ffiAddress() => subaddressRowPtr.address;
}
class MoneroTransactionHistory implements Wallet2TransactionHistory {
@@ -599,6 +643,9 @@ class MoneroTransactionHistory implements Wallet2TransactionHistory {
final tx = monero.TransactionHistory_transactionById(transactionHistoryPtr, txid: txid);
return MoneroTransactionInfo(tx);
}
+
+ @override
+ int ffiAddress() => transactionHistoryPtr.address;
}
class MoneroTransactionInfo implements Wallet2TransactionInfo {
@@ -701,6 +748,8 @@ class MoneroTransactionInfo implements Wallet2TransactionInfo {
return monero.TransactionInfo_unlockTime(transactionInfoPtr);
}
+ @override
+ int ffiAddress() => transactionInfoPtr.address;
}
class MoneroUnsignedTransaction implements Wallet2UnsignedTransaction {
@@ -768,7 +817,8 @@ class MoneroUnsignedTransaction implements Wallet2UnsignedTransaction {
return monero.UnsignedTransaction_txCount(unsignedTransactionPtr);
}
-
+ @override
+ int ffiAddress() => unsignedTransactionPtr.address;
}
class MoneroWallet implements Wallet2Wallet {
@@ -1471,6 +1521,9 @@ class MoneroWallet implements Wallet2Wallet {
bool watchOnly() {
return monero.Wallet_watchOnly(walletPtr);
}
+
+ @override
+ int ffiAddress() => walletPtr.address;
}
class MoneroWalletManager implements Wallet2WalletManager {
@@ -1599,6 +1652,9 @@ class MoneroWalletManager implements Wallet2WalletManager {
bool walletExists(String path) {
return monero.WalletManager_walletExists(wmPtr, path);
}
+
+ @override
+ int ffiAddress() => wmPtr.address;
}
class MoneroWalletManagerFactory implements Wallet2WalletManagerFactory {
@@ -1616,4 +1672,7 @@ class MoneroWalletManagerFactory implements Wallet2WalletManagerFactory {
void setLogLevel(int level) {
monero.WalletManagerFactory_setLogLevel(level);
}
+
+ @override
+ int ffiAddress() => 0;
}
diff --git a/impls/monero.dart/lib/src/wallet2.dart b/impls/monero.dart/lib/src/wallet2.dart
index 4b87c6a..3c58949 100644
--- a/impls/monero.dart/lib/src/wallet2.dart
+++ b/impls/monero.dart/lib/src/wallet2.dart
@@ -15,9 +15,13 @@ abstract class Wallet2 {
static set libPath(String path) {
throw Exception('libPath is read-only, as isolates cannot be made aware of changes to this variable');
}
+
+ int ffiAddress();
}
abstract class Wallet2AddressBook {
+ int ffiAddress();
+
int getAll_size();
Wallet2AddressBookRow getAll_byIndex(int index);
bool addRow({required String dstAddr, required String paymentId, required String description, });
@@ -29,6 +33,8 @@ abstract class Wallet2AddressBook {
}
abstract class Wallet2AddressBookRow {
+ int ffiAddress();
+
String extra();
String getAddress();
String getDescription();
@@ -37,6 +43,8 @@ abstract class Wallet2AddressBookRow {
}
abstract class Wallet2Coins {
+ int ffiAddress();
+
int count();
Wallet2CoinsInfo coin(int index);
int getAll_size();
@@ -50,6 +58,8 @@ abstract class Wallet2Coins {
}
abstract class Wallet2CoinsInfo {
+ int ffiAddress();
+
int blockHeight();
String hash();
int internalOutputIndex();
@@ -74,11 +84,15 @@ abstract class Wallet2CoinsInfo {
}
abstract class Wallet2DeviceProgress {
+ int ffiAddress();
+
bool progress();
bool indeterminate();
}
abstract class Wallet2WalletListener {
+ int ffiAddress();
+
void resetNeedToRefresh();
bool isNeedToRefresh();
bool isNewTransactionExist();
@@ -87,16 +101,22 @@ abstract class Wallet2WalletListener {
}
abstract class Wallet2Checksum {
+ int ffiAddress();
+
String checksum_wallet2_api_c_h();
String checksum_wallet2_api_c_cpp();
String checksum_wallet2_api_c_exp();
}
abstract class Wallet2Free {
+ int ffiAddress();
+
void free(Pointer<Void> wlptr);
}
abstract class Wallet2MultisigState {
+ int ffiAddress();
+
bool isMultisig(Pointer<Void> ptr);
bool isReady(Pointer<Void> ptr);
int threshold(Pointer<Void> ptr);
@@ -104,6 +124,8 @@ abstract class Wallet2MultisigState {
}
abstract class Wallet2PendingTransaction {
+ int ffiAddress();
+
int status();
String errorString();
bool commit({required String filename, required bool overwrite});
@@ -122,6 +144,8 @@ abstract class Wallet2PendingTransaction {
}
abstract class Wallet2Subaddress {
+ int ffiAddress();
+
int getAll_size();
Wallet2SubaddressRow getAll_byIndex(int index);
void addRow({required int accountIndex, required String label});
@@ -130,6 +154,8 @@ abstract class Wallet2Subaddress {
}
abstract class Wallet2SubaddressAccount {
+ int ffiAddress();
+
int getAll_size();
Wallet2SubaddressAccountRow getAll_byIndex(int index);
void addRow({required String label});
@@ -138,6 +164,8 @@ abstract class Wallet2SubaddressAccount {
}
abstract class Wallet2SubaddressAccountRow {
+ int ffiAddress();
+
String extra();
String getAddress();
String getLabel();
@@ -147,6 +175,8 @@ abstract class Wallet2SubaddressAccountRow {
}
abstract class Wallet2SubaddressRow {
+ int ffiAddress();
+
String extra();
String getAddress();
String getLabel();
@@ -154,6 +184,8 @@ abstract class Wallet2SubaddressRow {
}
abstract class Wallet2TransactionHistory {
+ int ffiAddress();
+
int count();
Wallet2TransactionInfo transaction(int index);
Wallet2TransactionInfo transactionById(String txid);
@@ -162,6 +194,8 @@ abstract class Wallet2TransactionHistory {
}
abstract class Wallet2TransactionInfo {
+ int ffiAddress();
+
int direction();
bool isPending();
bool isFailed();
@@ -184,6 +218,8 @@ abstract class Wallet2TransactionInfo {
}
abstract class Wallet2UnsignedTransaction {
+ int ffiAddress();
+
int status();
String errorString();
String amount();
@@ -199,6 +235,8 @@ abstract class Wallet2UnsignedTransaction {
}
abstract class Wallet2Wallet {
+ int ffiAddress();
+
String seed({required String seedOffset});
String getSeedLanguage();
void setSeedLanguage({required String language});
@@ -340,6 +378,8 @@ abstract class Wallet2Wallet {
}
abstract class Wallet2WalletManager {
+ int ffiAddress();
+
Wallet2Wallet createWallet({ required String path, required String password, String language = "English", int networkType = 0, });
Wallet2Wallet openWallet({ required String path, required String password, int networkType = 0, });
Wallet2Wallet recoveryWallet({ required String path, required String password, required String mnemonic, int networkType = 0, required int restoreHeight, int kdfRounds = 0, required String seedOffset, });
@@ -366,6 +406,8 @@ abstract class Wallet2WalletManager {
}
abstract class Wallet2WalletManagerFactory {
+ int ffiAddress();
+
void setLogLevel(int level);
void setLogCategories(String categories);
Wallet2WalletManager getWalletManager();
diff --git a/impls/monero.dart/lib/src/wownero.dart b/impls/monero.dart/lib/src/wownero.dart
index 7bf8809..cd16f9b 100644
--- a/impls/monero.dart/lib/src/wownero.dart
+++ b/impls/monero.dart/lib/src/wownero.dart
@@ -11,6 +11,8 @@ class Wownero implements Wallet2 {
return WowneroWalletManagerFactory();
}
+ @override
+ int ffiAddress() => 0;
}
class WowneroAddressBook implements Wallet2AddressBook {
@@ -58,6 +60,9 @@ class WowneroAddressBook implements Wallet2AddressBook {
bool setDescription({required int rowId, required String description}) {
return wownero.AddressBook_setDescription(addressBookPtr, rowId: rowId, description: description);
}
+
+ @override
+ int ffiAddress() => addressBookPtr.address;
}
class WowneroAddressBookRow implements Wallet2AddressBookRow {
@@ -89,6 +94,9 @@ class WowneroAddressBookRow implements Wallet2AddressBookRow {
int getRowId() {
return wownero.AddressBookRow_getRowId(addressBookRowPtr);
}
+
+ @override
+ int ffiAddress() => addressBookRowPtr.address;
}
class WowneroCoins implements Wallet2Coins {
@@ -147,6 +155,9 @@ class WowneroCoins implements Wallet2Coins {
void thawByPublicKey({required String publicKey}) {
wownero.Coins_thawByPublicKey(coinsPtr, publicKey: publicKey);
}
+
+ @override
+ int ffiAddress() => coinsPtr.address;
}
class WowneroCoinsInfo implements Wallet2CoinsInfo {
@@ -258,6 +269,9 @@ class WowneroCoinsInfo implements Wallet2CoinsInfo {
bool unlocked() {
return wownero.CoinsInfo_unlocked(coinsInfoPtr);
}
+
+ @override
+ int ffiAddress() => coinsInfoPtr.address;
}
class WowneroDeviceProgress implements Wallet2DeviceProgress {
@@ -274,6 +288,9 @@ class WowneroDeviceProgress implements Wallet2DeviceProgress {
bool progress() {
return wownero.DeviceProgress_progress(deviceProgressPtr);
}
+
+ @override
+ int ffiAddress() => deviceProgressPtr.address;
}
class WowneroWalletListener implements Wallet2WalletListener {
@@ -305,6 +322,9 @@ class WowneroWalletListener implements Wallet2WalletListener {
void resetNeedToRefresh() {
wownero.WOWNERO_cw_WalletListener_resetNeedToRefresh(walletListenerPtr);
}
+
+ @override
+ int ffiAddress() => walletListenerPtr.address;
}
class WowneroWalletChecksum implements Wallet2Checksum {
@@ -324,6 +344,9 @@ class WowneroWalletChecksum implements Wallet2Checksum {
String checksum_wallet2_api_c_h() {
return wownero.WOWNERO_checksum_wallet2_api_c_h();
}
+
+ @override
+ int ffiAddress() => 0;
}
class WowneroFree implements Wallet2Free {
@@ -333,6 +356,9 @@ class WowneroFree implements Wallet2Free {
void free(Pointer<Void> ptr) {
wownero.WOWNERO_free(ptr);
}
+
+ @override
+ int ffiAddress() => 0;
}
class WowneroMultisigState implements Wallet2MultisigState {
@@ -359,6 +385,9 @@ class WowneroMultisigState implements Wallet2MultisigState {
int total(Pointer<Void> ptr) {
return wownero.MultisigState_total(multisigStatePtr);
}
+
+ @override
+ int ffiAddress() => multisigStatePtr.address;
}
class WowneroPendingTransaction implements Wallet2PendingTransaction {
@@ -440,6 +469,9 @@ class WowneroPendingTransaction implements Wallet2PendingTransaction {
String txid(String separator) {
return wownero.PendingTransaction_txid(pendingTransactionPtr, separator);
}
+
+ @override
+ int ffiAddress() => pendingTransactionPtr.address;
}
class WowneroSubaddress implements Wallet2Subaddress {
@@ -472,6 +504,9 @@ class WowneroSubaddress implements Wallet2Subaddress {
void setLabel({required int accountIndex, required int addressIndex, required String label}) {
wownero.Subaddress_setLabel(subaddressPtr, accountIndex: accountIndex, addressIndex: addressIndex, label: label);
}
+
+ @override
+ int ffiAddress() => subaddressPtr.address;
}
class WowneroSubaddressAccount implements Wallet2SubaddressAccount {
@@ -504,6 +539,9 @@ class WowneroSubaddressAccount implements Wallet2SubaddressAccount {
void setLabel({required int accountIndex, required String label}) {
wownero.SubaddressAccount_setLabel(subaddressAccountPtr, accountIndex: accountIndex, label: label);
}
+
+ @override
+ int ffiAddress() => subaddressAccountPtr.address;
}
class WowneroSubaddressAccountRow implements Wallet2SubaddressAccountRow {
@@ -540,6 +578,9 @@ class WowneroSubaddressAccountRow implements Wallet2SubaddressAccountRow {
String getUnlockedBalance() {
return wownero.SubaddressAccountRow_getUnlockedBalance(subaddressAccountRowPtr);
}
+
+ @override
+ int ffiAddress() => subaddressAccountRowPtr.address;
}
class WowneroSubaddressRow implements Wallet2SubaddressRow {
@@ -566,6 +607,9 @@ class WowneroSubaddressRow implements Wallet2SubaddressRow {
int getRowId() {
return wownero.SubaddressRow_getRowId(subaddressRowPtr);
}
+
+ @override
+ int ffiAddress() => subaddressRowPtr.address;
}
class WowneroTransactionHistory implements Wallet2TransactionHistory {
@@ -599,6 +643,9 @@ class WowneroTransactionHistory implements Wallet2TransactionHistory {
final tx = wownero.TransactionHistory_transactionById(transactionHistoryPtr, txid: txid);
return WowneroTransactionInfo(tx);
}
+
+ @override
+ int ffiAddress() => transactionHistoryPtr.address;
}
class WowneroTransactionInfo implements Wallet2TransactionInfo {
@@ -700,7 +747,9 @@ class WowneroTransactionInfo implements Wallet2TransactionInfo {
int unlockTime() {
return wownero.TransactionInfo_unlockTime(transactionInfoPtr);
}
-
+
+ @override
+ int ffiAddress() => transactionInfoPtr.address;
}
class WowneroUnsignedTransaction implements Wallet2UnsignedTransaction {
@@ -768,7 +817,8 @@ class WowneroUnsignedTransaction implements Wallet2UnsignedTransaction {
return wownero.UnsignedTransaction_txCount(unsignedTransactionPtr);
}
-
+ @override
+ int ffiAddress() => unsignedTransactionPtr.address;
}
class WowneroWallet implements Wallet2Wallet {
@@ -1469,6 +1519,9 @@ class WowneroWallet implements Wallet2Wallet {
bool watchOnly() {
return wownero.Wallet_watchOnly(walletPtr);
}
+
+ @override
+ int ffiAddress() => walletPtr.address;
}
class WowneroWalletManager implements Wallet2WalletManager {
@@ -1596,6 +1649,9 @@ class WowneroWalletManager implements Wallet2WalletManager {
bool walletExists(String path) {
return wownero.WalletManager_walletExists(wmPtr, path);
}
+
+ @override
+ int ffiAddress() => wmPtr.address;
}
class WowneroWalletManagerFactory implements Wallet2WalletManagerFactory {
@@ -1613,4 +1669,7 @@ class WowneroWalletManagerFactory implements Wallet2WalletManagerFactory {
void setLogLevel(int level) {
wownero.WalletManagerFactory_setLogLevel(level);
}
+
+ @override
+ int ffiAddress() => 0;
}