private static Network InitStratisRegTest() { // TODO: move this to Networks var net = Network.GetNetwork("StratisRegTest"); if (net != null) { return(net); } Block.BlockSignature = true; Transaction.TimeStamp = true; var consensus = Network.StratisTest.Consensus.Clone(); consensus.PowLimit = new Target(uint256.Parse("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); consensus.PowAllowMinDifficultyBlocks = true; consensus.PowNoRetargeting = true; var messageStart = new byte[4]; messageStart[0] = 0xcd; messageStart[1] = 0xf2; messageStart[2] = 0xc0; messageStart[3] = 0xef; var magic = BitConverter.ToUInt32(messageStart, 0); var genesis = Network.StratisMain.GetGenesis(); genesis.Header.Time = 1494909211; genesis.Header.Nonce = 2433759; genesis.Header.Bits = consensus.PowLimit; consensus.HashGenesisBlock = genesis.GetHash(consensus.NetworkOptions); Assert(consensus.HashGenesisBlock == uint256.Parse("0x93925104d664314f581bc7ecb7b4bad07bcfabd1cfce4256dbd2faddcf53bd1f")); consensus.DefaultAssumeValid = null; // turn off assumevalid for regtest. var builder = new NetworkBuilder() .SetName("StratisRegTest") .SetRootFolderName(StratisRootFolderName) .SetDefaultConfigFilename(StratisDefaultConfigFilename) .SetConsensus(consensus) .SetMagic(magic) .SetGenesis(genesis) .SetPort(18444) .SetRPCPort(18442) .SetMaxTimeOffsetSeconds(StratisMaxTimeOffsetSeconds) .SetMaxTipAge(StratisDefaultMaxTipAgeInSeconds) .SetBase58Bytes(Base58Type.PUBKEY_ADDRESS, new byte[] { (65) }) .SetBase58Bytes(Base58Type.SCRIPT_ADDRESS, new byte[] { (196) }) .SetBase58Bytes(Base58Type.SECRET_KEY, new byte[] { (65 + 128) }) .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_NO_EC, new byte[] { 0x01, 0x42 }) .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_EC, new byte[] { 0x01, 0x43 }) .SetBase58Bytes(Base58Type.EXT_PUBLIC_KEY, new byte[] { (0x04), (0x88), (0xB2), (0x1E) }) .SetBase58Bytes(Base58Type.EXT_SECRET_KEY, new byte[] { (0x04), (0x88), (0xAD), (0xE4) }); return(builder.BuildAndRegister()); }
private static Network InitPurpleRegTest() { // TODO: move this to Networks var net = Network.GetNetwork("PurpleRegTest"); if (net != null) { return(net); } Block.BlockSignature = true; Transaction.TimeStamp = true; var consensus = Network.PurpleTest.Consensus.Clone(); consensus.PowLimit = new Target(uint256.Parse("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); consensus.PowAllowMinDifficultyBlocks = true; consensus.PowNoRetargeting = true; var messageStart = new byte[4]; messageStart[0] = 0xdd; messageStart[1] = 0xd6; messageStart[2] = 0xea; messageStart[3] = 0xf7; var magic = BitConverter.ToUInt32(messageStart, 0); var genesis = Network.PurpleMain.GetGenesis(); genesis.Header.Time = 1515944354; genesis.Header.Nonce = 2; genesis.Header.Bits = consensus.PowLimit; consensus.HashGenesisBlock = genesis.GetHash(consensus.NetworkOptions); Assert(consensus.HashGenesisBlock == uint256.Parse("0x59b6c7ad17bd6f16cdc68e4e5e41aad885bbc8b973c7d589b5ef726d39d29360")); consensus.DefaultAssumeValid = null; // turn off assumevalid for regtest. var builder = new NetworkBuilder() .SetName("PurpleRegTest") .SetConsensus(consensus) .SetMagic(magic) .SetGenesis(genesis) .SetPort(18444) .SetRPCPort(18442) .SetBase58Bytes(Base58Type.PUBKEY_ADDRESS, new byte[] { (51) }) .SetBase58Bytes(Base58Type.SCRIPT_ADDRESS, new byte[] { (125) }) .SetBase58Bytes(Base58Type.SECRET_KEY, new byte[] { (63 + 128) }) .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_NO_EC, new byte[] { 0x01, 0x42 }) .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_EC, new byte[] { 0x01, 0x43 }) .SetBase58Bytes(Base58Type.EXT_PUBLIC_KEY, new byte[] { (0x04), (0x88), (0xB2), (0x1E) }) .SetBase58Bytes(Base58Type.EXT_SECRET_KEY, new byte[] { (0x04), (0x88), (0xAD), (0xE4) }); return(builder.BuildAndRegister()); }
/// <summary> /// Parse a bitcoin amount (Culture Invariant) /// </summary> /// <param name="bitcoin"></param> /// <param name="nRet"></param> /// <returns></returns> public static bool TryParseBTC(string bitcoin, out Money nRet) { Network btcNetwork = Network.GetNetwork("main"); return(TryParseDefault(btcNetwork, bitcoin + " BTC", out nRet)); }