From 264857d91c0d25e58fe8a606998da823142790a2 Mon Sep 17 00:00:00 2001 From: pinpong Date: Sat, 10 Dec 2016 08:12:18 +0100 Subject: [PATCH] [WIP] --- src/main/java/jota/model/Bundle.java | 36 ++++++++++++++++++++++-- src/main/java/jota/model/Input.java | 2 +- src/main/java/jota/model/Transfer.java | 9 ++++++ src/test/java/jota/IotaAPIProxyTest.java | 7 +++++ 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/src/main/java/jota/model/Bundle.java b/src/main/java/jota/model/Bundle.java index 9f74b9d..a814d5d 100644 --- a/src/main/java/jota/model/Bundle.java +++ b/src/main/java/jota/model/Bundle.java @@ -42,7 +42,18 @@ public class Bundle { } public void addEntry(int signatureMessageLength, String slice, long value, String tag, long timestamp) { - throw new NotImplementedException(""); + for (int i = 0; i < signatureMessageLength; i++) { + //TODO + +/* var transactionObject = new Object(); + transactionObject.address = address; + transactionObject.value = i == 0 ? value : 0; + transactionObject.tag = tag; + transactionObject.timestamp = timestamp; + + this.bundle[this.bundle.length] = transactionObject; +*/ + } } public void finalize() { @@ -87,7 +98,28 @@ public class Bundle { public void addTrytes(List signatureFragments) { - throw new NotImplementedException(""); + String emptySignatureFragment = ""; + String emptyHash = "999999999999999999999999999999999999999999999999999999999999999999999999999999999"; + + for (int j = 0; emptySignatureFragment.length() < 2187; j++) { + emptySignatureFragment += '9'; + } + + for (int i = 0; i < this.getTransactions().size(); i++) { + + // Fill empty signatureMessageFragment + + //TODO + ///this.getTransactions().get(i).signatureMessageFragment(signatureFragments[i] ? signatureFragments[i] : emptySignatureFragment); + // Fill empty trunkTransaction + this.getTransactions().get(i).setTrunkTransaction(emptyHash); + + // Fill empty branchTransaction + this.getTransactions().get(i).setBranchTransaction(emptyHash); + + // Fill empty nonce + this.getTransactions().get(i).setNonce(emptyHash); + } } public int[] normalizedBundle(String bundleHash) { diff --git a/src/main/java/jota/model/Input.java b/src/main/java/jota/model/Input.java index 8e3a53e..16ce445 100644 --- a/src/main/java/jota/model/Input.java +++ b/src/main/java/jota/model/Input.java @@ -45,4 +45,4 @@ public class Input { public void setKeyIndex(int keyIndex) { this.keyIndex = keyIndex; } -} +} \ No newline at end of file diff --git a/src/main/java/jota/model/Transfer.java b/src/main/java/jota/model/Transfer.java index 06080e2..dabbf6e 100644 --- a/src/main/java/jota/model/Transfer.java +++ b/src/main/java/jota/model/Transfer.java @@ -29,6 +29,15 @@ public class Transfer { } + public Transfer(String address, long value, String message, String tag) { + + this.address = address; + this.value = value; + this.message = message; + this.tag = tag; + + } + @Override public String toString() { return new Gson().toJson(this); diff --git a/src/test/java/jota/IotaAPIProxyTest.java b/src/test/java/jota/IotaAPIProxyTest.java index ff912f9..82de74e 100644 --- a/src/test/java/jota/IotaAPIProxyTest.java +++ b/src/test/java/jota/IotaAPIProxyTest.java @@ -6,6 +6,7 @@ import jota.dto.response.*; import jota.error.ArgumentException; import jota.error.NotEnoughBalanceException; import jota.model.Inputs; +import jota.model.Transfer; import org.hamcrest.core.Is; import org.hamcrest.core.IsNull; import org.junit.Before; @@ -32,6 +33,7 @@ public class IotaAPIProxyTest { private static final String TEST_TRYTES = "BYSWEAUTWXHXZ9YBZISEK9LUHWGMHXCGEVNZHRLUWQFCUSDXZHOFHWHL9MQPVJXXZLIXPXPXF9KYEREFSKCPKYIIKPZVLHUTDFQKKVVBBN9ATTLPCNPJDWDEVIYYLGPZGCWXOBDXMLJC9VO9QXTTBLAXTTBFUAROYEGQIVB9MJWJKXJMCUPTWAUGFZBTZCSJVRBGMYXTVBDDS9MYUJCPZ9YDWWQNIPUAIJXXSNLKUBSCOIJPCLEFPOXFJREXQCUVUMKSDOVQGGHRNILCO9GNCLWFM9APMNMWYASHXQAYBEXF9QRIHIBHYEJOYHRQJAOKAQ9AJJFQ9WEIWIJOTZATIBOXQLBMIJU9PCGBLVDDVFP9CFFSXTDUXMEGOOFXWRTLFGV9XXMYWEMGQEEEDBTIJ9OJOXFAPFQXCDAXOUDMLVYRMRLUDBETOLRJQAEDDLNVIRQJUBZBO9CCFDHIX9MSQCWYAXJVWHCUPTRSXJDESISQPRKZAFKFRULCGVRSBLVFOPEYLEE99JD9SEBALQINPDAZHFAB9RNBH9AZWIJOTLBZVIEJIAYGMC9AZGNFWGRSWAXTYSXVROVNKCOQQIWGPNQZKHUNODGYADPYLZZZUQRTJRTODOUKAOITNOMWNGHJBBA99QUMBHRENGBHTH9KHUAOXBVIVDVYYZMSEYSJWIOGGXZVRGN999EEGQMCOYVJQRIRROMPCQBLDYIGQO9AMORPYFSSUGACOJXGAQSPDY9YWRRPESNXXBDQ9OZOXVIOMLGTSWAMKMTDRSPGJKGBXQIVNRJRFRYEZ9VJDLHIKPSKMYC9YEGHFDS9SGVDHRIXBEMLFIINOHVPXIFAZCJKBHVMQZEVWCOSNWQRDYWVAIBLSCBGESJUIBWZECPUCAYAWMTQKRMCHONIPKJYYTEGZCJYCT9ABRWTJLRQXKMWY9GWZMHYZNWPXULNZAPVQLPMYQZCYNEPOCGOHBJUZLZDPIXVHLDMQYJUUBEDXXPXFLNRGIPWBRNQQZJSGSJTTYHIGGFAWJVXWL9THTPWOOHTNQWCNYOYZXALHAZXVMIZE9WMQUDCHDJMIBWKTYH9AC9AFOT9DPCADCV9ZWUTE9QNOMSZPTZDJLJZCJGHXUNBJFUBJWQUEZDMHXGBPTNSPZBR9TGSKVOHMOQSWPGFLSWNESFKSAZY9HHERAXALZCABFYPOVLAHMIHVDBGKUMDXC9WHHTIRYHZVWNXSVQUWCR9M9RAGMFEZZKZ9XEOQGOSLFQCHHOKLDSA9QCMDGCGMRYJZLBVIFOLBIJPROKMHOYTBTJIWUZWJMCTKCJKKTR9LCVYPVJI9AHGI9JOWMIWZAGMLDFJA9WU9QAMEFGABIBEZNNAL9OXSBFLOEHKDGHWFQSHMPLYFCNXAAZYJLMQDEYRGL9QKCEUEJ9LLVUOINVSZZQHCIKPAGMT9CAYIIMTTBCPKWTYHOJIIY9GYNPAJNUJ9BKYYXSV9JSPEXYMCFAIKTGNRSQGUNIYZCRT9FOWENSZQPD9ALUPYYAVICHVYELYFPUYDTWUSWNIYFXPX9MICCCOOZIWRNJIDALWGWRATGLJXNAYTNIZWQ9YTVDBOFZRKO9CFWRPAQQRXTPACOWCPRLYRYSJARRKSQPR9TCFXDVIXLP9XVL99ERRDSOHBFJDJQQGGGCZNDQ9NYCTQJWVZIAELCRBJJFDMCNZU9FIZRPGNURTXOCDSQGXTQHKHUECGWFUUYS9J9NYQ9U9P9UUP9YMZHWWWCIASCFLCMSKTELZWUGCDE9YOKVOVKTAYPHDF9ZCCQAYPJIJNGSHUIHHCOSSOOBUDOKE9CJZGYSSGNCQJVBEFTZFJ9SQUHOASKRRGBSHWKBCBWBTJHOGQ9WOMQFHWJVEG9NYX9KWBTCAIXNXHEBDIOFO9ALYMFGRICLCKKLG9FOBOX9PDWNQRGHBKHGKKRLWTBEQMCWQRLHAVYYZDIIPKVQTHYTWQMTOACXZOQCDTJTBAAUWXSGJF9PNQIJ9AJRUMUVCPWYVYVARKR9RKGOUHHNKNVGGPDDLGKPQNOYHNKAVVKCXWXOQPZNSLATUJT9AUWRMPPSWHSTTYDFAQDXOCYTZHOYYGAIM9CELMZ9AZPWB9MJXGHOKDNNSZVUDAGXTJJSSZCPZVPZBYNNTUQABSXQWZCHDQSLGK9UOHCFKBIBNETK999999999999999999999999999999999999999999999999999999999999999999999999999999999NOXDXXKUDWLOFJLIPQIBRBMGDYCPGDNLQOLQS99EQYKBIU9VHCJVIPFUYCQDNY9APGEVYLCENJIOBLWNB999999999XKBRHUD99C99999999NKZKEKWLDKMJCI9N9XQOLWEPAYWSH9999999999999999999999999KDDTGZLIPBNZKMLTOLOXQVNGLASESDQVPTXALEKRMIOHQLUHD9ELQDBQETS9QFGTYOYWLNTSKKMVJAUXSIROUICDOXKSYZTDPEDKOQENTJOWJONDEWROCEJIEWFWLUAACVSJFTMCHHXJBJRKAAPUDXXVXFWP9X9999IROUICDOXKSYZTDPEDKOQENTJOWJONDEWROCEJIEWFWLUAACVSJFTMCHHXJBJRKAAPUDXXVXFWP9X9999"; private static final String TEST_MILESTONE = "SMYMAKKPSUKCKDRUEYCGZJTYCZ9HHDMDUWBAPXARGURPQRHTAJDASRWMIDTPTBNDKDEFBUTBGGAFX9999"; private static final Integer TEST_MILESTONE_INDEX = 8059; + private static Transfer transfer = new Transfer(TEST_ADDRESS_WITH_CHECKSUM,0, "JAVALIB","JAVA"); private IotaAPIProxy proxy; @@ -141,4 +143,9 @@ public class IotaAPIProxyTest { final Inputs res = proxy.getInputs(TEST_SEED, 0, 1, 1); assertTrue(res.getTotalBalance() > 0); } + + @Test + public void shouldSendTransfer() throws ArgumentException, NotEnoughBalanceException { + proxy.sendTransfer(TEST_SEED,1,13, new Transfer[]{transfer}, null, null); + } } \ No newline at end of file