private static int GetMinLength(List <char[]> unSalted, int minLength, int maxLength) { int result = 0; for (int i = 1; i < 10; i++) { if (HexHashUtil.TryHexPosConversion(i, 1, unSalted, out double value)) { result += (int)value; } if (result > minLength - 1 & i > 3) { if (result < maxLength) { return(result); } else { result = maxLength; } } } return(maxLength - 1); }
public bool CreateValue(HexValue hexValue) { _hexValue = hexValue; if (_hexValue == null) { Console.WriteLine("HexValue is null, can\'t calculate value without."); return(false); } if (!HexHashUtil.TryHexPosConversion(Position, Size, Salted ? hexValue.Salted : hexValue.UnSalted, out var result)) { Console.WriteLine($"CreateValue, failed trying to convert hex position.{Position}, {Size}, {Salted}"); return(false); } var modValue = result % (Creation - MinRange) + MinRange; if (Math.Abs(modValue % 1) > Double.Epsilon) { Console.WriteLine($"CreateValue, failed to cast double in same int value.{modValue},{(int)modValue}"); return(false); } _value = (int)modValue; return(true); }
public bool CreateValue(HexValue hexValue) { this._hexValue = hexValue; if (this._hexValue == null) { Console.WriteLine($"HexValue is null, can't calculate value without."); return(false); } if (!HexHashUtil.TryHexPosConversion(Position, Size, Salted? hexValue.Salted : hexValue.UnSalted, out double result)) { Console.WriteLine($"CreateValue, failed trying to convert hex position.{Position}, {Size}, {Salted}"); return(false); } double modValue = (result % (Creation - MinRange)) + MinRange; if (modValue % 1 != 0) { Console.WriteLine($"CreateValue, failed to cast double in same int value.{modValue},{(int)modValue}"); return(false); } value = (int)modValue; return(true); }
private static bool TryMirrorPubKey(PubKey pubKey, out PubKey mirrorPubKey) { var pubKeyStr = HexHashUtil.ByteArrayToString(pubKey.ToBytes()); var reversedArray = pubKeyStr.Substring(10, 54).ToCharArray(); Array.Reverse(reversedArray); var mirrorPubKeyStr = pubKeyStr.Substring(0, 8) + pubKeyStr.Substring(8, 2) + new string(reversedArray) + pubKeyStr.Substring(64, 2); var mirrorPubKeyBytes = HexHashUtil.StringToByteArray(mirrorPubKeyStr); try { mirrorPubKey = new PubKey(mirrorPubKeyBytes, false); return(false); } catch (Exception) { //Console.WriteLine(ex.InnerException); mirrorPubKey = new PubKey(mirrorPubKeyBytes, true); return(true); } }
public SpellTest() { var lvlCleric = new LevelingAction(LevelingType.Class, ClassType.Cleric, 0, 1); var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(MogAddress)); var creation = new Shift(0, 1530914381, pubMogAddressHex, 2000, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m); Assert.True(creation.History != null); var level = new Shift(1, 1530914381, pubMogAddressHex, 2001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", lvlCleric.GetValue1(), lvlCleric.GetValue2()); Assert.True(level.History != null); var shifts = new Dictionary <long, Shift> { { 2000, creation }, { 2001, level } }; Mogwai = new Mogwai(MogAddress, shifts); }
/// <summary> /// /// </summary> /// <param name="shift"></param> public Dice(Shift shift) { string height = shift.Height.ToString(); height = height.PadLeft(height.Length + height.Length % 2, '0'); seed1 = HexHashUtil.HashSHA256(shift.AdHex + height); seed2 = HexHashUtil.HashSHA256(shift.AdHex + shift.BkHex).Substring(1); seed3 = HexHashUtil.HashSHA256(height + shift.BkHex).Substring(3); }
/// <summary> /// /// </summary> /// <param name="mirroraddress"></param> /// <returns></returns> public Dictionary <double, Shift> GetShifts(string mirroraddress) { var result = new Dictionary <double, Shift>(); List <TxDetail> allTxs = ListMirrorTransactions(mirroraddress); var validTx = allTxs.Where(p => p.Confirmations > 0).OrderBy(p => p.Blocktime).ThenBy(p => p.Blockindex).ToList(); // stop if there aren't any valid transactions ... if (!validTx.Any()) { return(result); } var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(mirroraddress)); bool creation = false; int lastBlockHeight = 0; foreach (var tx in validTx) { decimal amount = Math.Abs(tx.Amount); if (!creation && amount < mogwaiCost) { continue; } creation = true; var block = GetBlock(tx.Blockhash); if (lastBlockHeight != 0 && lastBlockHeight + 1 < block.Height) { // add small shifts for (int i = lastBlockHeight + 1; i < block.Height; i++) { result.Add(i, new Shift(result.Count(), pubMogAddressHex, i, blockHashDict[i])); } } lastBlockHeight = block.Height; result.Add(block.Height, new Shift(result.Count(), tx.Blocktime, pubMogAddressHex, block.Height, tx.Blockhash, tx.Blockindex, tx.Txid, amount, Math.Abs(tx.Fee + txFee))); } // add small shifts if (creation) { for (int i = lastBlockHeight + 1; i < blockHashDict.Keys.Max(); i++) { result.Add(i, new Shift(result.Count(), pubMogAddressHex, i, blockHashDict[i])); } } //result.ForEach(p => Console.WriteLine(p.ToString())); return(result); }
public HexValue(Shift shift) { string saltgrain = HexHashUtil.ByteArrayToString(BitConverter.GetBytes(shift.Time * Math.Pow(shift.Height, 2))); salt = String.Concat(Enumerable.Repeat(saltgrain, (int)(64 / saltgrain.Length) + 1)).ToCharArray(); adHexChar = shift.AdHex.ToCharArray(); bkHexChar = shift.BkHex.ToCharArray(); txHexChar = shift.TxHex.ToCharArray(); }
public EntityTest() { string pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(MogAddress)); var lvlClass1 = new LevelingAction(LevelingType.Class, ClassType.Barbarian, 0, 1); var creation1 = new Shift(0, 1530914381, pubMogAddressHex, 2000, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m); Assert.True(creation1.History != null); var level1 = new Shift(1, 1530914381, pubMogAddressHex, 2001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", lvlClass1.GetValue1(), lvlClass1.GetValue2()); Assert.True(level1.History != null); var shifts1 = new Dictionary <long, Shift> { { 2000, creation1 }, { 2001, level1 } }; Mogwai1 = new Mogwai(MogAddress, shifts1); var lvlClass2 = new LevelingAction(LevelingType.Class, ClassType.Sorcerer, 0, 1); var creation2 = new Shift(0, 1530914381, pubMogAddressHex, 2000, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m); Assert.True(creation2.History != null); var level2 = new Shift(1, 1530914381, pubMogAddressHex, 2001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", lvlClass2.GetValue1(), lvlClass2.GetValue2()); Assert.True(level2.History != null); var shifts2 = new Dictionary <long, Shift> { { 2000, creation2 }, { 2001, level2 } }; Mogwai2 = new Mogwai(MogAddress, shifts2); }
private int GetNext() { var s1Val = HexHashUtil.GetHexVal(_seed1[_i1]); var s2Val = HexHashUtil.GetHexVal(_seed2[_i2]); var s3Val = HexHashUtil.GetHexVal(_seed3[_i3]); var value = s1Val + s2Val + s3Val; _i1 = (_i1 + 1) % _seed1.Length; _i2 = _i1 == 0 ? (_i2 + 1) % _seed2.Length : _i2; _i3 = _i2 == 0 ? (_i3 + 1) % _seed3.Length : _i3; return(value); }
private int GetNext() { int s1val = HexHashUtil.GetHexVal(seed1[i1]); int s2val = HexHashUtil.GetHexVal(seed2[i2]); int s3val = HexHashUtil.GetHexVal(seed3[i3]); int value = s1val + s2val + s3val; i1 = (i1 + 1) % seed1.Length; i2 = i1 == 0 ? (i2 + 1) % seed2.Length : i2; i3 = i2 == 0 ? (i3 + 1) % seed3.Length : i3; return(value); }
public Dice(Shift shift, int modifier) { string height = shift.Height.ToString(); height = height.PadLeft(height.Length + height.Length % 2, 'a'); string modifierStr = modifier.ToString(); modifierStr = modifierStr.PadLeft(modifierStr.Length + modifierStr.Length % 2, 'a'); seed1 = HexHashUtil.HashSHA256(HexHashUtil.HashSHA256(modifierStr) + height); seed2 = HexHashUtil.HashSHA256(modifierStr + height).Substring(1); seed3 = HexHashUtil.HashSHA256(height + modifierStr + shift.BkHex).Substring(3); }
public MogwaiTest() { var address = "MJHYMxu2kyR1Bi4pYwktbeCM7yjZyVxt2i"; var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(address)); Mogwai = new Mogwai(address, new Dictionary <long, Shift> { { 1001, new Shift(0, 1530914381, pubMogAddressHex, 1001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m) } }); }
public void GenderTest() { var genderAttr = AttributeBuilder.Create("Gender") .Salted(false).SetPosition(2).SetSize(1).SetCreation(2).SetMaxRange(2).Build(); var dict = new Dictionary <int, int>(); foreach (var b1 in Base58Encoding.Digits.ToCharArray()) { foreach (var b2 in Base58Encoding.Digits.ToCharArray()) { var addr = "M" + b1 + b2 + "KtKS3AeNuRFWE5Qj9tFiNAahWvQMTiz"; var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(addr)); var hexValue = new HexValue( new Shift(0, 1530914381, pubMogAddressHex, 7234, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m)); genderAttr.CreateValue(hexValue); var value = genderAttr.GetValue(); var orgValue = HexHashUtil.GetHexVal(pubMogAddressHex[1]); if (dict.TryGetValue(value, out var count)) { dict[value] = count + 1; } else { dict.Add(value, 1); } } } Assert.Equal(2, dict.Count); var enumerator = dict.Keys.GetEnumerator(); enumerator.MoveNext(); Assert.Equal(1, enumerator.Current); enumerator.MoveNext(); Assert.Equal(0, enumerator.Current); Assert.Equal(1692, dict[0]); Assert.Equal(1672, dict[1]); }
public void HashSHA256Test() { Shift shift = new Shift(0D, 1530914381, "32ad9e02792599dfdb6a9d0bc0b924da23bd96b1b7eb4f0a68", 7234, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m); var bytes = HexHashUtil.StringToByteArray(shift.AdHex); var hashedBytes = HexHashUtil.HashSHA256(bytes); var hash = HexHashUtil.ByteArrayToString(hashedBytes); Assert.AreEqual("bcd35d9f6de167fada34bfeb0c59d2b1a55974b9460c54f42dfff2e86cf8c58b", hash); }
public HomeTownTest() { var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(MogAddress)); var creation = new Shift(0, 1530914381, pubMogAddressHex, 2000, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m); Assert.True(creation.History != null); var shifts = new Dictionary <long, Shift> { { 2000, creation } }; Mogwai = new Mogwai(MogAddress, shifts); }
public static string GenerateName(HexValue hexValue) { var minLength = GetMinLength(hexValue.UnSalted, 3, 9); string[] consonants = { "b", "c", "ck", "d", "f", "g", "h", "j", "k", "l", "m", "l", "n", "p", "q", "r", "s", "sh", "zh", "t", "v", "w", "x" }; string[] vowels = { "a", "e", "i", "o", "u", "ae", "y" }; var name = ""; if (HexHashUtil.TryHexPosConversion(4, 2, hexValue.UnSalted, out var seedValues)) { name += consonants[(int)seedValues % consonants.Length]; } if (HexHashUtil.TryHexPosConversion(6, 2, hexValue.UnSalted, out seedValues)) { name += vowels[(int)seedValues % vowels.Length]; } var ind = 8; var consonantNow = true; while (name.Length < minLength) { if (consonantNow && HexHashUtil.TryHexPosConversion(ind, 2, hexValue.UnSalted, out seedValues)) { name += consonants[(int)seedValues % consonants.Length]; } else if (HexHashUtil.TryHexPosConversion(ind, 2, hexValue.UnSalted, out seedValues)) { name += vowels[(int)seedValues % vowels.Length]; } else { Log.Error("Generating names seems currently troublesome!"); } consonantNow = !consonantNow; ind += 2; } return(name.First().ToString().ToUpper() + name.Substring(1)); }
/// <summary> /// /// </summary> /// <param name="cuurentLevel"></param> /// <param name="shift"></param> /// <returns></returns> internal double GetExp(int cuurentLevel, Shift shift) { int hexSize = shift.BkHex.Length; int lazyExpLevel = (int)cuurentLevel / 10; int lazyExp = 0; for (int i = 0; i <= lazyExpLevel; i++) { string exPat = expPats[i % 18]; int indExp = shift.BkHex.IndexOf(exPat); if (indExp != -1) { var charMultiplierA = shift.BkHex[(hexSize + indExp - 1) % hexSize]; var charMultiplierB = shift.BkHex[(indExp + exPat.Length) % hexSize]; var exp = HexHashUtil.GetHexVal(charMultiplierA) * HexHashUtil.GetHexVal(charMultiplierB); lazyExp += exp; } } return(lazyExp); }
/// <summary> /// /// </summary> /// <param name="cuurentLevel"></param> /// <param name="shift"></param> /// <returns></returns> internal double GetExp(int cuurentLevel, Shift shift) { var hexSize = shift.BkHex.Length; var lazyExpLevel = cuurentLevel / 10; var lazyExp = 0; for (var i = 0; i <= lazyExpLevel; i++) { var exPat = _expPats[i % 18]; var indExp = shift.BkHex.IndexOf(exPat, StringComparison.Ordinal); if (indExp != -1) { var charMultiplierA = shift.BkHex[(hexSize + indExp - 1) % hexSize]; var charMultiplierB = shift.BkHex[(indExp + exPat.Length) % hexSize]; var exp = HexHashUtil.GetHexVal(charMultiplierA) * HexHashUtil.GetHexVal(charMultiplierB); lazyExp += exp; } } return(lazyExp); }
public DungeonTest() { var address = "MJHYMxu2kyR1Bi4pYwktbeCM7yjZyVxt2i"; var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(address)); var shifts = new Dictionary <long, Shift> { { 1001, new Shift(0, 1530914381, pubMogAddressHex, 1001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m) }, { 1002, new Shift(1, 1535295740, pubMogAddressHex, 1002, "0000000033dbfc3cc9f3671ba28b41ecab6f547219bb43174cc97bf23269fa88", 1, "db5639553f9727c42f80c22311bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", 0.01040003m, 0.00001002m) } }; Mogwai = new Mogwai("MJHYMxu2kyR1Bi4pYwktbeCM7yjZyVxt2i", shifts); }
/// <summary> /// /// </summary> /// <param name="mirrorAddress"></param> /// <returns></returns> public Dictionary <long, Shift> GetShifts(string mirrorAddress) { var result = new Dictionary <long, Shift>(); List <TxDetail> allTxs = ListMirrorTransactions(mirrorAddress); var validTx = allTxs.Where(p => p.Confirmations > 0).OrderBy(p => p.BlockTime).ThenBy(p => p.BlockIndex) .ToList(); // stop if there aren't any valid transactions ... if (!validTx.Any()) { return(result); } var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode(mirrorAddress)); var creation = false; var lastBlockHeight = 0; foreach (TxDetail tx in validTx) { var amount = Math.Abs(tx.Amount); if (!creation && amount < MogwaiCost) { continue; } creation = true; Block block = GetBlock(tx.BlockHash); if (lastBlockHeight != 0 && lastBlockHeight + 1 < block.Height) { // add small shifts for (var i = lastBlockHeight + 1; i < block.Height; i++) { // blockhashes aren't updated need to wait ... if (!_blockHashDict.ContainsKey(i)) { Log.Warn( $"blockhashes aren't updated to the current block we got {block.Height} and our hashes are at {_blockHashDict.Keys.Max()}!"); return(result); } result.Add(i, new Shift(result.Count, pubMogAddressHex, i, _blockHashDict[i])); } } lastBlockHeight = block.Height; result.Add(block.Height, new Shift(result.Count, tx.BlockTime, pubMogAddressHex, block.Height, tx.BlockHash, tx.BlockIndex, tx.TxId, amount, Math.Abs(tx.Fee + TxFee))); } // add small shifts if (creation) { var max = _blockHashDict.Keys.Max(); for (var i = lastBlockHeight + 1; i < max; i++) { result.Add(i, new Shift(result.Count, pubMogAddressHex, i, _blockHashDict[i])); } } return(result); }
public MogwaiKeys TestMogwaiKeys() { //return GetKeysFor("M9whXm2mjrhySAH6D81Lk5mthw1mUEZpvi", "MGJ9VoguyKeRTYmpURgztife4N7PnuDH6u"); var lvlBarbarian = new LevelingAction(LevelingType.Class, ClassType.Barbarian, 0, 1); var lvlCleric = new LevelingAction(LevelingType.Class, ClassType.Cleric, 0, 1); var lvlSorcerer = new LevelingAction(LevelingType.Class, ClassType.Sorcerer, 0, 1); var dungAction = new AdventureAction(AdventureType.Dungeon, DifficultyType.Easy, 2); var healAction = new SpecialAction(SpecialType.Heal, SpecialSubType.None, CostType.Medium); var revivingAction = new SpecialAction(SpecialType.Reviving, SpecialSubType.None, CostType.High); var pubMogAddressHex = HexHashUtil.ByteArrayToString(Base58Encoding.Decode("MJHYMxu2kyR1Bi4pYwktbeCM7yjZyVxt2i")); var blockHeight = 84659; var index = 0; var shifts = new Dictionary <long, Shift> { { blockHeight, new Shift(index++, 1530914381, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", 1.00m, 0.0001m) }, { blockHeight, new Shift(index++, 1530914381, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", lvlSorcerer.GetValue1(), lvlSorcerer.GetValue2()) }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, 1539810141, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "cbcd39553f9727c434343222f1bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", lvlBarbarian.GetValue1(), lvlBarbarian.GetValue2()) }, { blockHeight, new Shift(index++, 1539815141, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bff29", healAction.GetValue1(), healAction.GetValue2()) }, { blockHeight, new Shift(index++, 1540417599, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000b552e9c7c51ed793f87c51b2cc945fbb222efd6cec17666a5ecd18a5", 1, "cb03db5029f426ed517fdfffd6a90c99a3111f2254f41f9a8f56320076b1f0e3", dungAction.GetValue1(), dungAction.GetValue2()) }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f547219bb43174cc97bf2164d2e39") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163dc3671ba28b41ecab6f547219bb43174cc97bf2164d2e30") }, { blockHeight, new Shift(index++, 1555309745, "32ab20cfbef0ccddfe5c79e726f5fc48b151106f196f7ccb71", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bdf29", revivingAction.GetValue1(), revivingAction.GetValue2()) }, { blockHeight, new Shift(index++, 1539815141, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bff29", healAction.GetValue1(), healAction.GetValue2()) }, { blockHeight, new Shift(index++, 1539810141, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "cbcd39553f9727c434343222f1bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", lvlSorcerer.GetValue1(), lvlSorcerer.GetValue2()) }, { blockHeight, new Shift(index++, 1540985507, "32ab20cfbef0ccddfe5c79e726f5fc48b151106f196f7ccb71", blockHeight++, "00000000b2204f48bb8d48542a6ada13bc86dde4d2909563fdb8f46389d1a1d2", 1, "01d8c163c4f034f7d1f8d7e94fc9fc9a30bbef1aa41c2e03dab29787588c60c4", dungAction.GetValue1(), dungAction.GetValue2()) }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163db3671ba28b41ecab6f547219bb43174cc97bf2164d2e31") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163db3671ba28b41ecab6f547219bb43174cc97bf2164d2e31") }, { blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163db3671ba28b41ecab6f547219bb43174cc97bf2164d2e31") }, { blockHeight, new Shift(index++, 1555309745, "32ab20cfbef0ccddfe5c79e726f5fc48b151106f196f7ccb71", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bdf29", revivingAction.GetValue1(), revivingAction.GetValue2()) }, { blockHeight, new Shift(index++, 1556309745, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bff29", healAction.GetValue1(), healAction.GetValue2()) }, { blockHeight, new Shift(index++, 1557309745, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", 1, "cbcd39553f9727c434343222f1bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", lvlSorcerer.GetValue1(), lvlSorcerer.GetValue2()) }, { blockHeight, new Shift(index++, 1541350482, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000341eea3f27e4ddaf72253cd6a35f54ece70fdeee0906a663f8403a60", 1, "302e37f0c69b1b037bc178fce6f8493a76a4c844df5391a0a46e81fcad8657c8", 0.01042002m, 0.00019003m) }, }; for (var i = 0; i < 30; i++) { shifts.Add(blockHeight, new Shift(index++, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "0000000033dbfc163de3671ba28b41ecab6f5d1cf9bb43174cc97bf2164d2e39")); } for (var i = 0; i < 10; i++) { shifts.Add(blockHeight, new Shift(index++, 1530914381, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", lvlBarbarian.GetValue1(), lvlBarbarian.GetValue2())); } var dungActionNext = new AdventureAction(AdventureType.Dungeon, DifficultyType.Easy, 8); shifts.Add(blockHeight, new Shift(index++, 1540417599, "328e6077135a1012eae0c92dc624d1cbc02c69d45200e5f72c", blockHeight++, "00000000b552e9c7c51ed793f87c51b2cc945fbb222efd6cec17666a5ecd18a5", 1, "cb03db5029f426ed517fdfffd6a90c99a3111f2254f41f9a8f56320076b1f0e3", dungActionNext.GetValue1(), dungActionNext.GetValue2())); // var shifts = new Dictionary<long, Shift> // { // { // 1001, new Shift(0, 1530914381, pubMogAddressHex, // 1001, "00000000090d6c6b058227bb61ca2915a84998703d4444cc2641e6a0da4ba37e", // 2, "163d2e383c77765232be1d9ed5e06749a814de49b4c0a8aebf324c0e9e2fd1cf", // 1.00m, // 0.0001m) // }, // { // 1002, new Shift(1, 1535295740, pubMogAddressHex, // 1002, "0000000033dbfc3cc9f3671ba28b41ecab6f547219bb43174cc97bf23269fa88", // 1, "db5639553f9727c42f80c22311bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", // 0.01040003m, // 0.00001002m) // }, // { // 1003, new Shift(2, pubMogAddressHex, // 1003, "0000000033dbfc3cc9f3671ba28b41ecab6f547219bb43174cc97bf2163d2e38") // }, // { // 1004, new Shift(3, pubMogAddressHex, // 1004, "0000000033dbfc163df3671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1005, new Shift(4, pubMogAddressHex, // 1005, "0000000033dbfc163de3671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1006, new Shift(5, pubMogAddressHex, // 1006, "0000000033dbfc163dc3671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1007, new Shift(6, pubMogAddressHex, // 1007, "0000000033dbfc163db3671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1008, new Shift(7, pubMogAddressHex, // 1008, "0000000033dbfc163def671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1009, new Shift(8, pubMogAddressHex, // 1009, "0000000033dbfc163dff671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1010, new Shift(9, 1555295740, pubMogAddressHex, // 1010, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", // 1, "cbcd39553f9727c434343222f1bd8025608edcfbcfc262c0c2afe9fc3f0bcb29", // lvlAction.GetValue1(), // lvlAction.GetValue2()) // }, // { // 1011, new Shift(10, pubMogAddressHex, // 1011, "0000000033dbfc163dff671ba28b41ecab6f547219bb43174cc97bf2164d2e38") // }, // { // 1012, new Shift(11, 1555299745, pubMogAddressHex, // 1012, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", // 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bcf29", // dungAction.GetValue1(), // dungAction.GetValue2()) // }, // { // 1013, new Shift(12, 1555309745, pubMogAddressHex, // 1013, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", // 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bdf29", // revivingAction.GetValue1(), // revivingAction.GetValue2()) // }, // { // 1014, new Shift(13, 1555329745, pubMogAddressHex, // 1014, "0000000044db5c3cc943271b324b31ecab6f547219bb43174cc97bf23269fa88", // 1, "bbcd39553a9727c434343242f9bd8025608edcfbcfc262c0c2afe9fc3f0bff29", // healAction.GetValue1(), // healAction.GetValue2()) // }, // { // 1015, new Shift(14, 1539810141, "328b742623b139b29553d0c2cc2c785ed8feff324a37a6bc41", // 75422, "000000004eb637ffbdb8674dbe5ff5c339a50b0dac1723f1df44b7b790746a6e", // 1, "7876fde772cae5684ad133a007c92f5f209cc91fdc1814fe3dab2c6174557ea7", // 0.01042002m, // 0.00020002m) // } //}; var mogwai = new Mogwai("MJHYMxu2kyR1Bi4pYwktbeCM7yjZyVxt2i", shifts); return(new MogwaiKeys { Mogwai = mogwai, Balance = 2.1234m, IsUnwatched = false, LastUpdated = DateTime.Now, MogwaiKeysState = MogwaiKeysState.Bound, Shifts = shifts }); }