deriveMasterNodeFromExtendedKey function

(BipNode, int) deriveMasterNodeFromExtendedKey(
  1. String ePubKey, {
  2. UTXONetworkType? networkType,
  3. HDWalletPurpose? purpose,
})

Implementation

(BipNode node, int version) deriveMasterNodeFromExtendedKey(
  String ePubKey, {
  UTXONetworkType? networkType,
  HDWalletPurpose? purpose,
}) {
  final buffer = bs58check.decode(ePubKey);

  if (buffer.length != 78) {
    throw UnsupportedError("invalid ePubKey");
  }

  final version = buffer.bytes.getUint32(0);

  final node = BipNode.fromBase58(
    ePubKey,
    switch ((networkType, purpose)) {
      (UTXONetworkType network, HDWalletPurpose purpose) =>
        network.networkBIP.getForWalletType(purpose),
      _ => bip32.NetworkType(
          wif: 0x80,
          bip32: bip32.Bip32Type(
            private: 0x0488ADE4,
            public: 0x0488B21E,
          ),
        ),
    },
  );

  return (node, version);
}