public static async Task <string[]> DoPow(this string[] trytes, string trunkTransaction, string branchTransaction, int minWeightMagnitude, int numberOfThreads, CancellationToken cancellationToken) { var trunk = trunkTransaction; var branch = branchTransaction; List <string> resultTrytes = new List <string>(); for (int i = 0; i < trytes.Length; i++) { if (i == 0) { branch = branchTransaction; } else { branch = trunkTransaction; } var tryte = trytes[i]; tryte = tryte.SetApproveTransactions(trunk, branch); var diver = new PowDiver(); var tryteWithNonce = await diver.DoPow(tryte, minWeightMagnitude, numberOfThreads, cancellationToken); var transaction = new TransactionItem(tryteWithNonce); trunk = transaction.Hash; resultTrytes.Add(tryteWithNonce); } return(resultTrytes.ToArray()); }
public void testRandomTryteHash() { PowDiver powDiver = new PowDiver(); Curl curl = new Curl(); String hash; int[] hashTrits = new int[PowDiver.CURL_HASH_LENGTH], myTrits; int i = 0, testCount = 20, minWeightMagnitude = 9, numCores = -1; // use n-1 cores String trytes = getRandomTrytes(); myTrits = Converter.ToTrits(trytes); powDiver.search(myTrits, minWeightMagnitude, numCores); curl.Absorb(myTrits, 0, myTrits.Length); curl.Squeeze(hashTrits, 0, PowDiver.CURL_HASH_LENGTH); curl.Reset(); hash = Converter.ToTrytes(hashTrits); bool success = isAllNines(hash.Substring(PowDiver.CURL_HASH_LENGTH / 3 - minWeightMagnitude / 3)); Assert.IsTrue(success, "The hash should have n nines"); }
public void testRandomTryte_DoesNotCorrupt() { var powDiver = new PowDiver(); // var powDiver = new PearlDiver(); ICurl curl = new Curl(); String hash; int[] hashTrits = new int[PowDiver.CURL_HASH_LENGTH], myTrits; int i = 0, testCount = 20, minWeightMagnitude = 9, numCores = -1; // use n-1 cores String trytes = getRandomTrytes(); string orgTrytes = trytes.Clone() + ""; myTrits = Converter.ToTrits(trytes); powDiver.Search(myTrits, minWeightMagnitude, 1).Wait(); curl.Absorb(myTrits, 0, myTrits.Length); curl.Squeeze(hashTrits, 0, PowDiver.CURL_HASH_LENGTH); curl.Reset(); hash = Converter.ToTrytes(hashTrits); var hashToCheck = hash.Substring(PowDiver.CURL_HASH_LENGTH / 3 - minWeightMagnitude / 3); bool success = isAllNines(hashToCheck); var n = minWeightMagnitude / 3; Assert.IsTrue(success, $"The hash should have {n} nines but was: {hashToCheck}"); var powTrytes = Converter.ToTrytes(myTrits); Assert.AreEqual(orgTrytes, trytes); // These will differ in the last 27 chars which is the nonce. Assert.AreEqual(orgTrytes.Substring(0, 2646), powTrytes.Substring(0, 2646)); }
public async Task testRandomTryteHash() { var powDiver = new PowDiver(); ICurl curl = new Curl(); String hash; int[] hashTrits = new int[PowDiver.CURL_HASH_LENGTH], myTrits; int i = 0, testCount = 20, minWeightMagnitude = 9, numCores = -1; // use n-1 cores String trytes = getRandomTrytes(); myTrits = Converter.ToTrits(trytes); await powDiver.Search(myTrits, minWeightMagnitude, 1); curl.Absorb(myTrits, 0, myTrits.Length); curl.Squeeze(hashTrits, 0, PowDiver.CURL_HASH_LENGTH); curl.Reset(); hash = Converter.ToTrytes(hashTrits); var hashToCheck = hash.Substring(PowDiver.CURL_HASH_LENGTH / 3 - minWeightMagnitude / 3); bool success = isAllNines(hashToCheck); var n = minWeightMagnitude / 3; Assert.IsTrue(success, $"The hash should have {n} nines but was: {hashToCheck}"); }
public async Task <string> ApproveTransaction(string transactionHash, ApproveTransactionType approveType) { var api = CreateIotaClient(); //var address = await api.GetAddress(TestSeed2, 8); var emptyAddress = IotaUtils.GenerateRandomTrytes(81); // "".Pad(81); var transfer = new TransferItem() { Address = emptyAddress, Value = 0, Message = "", Tag = "" }; while (true) { try { CancellationTokenSource cts = new CancellationTokenSource(); var transactions = transfer.CreateTransactions(); var trytesToPow = transactions.GetTrytes().Single(); var toApproveResult = await api.IriApi.GetTransactionsToApprove(9); var toApprove = toApproveResult.Result; var diver = new PowDiver(); cts.CancelAfter(20000); var trunk = toApprove.TrunkTransaction; var branch = toApprove.BranchTransaction; if (approveType == ApproveTransactionType.Trunk) { trunk = transactionHash; } else { branch = transactionHash; } var trytesToSend = await diver.DoPow(trytesToPow.SetApproveTransactions(trunk, branch), 15, cts.Token); await api.IriApi.BroadcastTransactions(trytesToSend); await api.IriApi.StoreTransactions(trytesToSend); var transaction = new TransactionItem(trytesToSend); return(transaction.Hash); } catch (OperationCanceledException) { continue; } } }
public async Task PowTest3() { string intx = "COGEFAUCMKPCCPXKSWDIUXRDMXYMLUQIOZGTTLLZXRXBCPETQULHNCFDKPJPKTUHRGZFWAWUBMXRZSDTWGIHDLJYRVN9TLJWWDRWALERYLBSYMGYHSJPO9ZFBFMUSAUSCRUBNKTLNRDMYUZKLQPQDCBNTSZSGYLCEQTVRHNALINLYGGYRUFPZPJPAQBORRNG9VXMUNN9PLEASIYTIMMHQHYBCRGDSGGPBRSDRUJYXQYBDJPXXUEBU9QPLMTAQTTZOLOAQI9HYOHO9XXIWMKBHRCVPLCKUTKGOMMJDIRKBLVOAYWQGFHZRBU9ANNZRPGWFMMJSATKWHXCOLFRPXICO9NNMORXJNJEWLOQBATKJPHEMUOYAWGUZH9VKYBC9VCBNTGGHRSORCEYSLORCYVAE9DBIHZVWMJHUFHPOCNSYLVSWTOUXIHRW9QVQFKOVL9COHEQQNWGRWXXIKSOSNWLDSRWQDFCSHVTPTDLDXADDOEDUANAKBHVVCHMREOMRBBNUIWBKWEBKDUCGGBJICCH9DIMNJHFYFMAELFDTMRGQYBAZHOIERHPOOGMSMHZOWUZLKCETKKGDBWEYXQUSFEAFYJJKKHBNWLVKJFVT9WVPYVEJUZELSCDUWUQYDZDCNDVRMEVQIYKLSVQHQMTR9MU9ABMCBQEUBCPMVEDJMKOEHMYNXVYXNOAITMYGNHORTRFYNJEXDWTMLGPIXQVRCFHCOQXDBXVEGMMOIMCEOKIPLENWWHTIERSTNTHODQDDXUUZCPSUEDBVWYUTZTVGIAYKFZLOXSOVCLHTVESARNLBB9FTKEXSYBNESCEZNBGBILAOLG9CZVCNSEERFKWXWDUSQYRPDSJGCB9VIFEZCZTUYMRWUSKFCZOP9SEMJYJNWLOVLCQGMEMQNIO9LNEEYHJBKXMR9HXSHEHGOVKMFHEGNASYVXITOUCKLWP9CEKSPYIFVRDDM9DONOCSUIOKC9DMGSQHBHYCOSNJSGIYNXPNCFFFSZKDRJOOCL9DSDBXREVNHBIE9WUKCXHADEPPSEKKKBEFJ9AZALBBYDFAXLVIUYIBZOXJCUSIGTUPUFACUDIGOWTVEGWEZYWUOZOXYYAMCCQLHGMPQNLRNODKODTXCIGCDQVWDFVWAAI9ZJJCB9HSNBHOXESFTWPLMZHQRIHCDIFECNVQDRWWIPEIZNURGSYALJIRKMYZGMNEZYBSRWSWNKYWIKMJMQXUZZPJQBOLHAYFGFNJEK9ZAURLVXQUDNSSXFMFFXLLAZJQJMXTRJXLLFHYRVWARVPKGGTUQCCEETQY9HYCKZWWVSQHUKTGQMWXAXJNFJJ9XBJV9JCLGDHZWFTQTEINGGKI99IWMSYCOKTXVONQYXDZKBVWXUI9IWVJKSQLDUPZTRXVLECJEEBW9VDWZBQFOHZSOQULKKQVPRHEYOPRODJAQRB9ZYNMKIHTHQXUDALEYZ9WBMDKYBXTTGEKHXOGORPRDLVOIGTYDJLTTKEBCUSCOUUJJSTSZIEXDPKOILBMZVLXUYRBRUEBF9EUYSSYLQCNBW99XTJRIQHEXAPDTSKKTEQOWKFLNNVXSWQK9MGBWYJABTJXSLJPVWCDEEXXGNOWJLSNMILAJKBMNFRTNHSJ9NSWSBESQNSUKI9AZQJBJXUTWMX9DEFRUNYIXAJAOQTXIKPCLJPNMICXQCGWJFAHNIGSDPVUZKTVBIUHQWAHCGQFVTPJLPDYSKPHD9QVSUZFCNFVKUXARYA9ONFWIFAZRPMDFKNPNAHQZLFGXZCTDUGJQ99PADJ9FWVGKBRFYECDETIQHGDTTGXVRVQCNBPJTDGTMUYZJNBAPFFFMNUVWGXQUQGEQKFZIUEAQDMIFXHQERZYMGEKHXSTMOCKSVIQGKYPFCVHOPDQYHGFDHTMKC9XMNKYZBIOQPVU9GRJIZIOVAOZVFOEINTBHGOXAEDWMSBQJWGJWNKLSJJITMUSJFTDRIUUCGJCTJINQRIQLUPDRSU9OBGWOHUSUGMDVZLMUXSPWUYSDNGQQCYITIKWXWMPVF9RHCEJIYZQUYM9PBXFEWODSKOMKXKHYSRHM9PVDHQIZKXHSJGLHXZWGIOAHEGFMJOXZPETBBXFBXRWHNVLMXQ9KEVBSXOVRABWLDFEQNHMXGAGXRAXVJL9QRKRGLBQQIJB9IWMENHAQJGRYQKPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU999999999999999999999999999XFGE99999999999999999999999CLJMMWD99999999999A99999999VECNDLC9KX9YJCVWEVSVWQ9YPIATRAVGMBHTAGKMLEYIFOVHPHTRBMWCTLEIQPOHKQAJGN9OCVPDKTDPUSCPPYKCIEEHMARSMMXFSTEYAUBHOZKZJBLIUXUWQPBWTDHJHAOEDBZNGBBTVJLRMVWTVHCKFLIVP99999ZKQRBCTRVNWEJZOVQOJFACQYDBLTLYTNL9RHICEZGMLFRRHZEHHPXYNQXPMORPXOVGGMBPTVQPDB99999XVTQHMCABUCBNNQNFZKRHPEBZA9YEUSCLVJXJBW9GCPYESKEW9OSD9XXVKWAERTILMSELVNYDSOHYVUZO"; string outtx = "COGEFAUCMKPCCPXKSWDIUXRDMXYMLUQIOZGTTLLZXRXBCPETQULHNCFDKPJPKTUHRGZFWAWUBMXRZSDTWGIHDLJYRVN9TLJWWDRWALERYLBSYMGYHSJPO9ZFBFMUSAUSCRUBNKTLNRDMYUZKLQPQDCBNTSZSGYLCEQTVRHNALINLYGGYRUFPZPJPAQBORRNG9VXMUNN9PLEASIYTIMMHQHYBCRGDSGGPBRSDRUJYXQYBDJPXXUEBU9QPLMTAQTTZOLOAQI9HYOHO9XXIWMKBHRCVPLCKUTKGOMMJDIRKBLVOAYWQGFHZRBU9ANNZRPGWFMMJSATKWHXCOLFRPXICO9NNMORXJNJEWLOQBATKJPHEMUOYAWGUZH9VKYBC9VCBNTGGHRSORCEYSLORCYVAE9DBIHZVWMJHUFHPOCNSYLVSWTOUXIHRW9QVQFKOVL9COHEQQNWGRWXXIKSOSNWLDSRWQDFCSHVTPTDLDXADDOEDUANAKBHVVCHMREOMRBBNUIWBKWEBKDUCGGBJICCH9DIMNJHFYFMAELFDTMRGQYBAZHOIERHPOOGMSMHZOWUZLKCETKKGDBWEYXQUSFEAFYJJKKHBNWLVKJFVT9WVPYVEJUZELSCDUWUQYDZDCNDVRMEVQIYKLSVQHQMTR9MU9ABMCBQEUBCPMVEDJMKOEHMYNXVYXNOAITMYGNHORTRFYNJEXDWTMLGPIXQVRCFHCOQXDBXVEGMMOIMCEOKIPLENWWHTIERSTNTHODQDDXUUZCPSUEDBVWYUTZTVGIAYKFZLOXSOVCLHTVESARNLBB9FTKEXSYBNESCEZNBGBILAOLG9CZVCNSEERFKWXWDUSQYRPDSJGCB9VIFEZCZTUYMRWUSKFCZOP9SEMJYJNWLOVLCQGMEMQNIO9LNEEYHJBKXMR9HXSHEHGOVKMFHEGNASYVXITOUCKLWP9CEKSPYIFVRDDM9DONOCSUIOKC9DMGSQHBHYCOSNJSGIYNXPNCFFFSZKDRJOOCL9DSDBXREVNHBIE9WUKCXHADEPPSEKKKBEFJ9AZALBBYDFAXLVIUYIBZOXJCUSIGTUPUFACUDIGOWTVEGWEZYWUOZOXYYAMCCQLHGMPQNLRNODKODTXCIGCDQVWDFVWAAI9ZJJCB9HSNBHOXESFTWPLMZHQRIHCDIFECNVQDRWWIPEIZNURGSYALJIRKMYZGMNEZYBSRWSWNKYWIKMJMQXUZZPJQBOLHAYFGFNJEK9ZAURLVXQUDNSSXFMFFXLLAZJQJMXTRJXLLFHYRVWARVPKGGTUQCCEETQY9HYCKZWWVSQHUKTGQMWXAXJNFJJ9XBJV9JCLGDHZWFTQTEINGGKI99IWMSYCOKTXVONQYXDZKBVWXUI9IWVJKSQLDUPZTRXVLECJEEBW9VDWZBQFOHZSOQULKKQVPRHEYOPRODJAQRB9ZYNMKIHTHQXUDALEYZ9WBMDKYBXTTGEKHXOGORPRDLVOIGTYDJLTTKEBCUSCOUUJJSTSZIEXDPKOILBMZVLXUYRBRUEBF9EUYSSYLQCNBW99XTJRIQHEXAPDTSKKTEQOWKFLNNVXSWQK9MGBWYJABTJXSLJPVWCDEEXXGNOWJLSNMILAJKBMNFRTNHSJ9NSWSBESQNSUKI9AZQJBJXUTWMX9DEFRUNYIXAJAOQTXIKPCLJPNMICXQCGWJFAHNIGSDPVUZKTVBIUHQWAHCGQFVTPJLPDYSKPHD9QVSUZFCNFVKUXARYA9ONFWIFAZRPMDFKNPNAHQZLFGXZCTDUGJQ99PADJ9FWVGKBRFYECDETIQHGDTTGXVRVQCNBPJTDGTMUYZJNBAPFFFMNUVWGXQUQGEQKFZIUEAQDMIFXHQERZYMGEKHXSTMOCKSVIQGKYPFCVHOPDQYHGFDHTMKC9XMNKYZBIOQPVU9GRJIZIOVAOZVFOEINTBHGOXAEDWMSBQJWGJWNKLSJJITMUSJFTDRIUUCGJCTJINQRIQLUPDRSU9OBGWOHUSUGMDVZLMUXSPWUYSDNGQQCYITIKWXWMPVF9RHCEJIYZQUYM9PBXFEWODSKOMKXKHYSRHM9PVDHQIZKXHSJGLHXZWGIOAHEGFMJOXZPETBBXFBXRWHNVLMXQ9KEVBSXOVRABWLDFEQNHMXGAGXRAXVJL9QRKRGLBQQIJB9IWMENHAQJGRYQKPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU999999999999999999999999999XFGE99999999999999999999999CLJMMWD99999999999A99999999VECNDLC9KX9YJCVWEVSVWQ9YPIATRAVGMBHTAGKMLEYIFOVHPHTRBMWCTLEIQPOHKQAJGN9OCVPDKTDPUSCPPYKCIEEHMARSMMXFSTEYAUBHOZKZJBLIUXUWQPBWTDHJHAOEDBZNGBBTVJLRMVWTVHCKFLIVP99999ZKQRBCTRVNWEJZOVQOJFACQYDBLTLYTNL9RHICEZGMLFRRHZEHHPXYNQXPMORPXOVGGMBPTVQPDB99999XVTQHMCABUCBNNQNFZKRHPEBZA9YEUSCLVJXJBW9GCPYESKEW9OSD9XXVKWAERTILMSELVNYDSOHYVUZO"; string trunk = "SCPPYKCIEEHMARSMMXFSTEYAUBHOZKZJBLIUXUWQPBWTDHJHAOEDBZNGBBTVJLRMVWTVHCKFLIVP99999"; string branch = "ZKQRBCTRVNWEJZOVQOJFACQYDBLTLYTNL9RHICEZGMLFRRHZEHHPXYNQXPMORPXOVGGMBPTVQPDB99999"; var intxTrits = Converter.ToTrits(intx);//AddAproveeTransactions(intx, trunk, branch)); var diver = new PowDiver(); await diver.Search(intxTrits, 1, 1); var resultTrytes = Utils.Converter.ToTrytes(intxTrits); }
public async Task <string> Rebroadcast(string trytes, CancellationToken cancellationToken) { var api = CreateIotaClient(); while (true) { try { CancellationTokenSource cts = new CancellationTokenSource(); cancellationToken.Register(() => cts.Cancel()); var toApproveResult = await api.IriApi.GetTransactionsToApprove(9); var toApprove = toApproveResult.Result; var diver = new PowDiver(); cts.CancelAfter(15000); var trunk = toApprove.TrunkTransaction; var branch = toApprove.BranchTransaction; trytes = trytes.SetApproveBranch(trunk); var trytesToSend = await diver.DoPow(trytes, 15, cts.Token); if (cts.IsCancellationRequested) { continue; } await api.IriApi.BroadcastTransactions(trytesToSend); await api.IriApi.StoreTransactions(trytesToSend); var transaction = new TransactionItem(trytesToSend); return(transaction.Hash); } catch (OperationCanceledException) { if (cancellationToken.IsCancellationRequested) { throw; } continue; } } }
public async Task PowTest5() { string intx = "OJJBHEDFNPSXQTTIQAKFUMCHHIONRA9TXOIEKAW9NDUVIPSAAXHGMGLSZHPCCUISXN9JYAOBEFTMSIQFXPCUTYVXBKZKQJISJVULYS9GQCGP9YVTJCARELVGBDCCPPXQD9DUKOILZIAAWS9QBXYFCXZNRUKNKAXZXTQTJPTLGCZIEAJWGPRFKWQZWDLADUMCOSIRKPHNPUFHBSWNOHLJQCWAQKIFZYAZQPAZATTNQRNXCWDBQDR9HI9HPFERDAPFW9LYGDIMBSYGUEPDVBFM9VKEGTTRGCPYEARLTIDRKEBPKIYQFAHBRBGYTIYICYANXUSF9GTNGFETMMUJ9WHMZYKSWJNBZVPSBSIQOWQ9ZAQGFLBBBQLZIFBUTCUPWY9THCMPAHRZBDJIIKESFRYCBVUNISJYXXFLFLOGKNGFWJC9FRGNGAOMXWDZRVONQ9VA9MXEFWUEZDPDKXTDMPOOEHHDYHFRAWKOMOOGLBHDIYCAJPTWTFYMADAYOIHZBSTX9GJKSVWFSSTJUHPFVAKZJHGFKKBVRDKZ9JJHBJQTAQVROBGYLLNRPPJGVTHIZLSVXUPDTYXPUT9EDKNQKXZMSIDFPIESNHHGDRSTWIBFXEEFDXRBBGCQSDRFGXUSFC9ZAZPTESINDAMLHMBQUEQRILJWQZWNFUUWPBACWKIPHFEGWTBMFDCGQSHEKIQMFPMASYSPZURBRFRZPZRLKIRVC9VWH9ECLYNXSJEHSKZRTCAWGQEXLAOGPFALYIMRLEQKZ9IOIDYTCCKPQYIG9FPMJGOOKKCFDCMWOMFCDYJCLUFQYGO9BFC9WUYUSUANUP9GXFOYRCIDBRSMZBCFQYZ9PUWMJOT9SWJCDAFAMHNNJ9LUBCCRZXEDGCGDVJJ9UTRUZTXRJVUCBEMKDMFLOIRBTCQDRTPCGXCMRIMUXNIQRFLMMNIPN9CNXDCBKLOQEJCYOYXUVJNSEPMBIUSZYRMTPEVLLPZVEQKRGKYNALWXVDAFSZTJCNSBNQBZPZNZMHFQADFMFQTRYPOFALPEMHNXZMZSNDKYIRAQQT9JAVBLARUJHBWVIGOURVGTJRPSSTNQRGMYKPPKBZJOKIJBYHM9NWXBEQGSLQNNXYGQCDJHPYQNWFQYRJINEEAEGSXOOWBN9REQCRMBQRQ99Z9IDCQVJBMLLOSVDPLOI9SXVLSSSMX9MFZYYHDMNUVWEFBJOABEDBNZDCUBBEWPEGGDKGIIZHTMCI9NNIQEDLHI99FI9TOINVMJA9VXDSTBFEABUZYD9SYIYTHYERCDPLJE9FSCXPLIEIZRSNYTCFJMRQDUANDXUHTQAHQMB9EZDLUT9J9VTDUIKKXIZVMAASHCLCEIYVV9FNQYTRGMTUIMVOEMKMDFJBIHLJYPZMWEAXXJHHXIJM9PHRYZWLPQIMNRNBVWRWLBUTSHKOH9FTX9SHFDFOTIFLUXNCFREBXXSBVOVHCHXZUYPLHMH9RXABENBOQWOIABETMQQRRLNGSPJZNHWOGETRCOO9CASGVCPERIDXJOGJHVPPIOGITOGVVKEXJWHYVB9YXHNCEQPVF9GSMFWRFHE9SLLLGKLRUHDFUUUBTGQQKVHUMAGPFCCTRZZVRVHIMUNYVUWGHOWYPVZTWQPXUCXCQAQULATLQEXXAYRLBUZJ9QIYZLQUCRBHT9BERHDSLORBCJSBMAFU9QDFLSFOLCKRQSIVZENFHKLQOKBGZN99WGJYUROTJTQIBKW9FTGHNFOCWDBRYADGIKNFG9VGVO9TQAOAZAUOGLRTEFPSMAEAA9ILFR9KXSYZAETWITMKISXGCNDSBJZM9XGJWDGHHPCFQZRXCRPYNSWOBSCDUQ9KZCZFXHIFKKXRBSACY9QNNLKBPPFIXTHPETTXWXKBDNXGLXAUVOKU9ZGSBLFT9CSLIHVMBCMHWESTZKSNEYUGVEBWYPGSLNUNIZZ9LNQPJLHUW9FFKANBHDK99VUAIBQYGMEIRQRTHFAOEGSUPKARBECTKIUUVULQDIPAMTPRGGPZOZKHL9KESFURHWRJSBGZWRNXRVFKRHYWP9YODAFHBYCFUWDPHAZFY9YPXZL9APWTNZICSVXYWLASZORYURRZRUOVYO9HEUKNTVUZS9GHWMGUYC9KGCLWUOWXALFRIKJJYNAUROWWOOONKDBVAEICANMHFUOPWKPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU999999999999999999999999999NFIE99999999999999999999999OYURNXD99999999999A99999999VYOKPB9FTWLUHOJ9SDDGJTQXLQFNW9OUSHAJQBZGIE9YKHMOVBCOBEZEERDL9TECGYXMMZBLN9YCLFQ9MBLODDZEPD9NWLVQIFPHQFMFVDCCQUULAMNUHTCUNMOAZIWZWPPN9EHT9XEKQAFVMUHMNWDFK9WGE99999WBQTVAX9SRKGDAZHPXNPUERAUKSETFYM9ILJWQMSAADIFX9HQCMLTQMOSQU9NCZRTPJPZSFVNOXS99999SUYWDZNCNRVESKDFICEKSDX99JKRFJUASSZ9MGRHIWQUTFQVLENLVRRCGZHRQGWYSITMJLETHYVDTEZQW"; string outtx = "OJJBHEDFNPSXQTTIQAKFUMCHHIONRA9TXOIEKAW9NDUVIPSAAXHGMGLSZHPCCUISXN9JYAOBEFTMSIQFXPCUTYVXBKZKQJISJVULYS9GQCGP9YVTJCARELVGBDCCPPXQD9DUKOILZIAAWS9QBXYFCXZNRUKNKAXZXTQTJPTLGCZIEAJWGPRFKWQZWDLADUMCOSIRKPHNPUFHBSWNOHLJQCWAQKIFZYAZQPAZATTNQRNXCWDBQDR9HI9HPFERDAPFW9LYGDIMBSYGUEPDVBFM9VKEGTTRGCPYEARLTIDRKEBPKIYQFAHBRBGYTIYICYANXUSF9GTNGFETMMUJ9WHMZYKSWJNBZVPSBSIQOWQ9ZAQGFLBBBQLZIFBUTCUPWY9THCMPAHRZBDJIIKESFRYCBVUNISJYXXFLFLOGKNGFWJC9FRGNGAOMXWDZRVONQ9VA9MXEFWUEZDPDKXTDMPOOEHHDYHFRAWKOMOOGLBHDIYCAJPTWTFYMADAYOIHZBSTX9GJKSVWFSSTJUHPFVAKZJHGFKKBVRDKZ9JJHBJQTAQVROBGYLLNRPPJGVTHIZLSVXUPDTYXPUT9EDKNQKXZMSIDFPIESNHHGDRSTWIBFXEEFDXRBBGCQSDRFGXUSFC9ZAZPTESINDAMLHMBQUEQRILJWQZWNFUUWPBACWKIPHFEGWTBMFDCGQSHEKIQMFPMASYSPZURBRFRZPZRLKIRVC9VWH9ECLYNXSJEHSKZRTCAWGQEXLAOGPFALYIMRLEQKZ9IOIDYTCCKPQYIG9FPMJGOOKKCFDCMWOMFCDYJCLUFQYGO9BFC9WUYUSUANUP9GXFOYRCIDBRSMZBCFQYZ9PUWMJOT9SWJCDAFAMHNNJ9LUBCCRZXEDGCGDVJJ9UTRUZTXRJVUCBEMKDMFLOIRBTCQDRTPCGXCMRIMUXNIQRFLMMNIPN9CNXDCBKLOQEJCYOYXUVJNSEPMBIUSZYRMTPEVLLPZVEQKRGKYNALWXVDAFSZTJCNSBNQBZPZNZMHFQADFMFQTRYPOFALPEMHNXZMZSNDKYIRAQQT9JAVBLARUJHBWVIGOURVGTJRPSSTNQRGMYKPPKBZJOKIJBYHM9NWXBEQGSLQNNXYGQCDJHPYQNWFQYRJINEEAEGSXOOWBN9REQCRMBQRQ99Z9IDCQVJBMLLOSVDPLOI9SXVLSSSMX9MFZYYHDMNUVWEFBJOABEDBNZDCUBBEWPEGGDKGIIZHTMCI9NNIQEDLHI99FI9TOINVMJA9VXDSTBFEABUZYD9SYIYTHYERCDPLJE9FSCXPLIEIZRSNYTCFJMRQDUANDXUHTQAHQMB9EZDLUT9J9VTDUIKKXIZVMAASHCLCEIYVV9FNQYTRGMTUIMVOEMKMDFJBIHLJYPZMWEAXXJHHXIJM9PHRYZWLPQIMNRNBVWRWLBUTSHKOH9FTX9SHFDFOTIFLUXNCFREBXXSBVOVHCHXZUYPLHMH9RXABENBOQWOIABETMQQRRLNGSPJZNHWOGETRCOO9CASGVCPERIDXJOGJHVPPIOGITOGVVKEXJWHYVB9YXHNCEQPVF9GSMFWRFHE9SLLLGKLRUHDFUUUBTGQQKVHUMAGPFCCTRZZVRVHIMUNYVUWGHOWYPVZTWQPXUCXCQAQULATLQEXXAYRLBUZJ9QIYZLQUCRBHT9BERHDSLORBCJSBMAFU9QDFLSFOLCKRQSIVZENFHKLQOKBGZN99WGJYUROTJTQIBKW9FTGHNFOCWDBRYADGIKNFG9VGVO9TQAOAZAUOGLRTEFPSMAEAA9ILFR9KXSYZAETWITMKISXGCNDSBJZM9XGJWDGHHPCFQZRXCRPYNSWOBSCDUQ9KZCZFXHIFKKXRBSACY9QNNLKBPPFIXTHPETTXWXKBDNXGLXAUVOKU9ZGSBLFT9CSLIHVMBCMHWESTZKSNEYUGVEBWYPGSLNUNIZZ9LNQPJLHUW9FFKANBHDK99VUAIBQYGMEIRQRTHFAOEGSUPKARBECTKIUUVULQDIPAMTPRGGPZOZKHL9KESFURHWRJSBGZWRNXRVFKRHYWP9YODAFHBYCFUWDPHAZFY9YPXZL9APWTNZICSVXYWLASZORYURRZRUOVYO9HEUKNTVUZS9GHWMGUYC9KGCLWUOWXALFRIKJJYNAUROWWOOONKDBVAEICANMHFUOPWKPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU999999999999999999999999999NFIE99999999999999999999999OYURNXD99999999999A99999999VYOKPB9FTWLUHOJ9SDDGJTQXLQFNW9OUSHAJQBZGIE9YKHMOVBCOBEZEERDL9TECGYXMMZBLN9YCLFQ9MBLODDZEPD9NWLVQIFPHQFMFVDCCQUULAMNUHTCUNMOAZIWZWPPN9EHT9XEKQAFVMUHMNWDFK9WGE99999WBQTVAX9SRKGDAZHPXNPUERAUKSETFYM9ILJWQMSAADIFX9HQCMLTQMOSQU9NCZRTPJPZSFVNOXS99999SUYWDZNCNRVESKDFICEKSDX99JKRFJUASSZ9MGRHIWQUTFQVLENLVRRCGZHRQGWYSITMJLETHYVDTEZQW"; string trunk = "BLODDZEPD9NWLVQIFPHQFMFVDCCQUULAMNUHTCUNMOAZIWZWPPN9EHT9XEKQAFVMUHMNWDFK9WGE99999"; string branch = "WBQTVAX9SRKGDAZHPXNPUERAUKSETFYM9ILJWQMSAADIFX9HQCMLTQMOSQU9NCZRTPJPZSFVNOXS99999"; var intxTrits = Library.Utils.Converter.ToTrits(intx);//AddAproveeTransactions(intx, trunk, branch)); var diver = new PowDiver(); await diver.search(intxTrits, 15, 1); var resultTrytes = Utils.Converter.ToTrytes(intxTrits); //Assert.AreEqual(intx, resultTrytes); }
public async Task PowTest4() { string intx = "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999KAJIVALKCPPKDD9VB9JBOXDXREVBXYWKVBFEWPTLYZXWIOUKTRKNCZIQM9CDRFDPIQDVXGNWMFURSRFRW999999999999999999999999999999999999999999999999999999VGURNXD99999999999999999999QEQAOOALNU9LLDYFNOYPKTCFPPNRFLFGJ9DPSESTYZ9CWG9TKFFFWRHVPOZSWSFJCAEGFJZSX9JINUXTS9DZFMVYCUCNZEGBKHWDGAEMSZIRCUCFUQZYYPZUBSEQQPQDYEMIWIATPBXF9EHCGOJBNQMXJIASX99999DWDRGMMCABHLQU9WSIAZJZLOMFRHEIUMRBVVSKRYRCNT9ZS9XVPQYQLH9PLMWISNBMPRIILVLIPM99999DOZ9GKBREVD9DAZHOAU9QXWWNEVBRJEYFZWDBPHRGQDJZOILRYLAFEABELMYASWGYPWYYIYKPHG9OFETJ"; string outtx = "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999KAJIVALKCPPKDD9VB9JBOXDXREVBXYWKVBFEWPTLYZXWIOUKTRKNCZIQM9CDRFDPIQDVXGNWMFURSRFRW999999999999999999999999999999999999999999999999999999VGURNXD99999999999999999999QEQAOOALNU9LLDYFNOYPKTCFPPNRFLFGJ9DPSESTYZ9CWG9TKFFFWRHVPOZSWSFJCAEGFJZSX9JINUXTS9DZFMVYCUCNZEGBKHWDGAEMSZIRCUCFUQZYYPZUBSEQQPQDYEMIWIATPBXF9EHCGOJBNQMXJIASX99999DWDRGMMCABHLQU9WSIAZJZLOMFRHEIUMRBVVSKRYRCNT9ZS9XVPQYQLH9PLMWISNBMPRIILVLIPM99999DOZ9GKBREVD9DAZHOAU9QXWWNEVBRJEYFZWDBPHRGQDJZOILRYLAFEABELMYASWGYPWYYIYKPHG9OFETJ"; string trunk = "9DZFMVYCUCNZEGBKHWDGAEMSZIRCUCFUQZYYPZUBSEQQPQDYEMIWIATPBXF9EHCGOJBNQMXJIASX99999"; string branch = "DWDRGMMCABHLQU9WSIAZJZLOMFRHEIUMRBVVSKRYRCNT9ZS9XVPQYQLH9PLMWISNBMPRIILVLIPM99999"; var intxTrits = Library.Utils.Converter.ToTrits(intx);//AddAproveeTransactions(intx, trunk, branch)); var diver = new PowDiver(); await diver.search(intxTrits, 15, 1); var resultTrytes = Utils.Converter.ToTrytes(intxTrits); Assert.AreEqual(intx, resultTrytes); }
public void PowTest2() { string intx = "9FLYWPOTEKSCYNJFXIORQOSTSCQNCVXNNIIKCPAUQ99LUIXZGUOXMJPALRCRCMVLZF9GRTYFJDUOOFSSGXBSEWIJWYCJWAIONLYCUZWAWCLLEK9TNHATRTOGE9BCUPKVQVKWBTPFFORIKNRVZQJVROWUMJ9AU9YLUUIDNTWDHXL9HSBMWGTFV9MTSTWRAQXYZRUCVTGWFKCBBAGFOYHZEDWUAMKVLZUIN9QQNPQEKRVNHPFEMCCA99GOQOOPHTYQDLPEFOISGIS9MJEEIWNFINBQPSKD9MRPHRYQGSRHJLIWUCUGXNZMVRMOUYONAISHOUMKTZM9LSNQMRXVYQPSQQXUGKYUSXSQOJOFRXMTUADZA9VHYGGJTKDMHRVIRZFSZAMNBOEIB9ELATY9ZG9WDSXY9OLTHRAKZUPGGQ9DK9LMMZPCASURAMKNQLIFBWJDMYULHMIRVUIKBLZSNMHXIKGVVUDJTJRYWEBVKKGXLHMDITFW9HRABHQZOJHCMRGNXSUVRLKUL9FTDRHQTJUQJSMSMVCVDVYZDALAKPQOAMEQKVEWQCYYKLVXCIEJLSDHONARSUDJECITQCHWKHJZYVFLCGMOUNTRQAWAGPKPTHPELBJXFFDROXUXQOXNYEXGJZBBZCBKYZ9O9GWCSXLZCLFPBPFSFFQUUMAGOMXOAWLEBPDEPDLU9ZENHFVQURAYVLFEFVSGPHKNYMWDZUOKTUUDIBZBEKI9SGJPZGUMGEBXUKVKD9SZISZJZSSEVAM9DXAVRVMXHXZ9LVQQZDAVPOPINZRRQZIBA9NLETMHXBQINWD9BCRASRBCKSSXUNEJPRKPETMQGNZFEGNMXUSQEIRKIVLEXCNNQVQFTVNTFEVYOQKBD9B9YRGFTIAHOMBLJMSHUNCKVGVERLXJWYJ9GYNASJXTQSZBAFGLUVVZMSCOGPKRJTINBAKCHOLRGWFY9GHMYBOXLXKNTIPBOKWTFUIBIIUKAZWMVGJBZVHGUBBTIKHQM9FMIDMMPOXFEZPSPNOHRWUXNWRNFRHQURHDODWEHRYSAKOBGWFZR9HXGNGVQPXRGFVTFBIQF9LYUN9RLZC9ADYBSQFKGSAGHAWMSNRYHMLMATSTEOYEMUIMQHSSNKT9RAQNNENKANHENCTSNMHNCKIIBGCAXHYAVSHJIZQVTSEPTILQDVXHBHTSVNDYEQOFPJSKWJKOGRGMWZMM9ZH9IEEQMJURFXVUDPHWWLJLKNOYDQIUBMWYQACLVIIIDHYRXJSR9YAFUAXC9DLUSAZYCTUVR9PPNKVYIRFQQBSVYLMVBJYQLHZRJTCJPSFDKZMGOWCWRYOKFPFWJWUCHG9WRHRDZKNNJQFZRNGMTLPXAMSR9TRRSREPBPESPBLLDQLAYWUGLXMU9BFFHXXKYWGMJCH9FSXRYQBLIXGHIZPW9VMGFDHKU9XKW9EAKKNWY9SXYEQXHNWSRLVRWOXCQTLUFQWFPBPHDYMRDZAOG9XRFZMFYFQJGOOERVQHQ9QTROGHIZTPSDAGQAJBXKWUJEAYWZHIOPYWXWTFKRZABOSESMNPBNPKBBMEOSMIKAJGDHGKXXLVNVYCHWALROEVMFVWT9YVVLGUATQJXUPIXS9FGNFRJGUHHBLGMUOUMCMIRKPRIOQTJ9RJHASGYAP9XRYWFXBBQMUWLTTVBGJDKZKIZCXBBYMGADZNXPJACDF9GBNB9DVVQRO9IXBXIWSPMKX9UTIRPNIBMUP9JPIRHPAFUNQGYOGLAGF9LQR9FNZXPHLHIXABQFSWTNWFSQAYM9U9VOKKGFVORGIWUHQOZRBG9CVEUGPJGUJJOL9IL9XNPMHNPNUIMPZCYTKDLQYJCNUGEOBWSRJFIJ9AUXGMJ9BUMPQOUZTWACPZTVF9WQSVBHBIGIWFITXHBUHBFEOYJEVGPLFIVVNQWPDIGTCIUHBRBBQISIMXYTPPDCW9OCNIGOKPQRPGGGFZOEKAMOABLSBKEEXXPVXKAWKPZLKBOQRGXNA9ZPRETFPYTMJYYYTAINHAL9EINMRUARVKAMSIHSBORAUZFELNMOVNNMLNGQSW9ZHYTVVHFJPYNVBMRJ9IWHCL9RPQTIJFYYJLLZPZY9CNIRFAXUMGVXZNSWZVQCAHFCLIXCTCUOQTTJMXDWSXJYOBFLQHWBERQCDPJTKFAZBEEEDFXNAKPWCHICGJZXKE9GSUDXZYUAPLHAKAHYHDXNPHENTERYMMBQOPSQIDENXKLKCEYCPVTZQLEEJVYJZV9BWU9999999999999999999999999999QGE99999999999999999999999XVCLMWD99999999999A99999999LBIGONFZ9HYFOKRGVATTEWCJOROZQOZURCIUSCRLOLQVPJNJQFXSVWVGYVTSPQSJLFQIGQOFWJ9RJYKIRI9MZQJ9ASULCYNCDGCITNOZUYNCEPBQAJZLVKJQSWJPVKKSOKNFZVWBBOJBNZQGL9F9ZRPBYAKLU99999KGUGQF9TKLRURJROCZKFZGPJDGHUDBJIIZARATGKPKWDCQOLHVLFR9DNAQF9L9F9KQFUBXSC9XO999999BID9TOBGUBEC9LOQIAZEDTVAZHZBAVLPIKXTAFCLAHMDCM9TZLYACQRAXAJUKYR9BFLXDMGBUWXIMHLQI"; string outtx = "MESSAGETEST9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999D9ENBDIUJWODNQQOYCDDYVFCDWOTQJEMDYZAQZNAPCILJ9AIBHCNIHVDCVPXSTP9RTZQYWR9GSAHBSA9Z999999999999999999999999999TAGTEST99999999999999999999EHVPPHIHE999999999999999999QEKKKZPWFOJYHIPCKRNUK9UICCQKSMQGLZLQDVLSILQIL9JSLWMD9AMCFKOQJCW9QIONASFWMLIRDXGHMNASWDKTSEESHORMTPVPEODPYSKHRTXRSIDTDVBNVOOMFLITWTTPUQCWFXRAFHFZOAVAPTBEMIGOT99999TRYBRCGMBVPYQNGQFJTOXVFKIGZGKDBBGLCISWOCKKDJMAWZAYQVWKJGXXIJQDWSLMHFZIUYRWQO99999DPKGJAHTWSZUCCSVUJZIFGERIGQKZTIYGLTRTKHPWIQBNAALXIQHFEBCOOVHQKLHNSGPPEUCKJJNHWIBK"; string trunk = "NASWDKTSEESHORMTPVPEODPYSKHRTXRSIDTDVBNVOOMFLITWTTPUQCWFXRAFHFZOAVAPTBEMIGOT99999"; string branch = "TRYBRCGMBVPYQNGQFJTOXVFKIGZGKDBBGLCISWOCKKDJMAWZAYQVWKJGXXIJQDWSLMHFZIUYRWQO99999"; var intxTrits = Converter.ToTrits(intx);//AddAproveeTransactions(intx, trunk, branch)); var diver = new PowDiver(); diver.Search(intxTrits, 15, 1).Wait(); var resultTrytes = Utils.Converter.ToTrytes(intxTrits); Assert.AreEqual(intx, resultTrytes); }
public async Task SendVeryEmptyTransactionTest() { var api = CreateIotaClient(); var emptyAddress = IotaUtils.GenerateRandomTrytes(81); // "".Pad(81); var transfer = new TransferItem() { Address = emptyAddress, Value = 0, Message = null, Tag = null }; while (true) { try { CancellationTokenSource cts = new CancellationTokenSource(); var transactions = transfer.CreateTransactions(); var trytesToPow = transactions.GetTrytes().Single(); var toApproveResult = await api.IriApi.GetTransactionsToApprove(9); var toApprove = toApproveResult.Result; var diver = new PowDiver(); //cts.CancelAfter(15000); var trunk = toApprove.TrunkTransaction; var branch = toApprove.BranchTransaction; var trytesToSend = await diver.DoPow(trytesToPow.SetApproveTransactions(trunk, branch), 15, cts.Token); await api.IriApi.BroadcastTransactions(trytesToSend); await api.IriApi.StoreTransactions(trytesToSend); var transaction = new TransactionItem(trytesToSend); } catch (OperationCanceledException) { continue; } } }
public async Task PowTest() { string intx = "MESSAGETEST9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999D9ENBDIUJWODNQQOYCDDYVFCDWOTQJEMDYZAQZNAPCILJ9AIBHCNIHVDCVPXSTP9RTZQYWR9GSAHBSA9Z999999999999999999999999999TAGTEST99999999999999999999EHVPPHIHE999999999999999999QEKKKZPWFOJYHIPCKRNUK9UICCQKSMQGLZLQDVLSILQIL9JSLWMD9AMCFKOQJCW9QIONASFWMLIRDXGHM999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"; string outtx = "MESSAGETEST9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999D9ENBDIUJWODNQQOYCDDYVFCDWOTQJEMDYZAQZNAPCILJ9AIBHCNIHVDCVPXSTP9RTZQYWR9GSAHBSA9Z999999999999999999999999999TAGTEST99999999999999999999EHVPPHIHE999999999999999999QEKKKZPWFOJYHIPCKRNUK9UICCQKSMQGLZLQDVLSILQIL9JSLWMD9AMCFKOQJCW9QIONASFWMLIRDXGHMNASWDKTSEESHORMTPVPEODPYSKHRTXRSIDTDVBNVOOMFLITWTTPUQCWFXRAFHFZOAVAPTBEMIGOT99999TRYBRCGMBVPYQNGQFJTOXVFKIGZGKDBBGLCISWOCKKDJMAWZAYQVWKJGXXIJQDWSLMHFZIUYRWQO99999DPKGJAHTWSZUCCSVUJZIFGERIGQKZTIYGLTRTKHPWIQBNAALXIQHFEBCOOVHQKLHNSGPPEUCKJJNHWIBK"; string trunk = "NASWDKTSEESHORMTPVPEODPYSKHRTXRSIDTDVBNVOOMFLITWTTPUQCWFXRAFHFZOAVAPTBEMIGOT99999"; string branch = "TRYBRCGMBVPYQNGQFJTOXVFKIGZGKDBBGLCISWOCKKDJMAWZAYQVWKJGXXIJQDWSLMHFZIUYRWQO99999"; var intxTrits = Library.Utils.Converter.ToTrits(AddAproveeTransactions(intx, trunk, branch)); var diver = new PowDiver(); await diver.search(intxTrits, 15, 1); var resultTrytes = Utils.Converter.ToTrytes(intxTrits); Assert.Equals(outtx, resultTrytes); }
public async Task SendEmptyTransferWithPowTest() { var api = CreateIotaClient(); var address = await api.GetAddress(TestSeed2, 20); var transfer = new TransferItem() { Address = address.Address, Value = 0, Message = "THEMESSAGETEST", Tag = "THETAGTEST" }; while (true) { try { Console.WriteLine("Do pow and send"); CancellationTokenSource cts = new CancellationTokenSource(); var transactions = transfer.CreateTransactions(); var trytesToPow = transactions.GetTrytes().Single(); var toApproveResult = await api.IriApi.GetTransactionsToApprove(9); var toApprove = toApproveResult.Result; var diver = new PowDiver(); cts.CancelAfter(15000); // var trytesToSend = await diver.DoPow(trytesToPow.SetApproveTransactions(toApprove.TrunkTransaction, toApprove.BranchTransaction), 15, cts.Token); //Thread.Sleep(200000); await api.IriApi.BroadcastTransactions(trytesToSend); await api.IriApi.StoreTransactions(trytesToSend); var transaction = new TransactionItem(trytesToSend); break; } catch (OperationCanceledException) { continue; } } }
public static async Task <string[]> DoPow(this string[] transactionsTrytes, string trunkTransaction, string branchTransaction, int minWeightMagnitude, int numberOfThreads, CancellationToken cancellationToken) { var trunk = trunkTransaction; var branch = branchTransaction; // Recalculate Bundles // NOT sure i should do this but hey let's check it in a but. var trytes = transactionsTrytes;// ReCalculateAndSetBundles(transactionsTrytes).ToArray(); List <string> resultTrytes = new List <string>(); for (int i = 0; i < trytes.Length; i++) { if (i == 0) { branch = branchTransaction; } else { branch = trunkTransaction; } var tryte = trytes[i]; tryte = tryte.SetApproveTransactions(trunk, branch); var diver = new PowDiver(); var tryteWithNonce = await diver.DoPow(tryte, minWeightMagnitude, numberOfThreads, cancellationToken); //var diver = new PearlDiver(); //var tryteWithNonce = diver.DoPow(tryte, minWeightMagnitude); var transaction = new TransactionItem(tryteWithNonce); trunk = transaction.Hash; resultTrytes.Add(tryteWithNonce); } return(resultTrytes.ToArray()); }