fix(dubp): mnemonic should generate HD wallet only
This commit is contained in:
parent
43b3c6c8f4
commit
4fea62ab64
|
@ -159,10 +159,10 @@ class GenerateWalletsProvider with ChangeNotifier {
|
||||||
Future<NewWallet> generateWallet(generatedMnemonic) async {
|
Future<NewWallet> generateWallet(generatedMnemonic) async {
|
||||||
try {
|
try {
|
||||||
this.actualWallet = await DubpRust.genWalletFromMnemonic(
|
this.actualWallet = await DubpRust.genWalletFromMnemonic(
|
||||||
language: Language.french,
|
language: Language.french,
|
||||||
mnemonic: generatedMnemonic,
|
mnemonic: generatedMnemonic,
|
||||||
secretCodeType: SecretCodeType.letters,
|
secretCodeType: SecretCodeType.letters,
|
||||||
walletType: WalletType.bip32Ed25519);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print(e);
|
print(e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,6 @@ pub(super) fn gen_dewif(
|
||||||
member_wallet: bool,
|
member_wallet: bool,
|
||||||
secret_code_type: SecretCodeType,
|
secret_code_type: SecretCodeType,
|
||||||
system_memory: i64,
|
system_memory: i64,
|
||||||
wallet_type: WalletType,
|
|
||||||
) -> Result<Vec<String>, DubpError> {
|
) -> Result<Vec<String>, DubpError> {
|
||||||
let currency = parse_currency(currency)?;
|
let currency = parse_currency(currency)?;
|
||||||
let mnemonic =
|
let mnemonic =
|
||||||
|
@ -52,17 +51,10 @@ pub(super) fn gen_dewif(
|
||||||
let log_n = log_n(system_memory);
|
let log_n = log_n(system_memory);
|
||||||
let secret_code = gen_secret_code(member_wallet, secret_code_type, log_n)?;
|
let secret_code = gen_secret_code(member_wallet, secret_code_type, log_n)?;
|
||||||
|
|
||||||
let dewif = match wallet_type {
|
let keypair = dup_crypto::keys::ed25519::bip32::KeyPair::from_seed(seed.clone());
|
||||||
WalletType::Bip32Ed25519 => {
|
let pubkey = keypair.public_key();
|
||||||
let keypair = dup_crypto::keys::ed25519::bip32::KeyPair::from_seed(seed.clone());
|
let dewif =
|
||||||
let pubkey = keypair.public_key();
|
dup_crypto::dewif::write_dewif_v4_content(currency, log_n, &secret_code, &pubkey, seed);
|
||||||
dup_crypto::dewif::write_dewif_v4_content(currency, log_n, &secret_code, &pubkey, seed)
|
|
||||||
}
|
|
||||||
WalletType::Ed25519 => {
|
|
||||||
let keypair = KeyPairFromSeed32Generator::generate(seed);
|
|
||||||
dup_crypto::dewif::write_dewif_v3_content(currency, &keypair, log_n, &secret_code)
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok(vec![dewif, secret_code])
|
Ok(vec![dewif, secret_code])
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,6 @@ pub extern "C" fn gen_dewif(
|
||||||
member_wallet: u32,
|
member_wallet: u32,
|
||||||
secret_code_type: u32,
|
secret_code_type: u32,
|
||||||
system_memory: i64,
|
system_memory: i64,
|
||||||
wallet_type: u32,
|
|
||||||
) {
|
) {
|
||||||
exec_async(
|
exec_async(
|
||||||
port,
|
port,
|
||||||
|
@ -97,7 +96,6 @@ pub extern "C" fn gen_dewif(
|
||||||
let mnemonic = char_ptr_to_str(mnemonic)?;
|
let mnemonic = char_ptr_to_str(mnemonic)?;
|
||||||
let member_wallet = member_wallet != 0;
|
let member_wallet = member_wallet != 0;
|
||||||
let secret_code_type = SecretCodeType::from(secret_code_type);
|
let secret_code_type = SecretCodeType::from(secret_code_type);
|
||||||
let wallet_type = WalletType::from(wallet_type);
|
|
||||||
Ok((
|
Ok((
|
||||||
currency,
|
currency,
|
||||||
language,
|
language,
|
||||||
|
@ -105,18 +103,9 @@ pub extern "C" fn gen_dewif(
|
||||||
member_wallet,
|
member_wallet,
|
||||||
secret_code_type,
|
secret_code_type,
|
||||||
system_memory,
|
system_memory,
|
||||||
wallet_type,
|
|
||||||
))
|
))
|
||||||
},
|
},
|
||||||
|(
|
|(currency, language, mnemonic, member_wallet, secret_code_type, system_memory)| {
|
||||||
currency,
|
|
||||||
language,
|
|
||||||
mnemonic,
|
|
||||||
member_wallet,
|
|
||||||
secret_code_type,
|
|
||||||
system_memory,
|
|
||||||
wallet_type,
|
|
||||||
)| {
|
|
||||||
dewif::gen_dewif(
|
dewif::gen_dewif(
|
||||||
currency,
|
currency,
|
||||||
language,
|
language,
|
||||||
|
@ -124,7 +113,6 @@ pub extern "C" fn gen_dewif(
|
||||||
member_wallet,
|
member_wallet,
|
||||||
secret_code_type,
|
secret_code_type,
|
||||||
system_memory,
|
system_memory,
|
||||||
wallet_type,
|
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -144,10 +144,11 @@ NewWallet new_wallet = await DubpRust.genWalletFromMnemonic(
|
||||||
#### Function signature
|
#### Function signature
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
static Future<String> sign({
|
static Future<String> signBip32Transparent({
|
||||||
|
int accountIndex,
|
||||||
String currency = "g1",
|
String currency = "g1",
|
||||||
String dewif,
|
String dewif,
|
||||||
String pin,
|
String secretCode,
|
||||||
String message
|
String message
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
@ -157,7 +158,8 @@ If the wallet is not dedicated to the Ğ1 currency, you must indicate the curren
|
||||||
#### Usage example
|
#### Usage example
|
||||||
|
|
||||||
```dart
|
```dart
|
||||||
String signature = await DubpRust.sign(
|
String signature = await DubpRust.signBip32Transparent(
|
||||||
|
accountIndex: 3,
|
||||||
dewif: "AAAAARAAAAGfFDAs+jVZYkfhBlHZZ2fEQIvBqnG16g5+02cY18wSOjW0cUg2JV3SUTJYN2CrbQeRDwGazWnzSFBphchMmiL0",
|
dewif: "AAAAARAAAAGfFDAs+jVZYkfhBlHZZ2fEQIvBqnG16g5+02cY18wSOjW0cUg2JV3SUTJYN2CrbQeRDwGazWnzSFBphchMmiL0",
|
||||||
pin: "CDJ4UB",
|
pin: "CDJ4UB",
|
||||||
message: "toto"
|
message: "toto"
|
||||||
|
|
|
@ -156,7 +156,6 @@ class DubpRust {
|
||||||
Language language = Language.english,
|
Language language = Language.english,
|
||||||
String mnemonic,
|
String mnemonic,
|
||||||
SecretCodeType secretCodeType = SecretCodeType.letters,
|
SecretCodeType secretCodeType = SecretCodeType.letters,
|
||||||
WalletType walletType = WalletType.ed25519,
|
|
||||||
}) async {
|
}) async {
|
||||||
int ram = SysInfo.getTotalPhysicalMemory();
|
int ram = SysInfo.getTotalPhysicalMemory();
|
||||||
print('ram=$ram');
|
print('ram=$ram');
|
||||||
|
@ -172,7 +171,6 @@ class DubpRust {
|
||||||
0,
|
0,
|
||||||
secretCodeType.index,
|
secretCodeType.index,
|
||||||
ram,
|
ram,
|
||||||
walletType.index,
|
|
||||||
);
|
);
|
||||||
List<String> newWallet = await completer.future;
|
List<String> newWallet = await completer.future;
|
||||||
|
|
||||||
|
@ -263,24 +261,6 @@ class DubpRust {
|
||||||
return completer.future;
|
return completer.future;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sign the message `message` with `dewif` keypair encryted in DEWIF format.
|
|
||||||
///
|
|
||||||
/// If you have several messages to sign, use `signSeveral` method instead.
|
|
||||||
static Future<String> sign(
|
|
||||||
{String currency = "g1", String dewif, String pin, String message}) {
|
|
||||||
final completer = Completer<String>();
|
|
||||||
final sendPort =
|
|
||||||
singleCompletePort<String, String>(completer, callback: _handleErr);
|
|
||||||
native.sign(
|
|
||||||
sendPort.nativePort,
|
|
||||||
Utf8.toUtf8(currency),
|
|
||||||
Utf8.toUtf8(dewif),
|
|
||||||
Utf8.toUtf8(pin),
|
|
||||||
Utf8.toUtf8(message),
|
|
||||||
);
|
|
||||||
return completer.future;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sign the message `message` with `dewif` Bip32-Ed25519 keypair encryted
|
/// Sign the message `message` with `dewif` Bip32-Ed25519 keypair encryted
|
||||||
/// in DEWIF format.
|
/// in DEWIF format.
|
||||||
///
|
///
|
||||||
|
@ -323,33 +303,6 @@ class DubpRust {
|
||||||
return completer.future;
|
return completer.future;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Sign several messages `messages` with `dewif` keypair encryted in DEWIF
|
|
||||||
/// format.
|
|
||||||
///
|
|
||||||
/// This method is optimized to sign several messages at once. If you have
|
|
||||||
/// several messages to sign, avoid calling the `sign` method for each
|
|
||||||
/// message. Use this `signSeveral` method instead.
|
|
||||||
static Future<List<String>> signSeveral(
|
|
||||||
{String currency = "g1",
|
|
||||||
String dewif,
|
|
||||||
String pin,
|
|
||||||
List<String> messages}) {
|
|
||||||
final completer = Completer<List<String>>();
|
|
||||||
final sendPort = singleCompletePort<List<String>, List>(completer,
|
|
||||||
callback: _handleErrList);
|
|
||||||
|
|
||||||
native.sign_several(
|
|
||||||
sendPort.nativePort,
|
|
||||||
Utf8.toUtf8(currency),
|
|
||||||
Utf8.toUtf8(dewif),
|
|
||||||
Utf8.toUtf8(pin),
|
|
||||||
messages.length,
|
|
||||||
_listStringToPtr(messages),
|
|
||||||
);
|
|
||||||
|
|
||||||
return completer.future;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Sign several messages `messages` with `dewif` keypair encryted in DEWIF
|
/// Sign several messages `messages` with `dewif` keypair encryted in DEWIF
|
||||||
/// format.
|
/// format.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Reference in New Issue