Esempio n. 1
0
        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");
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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}");
        }
Esempio n. 5
0
        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;
                }
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 13
0
        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;
                }
            }
        }
Esempio n. 14
0
        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());
        }