/// <summary> /// The resolve. /// </summary> public static bool PopulateCoinParameters(CoinParameters param) { // places to look for the network parameters // https://github.com/bitcoin/bitcoin/blob/d612837814020ae832499d18e6ee5eb919a87907/src/chainparams.cpp // https://github.com/CrypticApplications/MTR-Update/blob/master/src/base58.h // example MTR => private key prefix is [128 + CBitcoinAddress::PUBKEY_ADDRESS] List <int> vals; if (Params.TryGetValue(param.CoinTag, out vals)) { param.PublicKeyAddressVersion = vals.ElementAt(0); param.ScriptAddressVersion = vals.ElementAt(1); param.ExtendedKeyIndex = vals.ElementAt(2); param.PrivateKeyVersion = vals.ElementAt(3); Thrower.If(param.PrivateKeyVersion == -1).Throw <AddressException>(); Thrower.If(param.ExtendedKeyIndex == -1).Throw <AddressException>(); Thrower.If(param.PublicKeyAddressVersion == -1).Throw <AddressException>(); return(true); } return(false); }
/// <summary> /// The resolve. /// </summary> public static CoinParameters TryCreateCoinParameters(string coinTag) { var coinParameters = new CoinParameters { CoinTag = coinTag }; if (AddressUtil.PopulateCoinParameters(coinParameters)) { return(coinParameters); } return(null); }