getECKeysAsync function
Implementation
Future<ECKeys> getECKeysAsync(
String phrase, {
String passphrase = '',
int index = 0,
int coinType = CoinType.icp,
}) async {
final basePath = getPathWithCoinType(coinType: coinType);
final seed = await ffi.mnemonicPhraseToSeed(
req: ffi.PhraseToSeedReq(phrase: phrase, password: passphrase),
);
final prv = await ffi.mnemonicSeedToKey(
req: ffi.SeedToKeyReq(seed: seed, path: '$basePath/0/$index'),
);
final kp = await ffi.secp256K1FromSeed(
req: ffi.Secp256k1FromSeedReq(seed: prv),
);
final kpSchnorr = await ffi.schnorrFromSeed(
req: ffi.SchnorrFromSeedReq(seed: prv),
);
final kpP256 = await ffi.p256FromSeed(
req: ffi.P256FromSeedReq(seed: prv),
);
return ECKeys(
ecPrivateKey: prv,
ecPublicKey: Secp256k1PublicKey.fromDer(kp.derEncodedPublicKey).toRaw(),
ecSchnorrPublicKey:
SchnorrPublicKey.fromRaw(kpSchnorr.publicKeyHash).toRaw(),
ecP256PublicKey: P256PublicKey.fromDer(kpP256.derEncodedPublicKey).toRaw(),
);
}