From 657c720453514971da3a111195c18138b3f7f33d Mon Sep 17 00:00:00 2001 From: Bartek Nowotarski Date: Tue, 23 Feb 2016 13:28:38 +0100 Subject: [PATCH] 0.1.2 --- build.gradle | 2 +- src/main/java/org/stellar/sdk/Account.java | 13 +++++++------ src/main/java/org/stellar/sdk/Transaction.java | 8 +++++++- .../org/stellar/sdk/TransactionBuilderAccount.java | 5 +++++ .../org/stellar/sdk/responses/AccountResponse.java | 5 +++++ src/test/java/org/stellar/sdk/ServerTest.java | 9 ++++++--- 6 files changed, 31 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index e32e9a8f4..01540d50d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java' apply plugin: 'ivy-publish' sourceCompatibility = 1.6 -version = '0.1.1' +version = '0.1.2' group = 'stellar' jar { diff --git a/src/main/java/org/stellar/sdk/Account.java b/src/main/java/org/stellar/sdk/Account.java index f96463103..42e5f3557 100644 --- a/src/main/java/org/stellar/sdk/Account.java +++ b/src/main/java/org/stellar/sdk/Account.java @@ -21,20 +21,21 @@ public Account(KeyPair keypair, Long sequenceNumber) { mSequenceNumber = checkNotNull(sequenceNumber, "sequenceNumber cannot be null"); } - /** - * Returns keypair associated with this Account - */ + @Override public KeyPair getKeypair() { return mKeyPair; } - /** - * Returns current sequence number ot this Account. - */ + @Override public Long getSequenceNumber() { return mSequenceNumber; } + @Override + public Long getIncrementedSequenceNumber() { + return new Long(mSequenceNumber + 1); + } + /** * Increments sequence number in this object by one. */ diff --git a/src/main/java/org/stellar/sdk/Transaction.java b/src/main/java/org/stellar/sdk/Transaction.java index a9dd475ed..b2e230772 100644 --- a/src/main/java/org/stellar/sdk/Transaction.java +++ b/src/main/java/org/stellar/sdk/Transaction.java @@ -184,6 +184,10 @@ public Builder(TransactionBuilderAccount sourceAccount) { mOperations = Collections.synchronizedList(new ArrayList()); } + public int getOperationsCount() { + return mOperations.size(); + } + /** * Adds a new operation to this transaction. * @param operation @@ -217,8 +221,10 @@ public Builder addMemo(Memo memo) { public Transaction build() { Operation[] operations = new Operation[mOperations.size()]; operations = mOperations.toArray(operations); + Transaction transaction = new Transaction(mSourceAccount.getKeypair(), mSourceAccount.getIncrementedSequenceNumber(), operations, mMemo); + // Increment sequence number when there were no exceptions when creating a transaction mSourceAccount.incrementSequenceNumber(); - return new Transaction(mSourceAccount.getKeypair(), mSourceAccount.getSequenceNumber(), operations, mMemo); + return transaction; } } } diff --git a/src/main/java/org/stellar/sdk/TransactionBuilderAccount.java b/src/main/java/org/stellar/sdk/TransactionBuilderAccount.java index af7aa4c33..e514b9aa3 100644 --- a/src/main/java/org/stellar/sdk/TransactionBuilderAccount.java +++ b/src/main/java/org/stellar/sdk/TransactionBuilderAccount.java @@ -14,6 +14,11 @@ public interface TransactionBuilderAccount { */ Long getSequenceNumber(); + /** + * Returns sequence number incremented by one, but does not increment internal counter. + */ + Long getIncrementedSequenceNumber(); + /** * Increments sequence number in this object by one. */ diff --git a/src/main/java/org/stellar/sdk/responses/AccountResponse.java b/src/main/java/org/stellar/sdk/responses/AccountResponse.java index 1a0791eac..01bc24051 100644 --- a/src/main/java/org/stellar/sdk/responses/AccountResponse.java +++ b/src/main/java/org/stellar/sdk/responses/AccountResponse.java @@ -55,6 +55,11 @@ public Long getSequenceNumber() { return sequenceNumber; } + @Override + public Long getIncrementedSequenceNumber() { + return new Long(sequenceNumber + 1); + } + @Override public void incrementSequenceNumber() { sequenceNumber++; diff --git a/src/test/java/org/stellar/sdk/ServerTest.java b/src/test/java/org/stellar/sdk/ServerTest.java index 1dbbafacf..9babd36e7 100644 --- a/src/test/java/org/stellar/sdk/ServerTest.java +++ b/src/test/java/org/stellar/sdk/ServerTest.java @@ -84,11 +84,14 @@ Transaction buildTransaction() throws IOException { KeyPair destination = KeyPair.fromAccountId("GDW6AUTBXTOC7FIKUO5BOO3OGLK4SF7ZPOBLMQHMZDI45J2Z6VXRB5NR"); Account account = new Account(source, 2908908335136768L); - Transaction transaction = new Transaction.Builder(account) + Transaction.Builder builder = new Transaction.Builder(account) .addOperation(new CreateAccountOperation.Builder(destination, "2000").build()) - .addMemo(Memo.text("Hello world!")) - .build(); + .addMemo(Memo.text("Hello world!")); + assertEquals(1, builder.getOperationsCount()); + Transaction transaction = builder.build(); + assertEquals(2908908335136769L, transaction.getSequenceNumber()); + assertEquals(new Long(2908908335136769L), account.getSequenceNumber()); transaction.sign(source); return transaction; }