Dero Web Wallet derosuite. This repo contains changes required for webwallet. With this changes any Dero daemon can become web wallet. All changes are related to daemon rpc server and wallet to make it light and faster.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
27KB

  1. // Copyright 2017-2018 DERO Project. All rights reserved.
  2. // Use of this source code in any form is governed by RESEARCH license.
  3. // license can be found in the LICENSE file.
  4. // GPG: 0F39 E425 8C65 3947 702A 8234 08B2 0360 A03A 9DE8
  5. //
  6. //
  7. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
  8. // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  9. // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
  10. // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  11. // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  12. // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  13. // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  14. // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  15. // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  16. package proof
  17. import "testing"
  18. // this function will prove detect and decode output amount for the tx
  19. func Test_Prove(t *testing.T) {
  20. var address = "dERoiVavtPjhWkdEPp17RJLXVoHkr2ucMdEbgGgpskhLb33732LBifWMCZhPga3EcjXoYqfM9jRv3W3bnWUSpdmK5Jur1PhN6P"
  21. var tx_secret_key = "da7bfcb22cfbffe7b3991411e5b5f58be141cfa61e55afc5a0ff16f378a79d05"
  22. var tx_hex = "020001020005b209f641b156e82ba5c201f44cdb001f42b06a93079c44d3373d00c6d2690b61db93da34312a85619fa74b020002541e74edba84c61e61c90ac997e0c11498d370d81b1fb17a2baeecdfec3bd4480002ac152484a374b481375fb851099e52600a1dc993b5d5c66f9ecf7757bfc58b3f210134108680a8bce36339a0cdba2841ef49bc7144a7bc2e4a41a1c6ab60d293152c02e8f3d5e83fdc4001309e8e5dc5041b271497034b2091979cfddc681b4fd12c626701b866280fdcd7129ebecbedf97181868064e885956541def514db3986b76ee6d22dac0c84b913bbcad93701526d2f10e216bbc2830fc134a98e0d1566d432bc2f14810fda523cbb78d6c14cb55767523834d3a0ceee6fe598eda0d5b4df670d092d4e0cf29385a349ac1fa2632fd296b318437f10e44026ec56cb0945e2d59fb98ba9061b3f8acf8216cbad2640a51eff4397054480d66618653c62605e4b2bfd079a75745f8f4613e13e61abe54e5c0ced221c1df5d004907d27e2650cc2ec3be3189c526bb539db50d36ac77aa77d46682ec21b0163b0611d2d3f3d3303415eda5a010f11b4b9352c269ed7a73ee06ec701c775d1b1105f0c6e29066e69180aa8f007be84cad900e4f799066923d2d716fe66818932d4682265f0ff6965fa9fdbbd0712392cbf2fb919d7e6db96248c7ec763b6c0a8caaaae6053bcb198c28b391a0cfb099bc5d1a4cdcd0a4ebfad3035fed5fc8bcacf46670e46838831bdd803a801d30b7131bbdd2e21174ef6f991c53a5eb17ad6b993a5e22f727b00a91c07e20790d75468d06b08e1be1a169ed2dc28f33ba673890bed152dc451bfa75f8565026e56fd13088b091b6fa117a2a8fc3007fa94408725ff6fdc31b66277f202f00409410ec8b6aebbcd83504f757bccaa095c943b84bb136a548040bd520cf46c0cb2c89e2429dda03d309532e9c7d03d4af5431f08b44687918b4505304b14bb0a9d81522d824e4bec8bd8519d036336b34211774b3baed171af7dc2961ba0880b1b8cf607037617ae013ce9d65d19a7047353f3a912f5e04c006db950aa80900444758892a0c4c17b24914caffd63862cd7ac28daf51f286ebf764063f758e10238ddb2f41e891d4f559ceec11fba76422d54b4d68373220237d1586ddd90be0877689c657a7a49a146b29e27bafcad5d06a20f3374c5b65f9af29fc73b0dc20617d30b00f800ab3abc8df6f15cd0cc463149efabbfb8385dbfe88866a626160cd65d2b3de2c338aba310e995d313605d59284302cdf96957fe6e8017ce19030d672ccdda98dd45783e2dd1383d3b058f4e05c9d51e1259b02bea1da97e9b380251e90ed35a77277123d6f7fe844488808dc52b7a221a788f498af0fe8205770ab4c36421a11d3b8da62d5386a68444372cb53f52f14de3241eaee430ba139f0964d625a9c7bf89d074b0e683a14f97ee1766a963b613beae02535baf1a75fb069ad227a5f9d8d41cc6cf84c32e56455e67bccafd7491e0177e408b025fd64302aea02ec49eaab1cfe70dc64b05eadc0a370097ef5287f1fc3da6ae6c71f4c80274bda14a10db9d458f0163d09b09f3d9014ee5b253f47a9d49fefd03ce6d4208cfb08c508364d0afdff44a8f18e079d8fe4c24536565755caaa454dfa98e610ad2ff1c3f4c31f401e7f245fb04142974d0f3bd9bc7687018b6deb89554985903e7f011aa35da5847f69bfe75ad5b5e5538fba70211d4ca98c65f1d1d126be008253fb799f4e480c2e77fdec5ee0f7b5d77375dc2e7dbe9946a8199ccb4be0b011881c5b274dbe9cc0cadc15856753d9b30145c525d2063bfe29a9a29b30a3b0bfb1eb3ed4a9790a338a0ba547ab2fe05de549900a29a35b069265d62e467fc0343bb9e3e79cba52e88d39c6be3e8adf79beb4591bf519f2260bbe3da1bcbda04cf1448cb6db9b420b52aa2208439781df25355f155b91670ff28ac9895c6cf0b36e2ccf226d207411f5555941f60fe943977c09985a60390a3d9a57620732103bc057a93311cebb139f9bbb5f5e483990498183d8178918373c8d8a8be00c005e488739699d72113134e2ba6222b7592107f1d1befc346b06c1eaf8c227cc10d11a8dd4ecbf26fab04145886d06b79b697fb150aa7f65538049d46b4a3eb24097dbe8b8782f66954c2c40ce24fd248f6feb6167ae82d6fc4d71e239929fe070b914d400a1ef2e3157068f730da5cfd49fca5542483a399daf2ec23f3b9a7630753b6b3d477b178a2f70c40b7647b6844508dcebf8c9600ca883d4ae4baf75c03fd72c4c1a2acc9a8a171be79556cd6e1c4ec50eba3c7530807592466363124018b28d6d0c222cd5d5a74fb9d7b7f0b888b5f717b29e5908baaad234e116d330ac62f0a3ddaa2b5ccc3dd1a7930c69a986d94e4b29b808af0dd38490477ece70d3b1c1a0199a67a450c34ab4fa2914a65c7da9fb2980c2b9491ad01d50cdb790c027d293eac66898623f86728c0d4ca43d6de9b94fcb3d3c4393e699c0ba808049f264b8466c94be6a3359a799f701b690731c27b18647af205e36f5c24b79403753ccb7abc1a1da6c7f392e6aa971205197c5868f096f7c6d4bf30c9f046fb0504b8017826fda4c59ef3e2abb5fe86084f252b1b0cff643394dfb8e6339d9809e708c56a778b7f0b0043a308d9063fa0dc8887e1ad3aab919375280143740e03127117d58d53d6da0acf1f93f7690994d1c743917e18c618d955bc9462534a0b488d121ffcd91182522a1d3b01437155b78b8bfe061ff675d1d344fe820c0109429445f2027cd7db2d77797dc683e3945f399ef8ef5d70adb6f6a9227f80150ebf23c2029fdf560767805d6043023e59e255967f1cd477fff9b9575a2a64250afb4f052b00776325c3b3fc77220d74ec879cad1ff4674ad69419fcd045e29307e3ccbc4a801e9ca3d9e2eb2fc11c180134c2d094eeb344f49a5097dcc50a55068461d2319aa5d837d625ba6b6ff68f0c07c449ade5969db9d20723f8dd7c09049d3eb7f98e8b460dc7122e2ba370051d20bd0c31b60f4208e6f909cf25e02a01c68eb2393ce8905f126079bab1f952d4ddb88344b656c2cf7a84954311019c0815e34e41006b539ff02d99b899db26cb811167ab7a5959f7fccb9da6a9af8f07f1862a5907bcba11f430681dfc351d2248f59b15b0ef6c9b8a47bf82e3c25c0f8a08d983c4e700d849c18ce6678d51a8514956eda415d6e9a0f6d8b70936a60e0b379b0e9ef1400dda5e04f86921f570a828e95486c5f4d66658a167da88c002af81e2756d018683dbe167e3b6105660f4c0cb3057a5c7905332444f877e5504edfe92bff7e8487dec91920f4c4ba7e9aefc22a659ceaa73c52fcf5bf5c3d90d6e08c5cd55ae11d847d8dea95d382cc941786ef717a77401dba1945a5fc8db0206103a0a8d4ed25a5786c16412adf37ccf7f49c73d9546c81872ccee10427d018910567e2772267f59b32d9d3118480795f1155892dae919e8fa90e53809ec082531c884d1971e9464e8c0c67211b0a881b13fa458d8cdf71a77b0fb0927470acba70ae524a0c9fcee8b3c37f1f40a4d0df02f8ae77520a79f5418f3ad198609623aee5b802ba1011447744dc13cc08e9312c73e5c3cc95d63db2a3f1c8b8705991a24fb04697b9bdb7a237bc68837f7da37e85543b836eb4c0b8bfcb56a560b5dc5aa145f2113290ab3412bdf0f5dc0ee24cb914edcebe43bb6b3a61de54a0308eb14a42fee47208ec87488487f54d6e604aa36d662bff42195dfe1f50fb90260dad6c3ac209b8dd80dcbf33bdd56467a67a30b073e18186575dd94eb230a0afd87097b61408b9b9e4eafda9c9f1d537cb63439cb2e8654ebe856127346f80d97692d64cd516e491e070b0b374256333f11f1c0db6dd8ca140c1a9f71870402e4b1681320f7b3d04daa5b0b4669f17cced9e87d03ce043a328e22673b3658006e59d78e6588e81b45750530a759057fb3d9bd045ddd2ba5ada5fef0380e720f9e7fbd89a3b20ad99b54784c422a46a12cc5c884a1c028efef27f23c4dda850ad96e060019819289e2d5b2d032d0c33200ebc781406bbc5dce4b5052a27efc08914178f1a8ebab4cf30dea3940e192ed92549aebcaaf942a043c09ff347a900e3cbf5e8b39d4d3869bc37537c43608e0dcda0a96743981caf59d6ebdd9fdcd0bcfb4fc872303a707c77661880eb7444cdd575fc911d98102465c811ec4dc630b7a458c1029b656f9114a14de002a6343e68c3f2f4107568021276a94e63337089540110901c61455b94481a5f2cc31de015e29ad83dd63631f607a4738732609c43655ebd3e89df6df9cb0104719fad1e97e069792b2fc3cf6e8ec0658022e06cee61f1f4fe02c9411c7e9b24ca829b8df5b3d8230c85967206fbe087ddc070483f4c58dd180f7f28f65e2d21748e57807075a4ff70383e22d507ee4f4634608eea2642b8e0da59ae9d886478e7655000f2b215f78f0086b9e961a2d9fec910afe8ad863d21c9a7b5bb2cde41d329255dbcdfde38a484a02e96f4c27ab8e4805c75219dd053605d72ce497d10d3a4bf3747e38cd4cb834153e340af90c783b0adadb7a728bca4dbdfdb4c2743781b40ec39b54ca32da93d73037472546fd9d063c6c8d7516fd91c3adbc5d359ef02ae92e70cf58f0c9cab746aa5bbe0b43290444e8a5b242fe9faecc9fc913d615eb08c061e773ea3b3c04e062fd5c5d0f4201d657f44edaf13546ab66b8dcf1193348a70f2009dee04ca7b397979ce597f309f9ba24fc8430a5ef83f4925e496f885966c1edb885009d0c87790a2d00e3940249f708b1f01dad523ab266eb8ac617b6b60a1edc49d41317148dae9db2190104d68bf7ff19de3b0f079d1b43ac95acbdbaeac52474fa9e35219e7c5ef791490c0ab9988180c810f5e4261ca8deef3da48108b589f3278749353f105ac0d7f40f10b4a1ef743240ecf807da25ad7afd6796047490079f77b333b6d41d601ab40b68de40b5422d7d755e219dfb17528488a7cfe316d5a8c6733062453e49032507dd484323ae468169b090764d2d995f5da4d8eed3a6d56b9a938fd4ef488e5507c7066c17d1536574587700728ba39d062fcbad0cc31d9b820eeddbf8158f3308057d71d506d976e9202aadd738ebea1d9497e380aa6c8dac2ae1af878cab2001128823e589c31b764c3d0c06347239f2bec571b9df05b03f067dd9005b5f5d0b7a47bc5ebc5c3ac550f976437a1d23cf961e642549639e8d83016b2dad92130bf9de51a8f7435eba185f1a4704bdaaf3f464c7d327a877ca4e1b82c5a5b1fc09d5f8ce74505c66538069e6a17f1032c1ecd11e37476d2569d2e4e8213856a30116029c2df0a9f253df852e0c826be91df8c9b66e6512d4f44ed3775e6cc2ed03ca17fd79a4ddc25b41d7890b2580028a3f9a7cab73d9324848213ffe5b4656094f0242cd88a30959fab9c77bb46528940625e1146f94c98911ea11ad128839076ceba4142a921377dcc229eb7181696fffe7a0880dceeff09dd2e2ef2643880a8ffbedac16c2b2adfede252d017e29666991bccff451231d493799045548a007c5ddfbf35f75803d6b905c8507fbd17796ca57b70450e07bbaf6351df0525f02bcb296aff60c6eae5c51217a185f1c592838852ede9b085077c3f1a53366360c5c9db7a0f8a037511b36eb537f004f3cef5b494c5bd2892b593705846d9ea5083c2e2f7a4cd4d6e58a4b3fc0f86aa20cce4e928c6cf5b5790758c8142f68a20c9be432da26763deff612dae9b59b82c66ffb83a05320f7a462f34dc69065e10dd122d1e0a5a555b731f7c7f6a7ce3618d1ea32ae6ef660dd096e76c7bb51d80b5e8c2002b3dd5d2b12cc432c5af8aa42bfdc2011de075d4f90854108887e300f42ee3a33911b70be783ecb79575daf55d41376a31e208c7cd0b9847ea14ccd070443275e1f721dbd3f9e8b468520c92ef79b04951c6ca9646ee964959138420fb05cf993af22e30800d66facf03a9f2a632a8411e2064c8a502d7b4e79c7aa0e97abb47c9c9e54e0a8091d594ba83334121eed8194b8253fef46387abcb5a20a82fe718dc051cfee9651d3a6b4db9c302a3d769f1d4f41cf7935c362df72c608b7c8215e533c153e53397a355da298ce488340fd59f8a7a34439a5e49cd474073b9f3c72a686a5d06d98c3aa462ade63669b9e29940433bae07d4d9a5c712a00c11d1f21f26e353ff85011fada5a9861654434b1f57518a94440dc18587fcc02b50dd24178119fcf86f86a3825ad9e3f777f8f944766cee00a0f8c8c6d07f209f825df047bf9ef9bec43b0f7c606556fb3ce2d4359edf68e0b2b954aeb70390008e909c05a1d194a68f13aa8a8714f16eb426524242730bd59e7bf56eebee25e1361bf97834070d7e892c0977aeafb5867ab898d096699d438790bbd71680a088fdaadb15964ebfaa9d56e5d3d4ef5538ebdd71382e29de35620a3e72ee27dd8e380a3c824be72b4d3029da04d8a928d6f9895f51da12a1b3362bd3edf3146f22e768eafd58ca7099692a45447625197cb4bbb3819b6c0f914b164b3e51dd1a086fce87ce3264032c6b35dcb09978005bfdf1c689be67d4d5ba3fc365797ab4a8daa9564b84e2bd4c3396d744bea855221acae1a2093b1465f791aafdb87e0ade3304d8fd4b2a43ab2863066587f33f55c9d38a223d8c24b06a6e3d686ab0eb390ff6e718f0c2d68eccbff351ce414aff41b209f5c33eda2a92534a546294c4660f8153e20259feadf89b8a62d9994bb8d8e2a4fad8ec5e769691b00701ad806f226c3cac5591b152843c5853a34fc8d8706e44ee002a6f366858aae7d06e71b64df36f3e88c75243f17bd5eb8feb8e1794cfbdd065d0e456cb17385369fa909e3e26c03ae8ad7c48cc7e45fb2a61976f9ddf3ae02f71a9734382e9314a1d251e29601ce28d30dc75a8673c6f4c29ed10e837b9ac6de3332a9a75eeae0df39c7408912969306ec751bef5c830fc06c2ae882efa7c5a1e09fdef737625f9191ec41a8fb30a35c0cfee02ae6bda84b3826db22dd024be380b007d9c380584c6e2b46750554b99408cba677ed0c8e673fba065d901fe12bbebf72bbdac589d46b601ac323b75b0d0b28f57f4b78e16363514960e0a9f5f09b087b64594fb519b5db74f75ebe230986a8005ef2e696c53ccd83ee1f54296e86e9b1a85c317aa5e225f91e8cf066db140b34aef2efb4ee6a07446749b530c540de3eef02bf3a6bc777c93b1f7fe55ad6d02a62504da329806a5ae861ce6a82c4503ed5fbfe785ec48c5ac7f03723991408b88200c1f55249b770669a651a1bf58502b2071e246e368835a68f0035bba366477b90247ccbe863051932d3f7fa4ed33bc81fe5b1068b4fa70a8c16035313affe31d606ef75c6c9398471334ef434d71209391134a3d1df1156e41b9817516f5dfecd53d72c5f4eb3d04ba9381e8ae081db69da990994db4b68fbc028593ab17670ed08af387235dfa6980d66aeb0e23943e050c2b86b3343fd20d815515965ce77c5fa8b83ed26d6248150311c428958fd456137171969fece8f0ba47ea891e2e4293581390497356e71092b9bf9dc2934da94bcebab84cdff7ce076b039104b246eec5f2e3c5e55bec088bb054569ec1139901c22798a5892d91e032aa50e1f7a96ebd891ce9223413f625991fef7053c8b3476479e35e544f3f52a96b1af2ec80fc7dacc9681f081c2d9c7b119b3ba595496408d0c92d93b278cc94f71f92c181152368fc5a60667feb861a53d1a81ed0ee903fb79dd3e355444cc6ce538168a722d8939ba8c4d62765c1ae0a7d6daea1089f83857f1ea9630acd0f95424aed59798ca9339ee716247a31834cb41e9db5295de07e6b8c5d07c37956eabf88466b52e6bd118fc9d31d0e664b4dbba03d68618ed46235468186e2bdda399756938d660b1b381c119f910153f93cd70899c30132cfb2014503506e939c2b4a7f7052d7c0d598abbe56c0d1a867669b3f6ab91ba2bcc971f8c8f20760b8b61c03ebbd70ca19986ff878648a87306b9d6f1da38e27b183d27a45904fc26c743e1b7c6cd145868363a32c69595fc1cea868f29cd96c6929e7c2c0eb23b5b38d555b6a157accb88b4c54a5bdcbaeaed33602f5faf390b4d5f469ba969f58583c0f4e25017c79967c3647bd387b9075acb255118fb41e02cd524cc349c3d6cb51f67c4e64c8cd78a6ba7b4543b71db398e98bb4384eb5d25a94b0711ec88e8eee8908be633166a7f87c4c1e581fc17f382398090fb413c6b32a0a0a486c1bdffa1ccc422a4ae6d5fafaeed9ecda1039be391d391ce83e3f17f544db9d6d7558d2e09d486be9e32fb919e3c850263b64bce75f6a95cac4dd1b220e156d1a7ede7d8387e43750777c3df6e4cd5c2394c3b661f7edde0523d1d1c581d83e087a388dee17aa7fd14904c20192aa4e4b6b6541e2b85d8834b3fe5902362907478159922ffd7371dfa8ecddea5191837c5bd9e90492bb4c7606034de1447daee55bec8fc30df646416045cfc65d08e796941ae06bcd48136dfd74bef3d7a0cd7811f9a1fca30a579368d0d4e4d5f52d6971b4c6f0e76c1ab80108618edc34995fb4cf7ff8597fa28d2c088bd82ae3b975c68cd3c58293964b0c20f8314d3316dc1b462db9bbd9e13844a12afbf6261c33af0c3cc98b069adf60b20d01b13ad857d33cbfdfc43364990824a91b074f47ede850bf7f7eb4e060697fd19d65c216a5fd40b0b1fb75372d158fd1d458da41d108aac5ca4e7659bb3c9543ce4fece57f17b7cf5840cb3801cfd4743b378d409726df9bde9f41a24a13e00e2592324bb77a6871966942aa1e8a281c12221f390bd0262d0cc3215419155811a827bbe71f619f85b4b0776287bfaa38bb2b6d4fc111a55d08c5025bb913a11abef8888639d0b5846fcddcef6b17f1112aa7ce200cf180069560e966ed67c5d3f5085a61897764d3d61ad4e19c76dc00b724ca5247e17aee4e9e373c37aa2479277d73c64979dec27c5bb6cd7eb8b7a542795460421683da5d0da9c46dae90d29b91ee82294ec62684c566461581158314d950880f94924e9ab2b6e543a74dcfdd83f8d6d89faed4b7374ec646feec59a101d706fc0bc8929ce48aa35a5df46d9c3126d6983f1ec5248fe3e2509c6c707cbc4c323b80d2bf4778cdac3d16284dac96e745bdf8afe5f16276c6a69798e1a467dcbbe6b541c10e54e2972e0442af434078a052475342145b0183ec7eedc8dd00873bb389774a439adea7676d756b307e32a4a9cf676ef215b0d60a8d3946cc0b19df55cf651f0d75e8809c9c537e70268f9e6088b458602fc09aa7af73d3a9980409458b847f3937f30f0855864f80c5dee28f35dac4dcb1f501e0268477c7ea139c7a294450eda6a7343e093568c066eebba1e786c706279e0b867f3b20d7ea76751d9ea70b9dcffc969d72c932909268fb3e790317590d9437f058a2c8f9043633334ef35032cf4a35916427d7b0f1cdf884176d192b4c524e39568208ce912ff84eb2a8849520067eec89057bd091dfc1343f93041083ad75a66e7e8603b7f672848ccaf2790b983ef0dcc9c3801b021eafe6e9801a2d745143737ab37ed0c1504af49c750f8e74b8d3613f157017eac7109e69d8d250fcb12560898f3fa5d5937bdf62891238ddbafd45b11e9077f5b82125133dabe68ffc4476d976f6da35f88eb8d980baf2f2cf07e86f5920daf3ff9ca147bb562869204632c675bbbcebe5c857d0340cb55e66df7f0626004f02ef9adeeb2d3ef5acbc1f1d56641bd573d85f9cda6bec8da9bfd48583a6605220f3f2edddf7e8cee685e3cf726d7d6ff11de9c19c12945d0fcaea09fbff00220a57d12bc3f1aac16bfa17af701e00d2bc0365d9a9ec9100a450d0ccd292805b6ab524ac53c7763251b83c3daf900e756aa632378f4a7d7c9884ee8e42f380e92ec24a19af799b4dcbf1317b06c4f5d894126608539feb428d0f12d9755910ec4822001e40604fa4ea1a4c4252d98195d22814a976ac67439238a647546bf0a2f76671b0545c5d4aa264305e37c0d9220370c94f7ef4a0ec9c049682a849d0c65a0303265a75b22903319ce8b2ed2875b4cda00a83a3e73561b61eeee288202279a05767ad163f7103a4c96c69143a726fd9abb7b9e1b31fa9d457d6116fc0681cf9b70ebd403dd1e9a555b5ec82e3dd843fd9ebcceb4852ca88ec058db9f0e32d36a826d84b8f67e96ed7cb442d304a73260e7f67855fdf6e3f9c05319f80e846d3588f5ee00247143378e2757aefd1a5da19cce987dad68efad5243f1d0021507e192ec4e396be148b37a3458f3c77dcc05e869757c2420d03bf2ac5cb002bb530d3952783af70daaf634ca71f24fb1280814919f54052b08417491137105a881422f3d59f67f60eafb961336ed79366356ce6d9de8f9ecca6f9eece9180dbbc5001e70efc7aacc98a0e5a4fa1eb52566882327ef2c76660d0d358d6cc8012a5e60d35d768068070e0f4890a32f59f736f067ba551f98ccfc9161a8609f02c8e4ca9ec9d81ec563adb581e2860eb02df3c04a59d2ccdef3201c53cfba4d0aaeae93ae5d8e507afe693ad0aad75a4e79f5225477fc1cde56f3bde61777ee0a737cf605f8fd73236a773bcb47e56b1676628c0a6db0cf2f6dbc27c32738490b3908edff353b1839da2ea245bcdc91cbe19771a7bcc0856881e32e8cc3b9240b3771d31ccdf094442983450e534b867fb855f7aad3c182a8df08c99610fb7100939cca70f3da0df90afc116922b5b8f466628c62fc33a5b25ed2f78f624e4c0ae3f407ecd378e6e9b65b2962d4228e3bea8a5808bde0389775c87f59b2946200f47bb2af042bfdb58ba62dfa23060988406237e699ddfebf7e0c8ba2a43a34065a0ba0f6a647d502c6458aeca4093ea118dd271dc49c90630904996340bd34032bc5185a85efaf44ca4b39ac7c4a01bc7455385bbeeba0b4716990b1fb7fd0079dd1177d43549f41c8d760e835c5eafc34b1bee098a1e2622be02aa18f60880e6c908b8b8e0a40e3a76244399a25d493c6ebc2d87bbf3a29dc665f41fd189c0287924f0252b5c1282e7564fada6e8efa9d15580bf03dff7f5e704dae06456e000b2144b494a27297cee24bd435a4587c68619205c59beb7b786c502da76de706612d0896ec4db880c829a415f06007baa8071261f1b0ad7826ae10f60a81b30d3c148c461874ad3c5e9a00190d3ccfc34c85c97815d4d9cfeb29738a8f59430dc60af27367e0f7b680425512bb2af92a3faff090f1a2e3d61200d1d594631302907e99f75ebf2660fc1f3632de671828924e2523677593f1d2e1985e5248ea01ca3ce1510a3915b4f9d30cf5322deed7a724acb0d2810aebef69b1dbbdb9b601b5b7a05ac965e401044ba8abda0a7d6c33e32cc373123a9df48096387dddbe0989f97ad3ddc4f7f9102d2881e4b91c61b267061b3956b08b5e4f5a2b675fe50248e2b741fc1f7c1b95e5478f68b690bd506f7c5febc269b5fd6bb241d9b4bc09390da7423bac8126932c8af72c1a8b144aabe03c8af7c756544a82f4c6a445062498db78ece2a5b52b7f66048dc3f0a499bcce9b7cfab73f4bf2d8078778c0063d91ad162ce298d2feb7a334217fa355336b2f5c94f06fea89af41277e5941082f380264e1aad01d20d938aa640b1fcd3f4040d5da2eaf19f0e2353f4940c102ea7f19e422b3f6f3e2932b5166dcc4496185107fd150c684a05f2189ed050e08adfdb9b3cea07012586d8d19f8b870377f184c3251cccaf3f46aaa8c6baf8c041096bc5fc44efdd684195576bc8a31df7631c6ca96b51e647e08b38bd124f10546e850c96ab6d674531e88819b5ff3cf2dad72c0f37f01113d7323ad5edad102471ba5c65565fed330e1171a910ea95d17691cd766f9341dc23638f2951bcc07642ebb901de7db02233af03f99a2aad696b12017be80a70b7c9698907100450ed7017b997ba01161d98610ceb956ab20155a3ababbb9a91402784c4398fe470424bf18f7df98f0020a861c3dd3689877473f336312f368d15e681210990e6f0cc0276983ac340458568c6c8c01556ee5c7e40484ae14fe83afba8d228e73ee0ed15da3cff07757e43ca485aa3f92b09cc2b7bfe6d628c33c15de8d4b6c4ef40d27dcc5d7d17555453668a0f50777f677722150e73f69c143e881daf41f085d0d126fef651affe002d7c4d394e31ae3ab30bf6a2af8ad0b35545c82a88affd4053f4852368690bdeea4a15c371c365fe101eb2815497ce6822b704496c4add5052477c41bf3bd872a2051bd1aa4a4198765ca84523714f5d7ab306c8ef1347203fdd88adfbe49a658150f496781a365305b803c7179ac91682f8989babdcbc8095b39d27e59690140c38875647762e9a0be0fed02f91aabede347b0c2835e8005837c6a0fa69b328369a85c03436dce5efe10a35ea65722343c9fb2003e4f7603d50cf3f27de5476e2de944d31dd1df1779591d01e7342274b554e2b23cc4c5085e571c80c138f68a6567637215a07c728d47fe9223b0991c3a9f9115a9067f00e864f64fa85fb280df496eeb25491f57b41d810cdde767a8ffd146aeff704d0a41cf4eab55b33a07b6170746d0fbc55dddf4494e2b81086adbaaceb63835cf0916f965b3ea5fce8609cd19d4f3b0615ca6fee1b68a6a79e42f072aa2586d3d03ce93ca0b861c5e9ad2bd4b16420931d97b76a95c1d2ec5ee15cea7467a1ab8090775fac06d843eebbd3d35242e4ae475503d08bc45c664d0b91858cb52a9400b69b5ec260e501edc724918fa2157bc3040eb13b0dadf3a7b2cbecb989861ee022f38a292577f42df21babaa1672a0289d6839dc03e92b7862cee90217b88a5051b5d49a6805136a09070ad6118da7969c74fb29c624bd426db821bf1473d0204c87ab29f373f934aa6e81aa5e750f23730030dcf2436af730ec564b6828b6909bee7961d012a940bef01de8e0cc984bc1e29baf429c6b4a91bd1ee21029fed053a5e21fce9f0f90c633a08a90670dfe68531b77ef96279b36658e405b6fd470a6221c929f7464e96ed7d9bf8756e26b44d42d04b76fcd81fc386ba1561275f0ba7697c358706fcf4fa47d997d63f7c08333908fa55ca79a7a1b2ef26158b100f772511a5a9a52bfa0ea1cdd4ee8035eb431e6c0143931ecf3b217d365ffcec07efc9e110cfdc18a97831955fda573e5fc2b35eed14ccd261ad38792353ab0d0a42d2cec5b64ad66537c375053856d464e073e4972c466753b065b9e366bcf60e710a48198bb2dfdce76ae918787dc2fa2d4bc8a95f5c02fe21096a256302fd0af9d8582b2d663b798b1925fc6574bc0fedc28c54b2bb5400cee1880c252d560cb00a9887d25f3a418967f8c7447279c1eef0f7df74ba661467194f7086ecbe037addf4b6c0c2502995b5ccf58330eceae90dc509755c80b00dec2c4110f45308f81f1bd5e0d6289f70a0c31a2f23f6fa24e595c935200a07bcb7f28c639c470f4831b27a1a72959b703844a13751499937bacce1da649a9f6d34ebd959056f042c0b9be14b038f57e6f5a89eec4472e16a975d0f56cc45dc51be46f59ec4ec0f4aa0c0294440806ec65de8dcc7e39623b18f37f0409d3333069600b32324e70a9f2363296ba76591bb0143b6f874061c1c9eabb4e034142041a53bc88de3aa0860ab02d7dfcad49d6165b3659b1d695bc153d7bdb8134de8de1d7d2d57125609f8b7c669f87122b97a600fba102f6673ed621c7f476d63cf795acc40c811aa0906a8b307d85559638727c9015fa8bc5fd6d103d811e2011c1ab28fd3c5db8b09b7b5c0079a424697e12fcdd5678472730460e0de6d5d55d9419478ce5123760d8e7739d9aab115d8c9de713b36f96b678553b135f220b64816fcfb424441630fc6dfe0db5971dcff21fd2da3f97c6793836d2899efedb721514cdce7089cdf09bf18594ced6e4762df307481b9b96e387184cc5dd2d8225c54fb514ae5a8e3000ff4b8c3c0e0e19904df12a0430770bc7182c3b11f44969449f3f5ef0caaa807cfeef1c9cf6febb0094e2d63cbeb3df4a5a4badce8065c7244a9d802e753950f32fa5d4503a86d741a76f3f69e88d6d3aa927e81201569a3059d2625ce54fd0d7d1bf1b7d1c632d48a55dfe4e526cb6448b57c56300e1f94016128836459240c1e7971014f246096858ff43c7e973f45b81f5c74efeb0d42a0281837d601dc000318ab54d9101bd9f4cd0b13dede88186e52468daf7357a6c5e44abe3d040f0108d214659cd6a55704024dce57fc59b1bbca05872959c23e7ad7e793d3c60c0317217c9da1a214bef56a9cc7b2e6e3789c7f26717df66f8b545c47744cfbab0d58d0b2a37e7cd97c63c882448ba6702ea5c1fdab2c8dd20aaae88bdae8ed310cd4037933eee0b37318e7c7ebfcde37f1964149eff82d5e3121f0f10dffef4e02449ca8c24fd7fc69acb2aee6ea9c54d5ea769dfb16046ed282eb456a11741901989d99489480374a6d9b8bb1503201b6e86b469ab3b5f7e1cde16dbd32853508ffba37ef3c6a262858305f2ad380c56a714c88c85e0308fbe3f0d89733381207723131d1d4c84917646277b601bdab20ecdb4f35a6c1f072a448e08d5ad8ba070557fa484395d0fe493ade671e522eee9820b8065b4eeb3d247c7d0f7a48e101f9a7f2d502743fe261bf94c26e04c123227f737d1aefb6c5bbfe316291d3eb026f08e9e8d17d81524cb75c22e92fe263cf52c4423c266193a91b60456d90480bc0fdced144bdce4f56df850843688fe107315964e88644a012d38ae970a1cd08148fe1f42d30f867bd92d4a7820c44faf47ff26f659d5865b2a4498d4719660a8137761355dd7e64d257e91043c3c810b727999c5f9964e6d5633dec1159a209754aa8fddfd2f0907a583658206b86dfb62e25ffb04668160a443875d3d54e02bcc72cd71e7b0c6a2c9325be7993c9f4063e2f5884380d235727b2698067fd0156aedcdcba264c73aa807fde46d4786cc2b5e68edea0b5f26bacba64e010e70e0a640880378cb654946a7f26dfe018989940b2bf56da4cebc9555c6a8c39c059350126bc48077c91f8f2140348b2422660811d41862daeb07f60c27b6351842e200e9e640d832aec756f6f6f6a0c564281d1683e6c12773c89786458b132269ac1ae74148c35e27bc75244065aa426423a16ccae7f8d26b5f0e28a55019718a25fe5e16e7b9eb28891de462b7699debb4d263499bcdde2ca0351e9450389ef6b33f3507c49b58fd9807dd72f66a3042335346db70e3edaee59567a6bb257cd37530691c02cb309c80c88f23c11dc570bb1db44762f7fd04bb72c98c242ddbe1ac5a521f3d4346c265d696bece9b4b843e3beaf719adb243e69f12e698f2cf3f1c010d9451100cc1e25b4685cd5c210ef1d5d7edfd16de19bee04a56c1624c309421e51d60b13a9653cd29e52ed7f5a7a03e491295afc36e38218f7863be6588323ecd1f5bcec98fffa2740a25d404db590fc94ba6f4b20ce07a731ccb21c0621265d1adca6eba5bcd09903ec5ee7f9963f217ab1e18e0a60ebec3a8faa93619f164c2017ac40951df07c03a9b6ccfec122106beb49d0f331c4b38ee3b4d47cfe1c2bdae34d2d9d9081c59b20f16b7fe54430d9abf8dd06dc9532381e2ac6d249dd6f52daa666080e20556e4103091cbb76fcfa0fc2c397a7d8230ebf1d18b8128e87ff6902b703bf7ff17a9ec7293a1df0744ad0aab2e634369931b88063108ca044d1c0ee4eb5e4a15c27bfeedb2fe93dab431eab6834e4e40d41b041b7020361887105efcf357cba8bf9c68f7d20a9ed8b47c320245159847b8b833f8435d08faa372bab25201b35bb17052a9f3ad5c72164b30659e58de4c0a5bc8b154981db367fdbfea10505ff780a1b105c28ea5db9ea1cd138867c8b35537de59433823c5cf2d78e19b2d2abe76813512b13cae9e236996ee6e6748f48552aa0129ae51230b7686f5d8ca7a360edae365339c494ad71956a868d96cc1b3d37e77d4d86a70f34a454280ef497b92382c56f93b686078febbdee1ca9cf184d98d060a54d797fc4c938dfbeba8ae361ca4e0046161dc8f4b1be162f6bd2e5039a42647a96f602923bb28751757d9e5137198bea978f2d297e534969ee977e4ed2f973cfd3df90f0532c0a3ffb988af64bb8ae47343524addd01536d3e962fad87b96ea372ae3ac8458f74e98fa47779b942e4e22a07431ab6814657abd18ffde80810134799dd8019eb62a87247923a7fb2c87df5a3d511d87634efb1fe7ae000f2ea991f29b469c6e07e7da61d5e243a760da5a0e157c7384c96dd2ad087a8eda3462eebf5196e24cbdc479ac133eab30568732b16d55b9a13c8e5e5af4a136fcbc1dc5f3328583032a3c9768788a82ef90e85db050e7f0cd88da715d54bb796aec6c89d25c76f35c030398103007b578380c6f32c0a7a4836c093c173b8afed5a31520205a6b989fc8f92b1328949a87e4f2d14830f3d988f9a803865a7be8dd7ba48fa030877ed21f9af3fdd8e28036a3eab49b3d97adfa03accbd289ba4f9deee7e9b6de95f0d1d66e5a6998c84af30ebf82b8e983506f1dfeb3ca9b5b86858e60d8f37b412c989c360a291b07180ad38ce34a9ce04881e3eba0eb70f584545077cb177ea136af6366a021d58d31f00dd99d2d463b877dda3ea5fd6ab87baba05f5b1d21555cea50d602a62726040a99106f62885b8026a7c8a63222e9a5b1052c419ea2e5fe39e49fbda6ad5f409aec64351eeca0bbfe479f3ca282b7258eb94cd3ec9df01fed7f2462c56b43422695d5f670c179a88b882fa561f6fa3c7b15a8d6f0dc9c23b65d58cd99898c7f9a736dd951808942ae2183e9e00f7bae7979ff01ae6f2425cad03c84fc42c06c07953b2dd1f9459c12919d66f2ee663ce565d70299e3c72e3151f7634abc6ef24f6f305394ab883dca908404995002d8ccaa344897321b9513875627450cc5f7bb3c1b8cc95baf4be25e58605ca76291ac04a89e0289fa60ba0928cd01ed3bec8872bc62712c77b704bd180067b64d268b43a8f645b1d8f46dbf37563b88000d45ec399cabee74711972c78f445bff7a7cbdcdbcc484e0a5222a24a05097cf286d86b97651d4b201cf7f105569117ede58c9847462cba8f8fc7c98e3bcaaf0d7e10763e0dde545930752484d440b7b91cbcd1c2b76e5cfb7e67f9356134aa27fd1eee445b3f92ea716068fcbd67d17025bf42372116651f6998fd79f2d5a47c920dc6fca51a117311a81e7fba098e01c512a6891a850714c304d50458fc587ceb73592c8667d0cf2576d8a9ddaa1b638eed74d45068c420833dd459401c11a5718d0a0605e4b2e1f30b0cac80981c57095884eade6f198eedbeec1a0f35a3f80ea20d2a816ee753555d2972e083b9c5e5164c036d3b6d909a221094085a87225a854b0b6554dc82768283242044b7ac414245b0d0b1425a853289396530023f1c52ba03960a33205c4d7dd599369461674d66e7eb0f9ba18eb8a2f1ada21e7951862195be225785cefcb1c03c2021d07be9312040febfacf171a335fcecd0d6e191341bcfc2a55949c68ba85e788331871547facd1d7d93281ecfcbf8b8d4575c28f686ccad07f756547802f275fffffc98df7c36a9685cdb67d05b69bfcb916ca33d75db28d39305969785e2690af91abf5d2b988b2ad08bc0aaccf2b81a76489512b687ab6a8e7cb4dfd6e3b9d6c351c6ea3fc8ba041c173297349c99cc9a8fa2cad21f2de44505c20f8ef416efc1676a3cd7368406cfe24e7ea1165e5746457bd366e5ca0120291e6a5a19adcc7c2368834b871b775e731e6f5b7e0c054453dbb90b63ed04357903fe46b771f1e72ed4466983f01d515ff8f2266129b791ea1726541f2e5d19314dfdb1687d2766c55d6a0a27f329bfc68f6acae50e1fa734337573257fc988d104b5df5c5f2c43a1000a160e03d6d28f33fab771104a42106af11ce3e0bc7b5c85f4ea27f95be90e2bac7f07785360d193abe4f8073c7392222645c956da6edc86727b8ed941f01d8e89f504026c0ec0d04ab13ab4c0d06fc429743616ec826d5a98fb418ea4c1056525f2039e4a567ebf721ef112cab6c9aab3e939b7ab53e71cd6be96e8fcbe0863be850b40a3f7da5f4289d6f1db6125c3aca1a84d4ab84393a8b95257c51d5e9506bd0c392273d3d51d33321f4de29b8bf2f44453605c8bd7d934be370164892227c002c5546ac7dec9a9469d00a4e2e5591668fa6f38d46938eb5397d85523e2109f094b805032a1cc13281ffaef26fdf3f3c3321ba54f6bf7b6929a18fd84d67dca0e0e2b70e44f87ca2464a7680a06aea72932740e096a23f1071c6102a33f7abf0a5563e3f2c2e686a1149450f7feb6500931238962fc14733e17dd45c3ed9e0304"
  23. indexes, amounts, _, err := Prove(tx_secret_key, address, tx_hex)
  24. if err != nil {
  25. t.Fatalf("Proving transaction failed err %s", err)
  26. }
  27. if len(indexes) != len(amounts) && len(amounts) != 2 {
  28. t.Fatalf("Proving transaction failed expected 2,2 actual %d,%d", len(indexes), len(amounts))
  29. }
  30. }