getECKeysAsync function

Future<ECKeys> getECKeysAsync(
  1. String phrase, {
  2. String passphrase = '',
  3. int index = 0,
  4. int coinType = CoinType.icp,
})

Implementation

Future<ECKeys> getECKeysAsync(
  String phrase, {
  String passphrase = '',
  int index = 0,
  int coinType = CoinType.icp,
}) async {
  final basePath = getPathWithCoinType(coinType: coinType);
  final seed = await AgentDartFFI.impl.mnemonicPhraseToSeed(
    req: PhraseToSeedReq(phrase: phrase, password: passphrase),
  );

  final prv = await AgentDartFFI.impl.mnemonicSeedToKey(
    req: SeedToKeyReq(seed: seed, path: '$basePath/0/$index'),
  );
  final kp = await AgentDartFFI.impl.secp256K1FromSeed(
    req: Secp256k1FromSeedReq(seed: prv),
  );
  final kpSchnorr = await AgentDartFFI.impl.schnorrFromSeed(
    req: SchnorrFromSeedReq(seed: prv),
  );
  final kpP256 = await AgentDartFFI.impl.p256FromSeed(
    req: 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(),
  );
}