Bip44Base<BIP44 extends Bip44Base<BIP44> >.fromPublicKey constructor
Bip44Base<BIP44 extends Bip44Base<BIP44> >.fromPublicKey (
- List<
int> pubkeyBytes, - BaseBipCoinConfig<
BaseCoinConfig> coin, { - Bip32KeyData? keyData,
Constructor for creating a Bip44Base object from a public key and coin.
Implementation
Bip44Base.fromPublicKey(
List<int> pubkeyBytes,
BaseBipCoinConfig coin, {
Bip32KeyData? keyData,
}) {
Bip32Base bip;
switch (coin.type) {
case EllipticCurveTypes.secp256k1:
bip = Bip32Slip10Secp256k1.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
case EllipticCurveTypes.ed25519:
bip = Bip32Slip10Ed25519.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
case EllipticCurveTypes.ed25519Blake2b:
bip = Bip32Slip10Ed25519Blake2b.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
case EllipticCurveTypes.ed25519Kholaw:
if (coin.defaultHdKeyDerivator == DefaultHdKeyDerivator.icarus) {
bip = CardanoIcarusBip32.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
}
bip = Bip32KholawEd25519.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
case EllipticCurveTypes.nist256p1:
bip = Bip32Slip10Nist256p1.fromPublicKey(
pubkeyBytes,
keyData: keyData,
keyNetVer: coin.keyNetVer,
);
break;
default:
throw ArgumentException.invalidOperationArguments(
"Bip44",
name: "coin",
reason: "Unsupported coin key algorithm",
details: {"algorithm": coin.type.name},
);
}
final validate = _validate(bip, coin);
bip32 = validate.$1;
coinConf = validate.$2;
}