From 772007456ca2ab6d83585482edec5713d45efdc7 Mon Sep 17 00:00:00 2001 From: jjos2372 Date: Sun, 20 Nov 2022 14:09:21 -0300 Subject: [PATCH 1/3] Extend alias on sale query, fix #692 --- src/brs/db/sql/SqlAliasStore.java | 18 ++++++++++++++++-- src/brs/db/store/AliasStore.java | 2 +- src/brs/http/GetAliasesOnSale.java | 17 +++++++++++++++-- src/brs/services/AliasService.java | 2 +- src/brs/services/impl/AliasServiceImpl.java | 4 ++-- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/brs/db/sql/SqlAliasStore.java b/src/brs/db/sql/SqlAliasStore.java index 705a007b0..6b1b2cc5c 100644 --- a/src/brs/db/sql/SqlAliasStore.java +++ b/src/brs/db/sql/SqlAliasStore.java @@ -7,8 +7,12 @@ import brs.db.store.AliasStore; import brs.db.store.DerivedTableManager; import brs.util.Convert; + +import org.jooq.Condition; import org.jooq.DSLContext; import org.jooq.Record; +import org.jooq.Record1; +import org.jooq.Result; import org.jooq.SortField; import java.util.ArrayList; @@ -137,8 +141,18 @@ public Collection getAliasesByOwner(long accountId, int from, int to) { } @Override - public Collection getAliasOffers(int from, int to) { - return offerTable.getManyBy(brs.schema.Tables.ALIAS_OFFER.LATEST.eq(true), from, to); + public Collection getAliasOffers(long account, long buyer, int from, int to) { + Condition conditions = ALIAS_OFFER.LATEST.eq(true); + if(account != 0L) { + Result> myAliases = Db.useDSLContext(ctx -> { + return ctx.select(ALIAS.ID).from(ALIAS).where(ALIAS.ACCOUNT_ID.eq(account)).fetch(); + }); + conditions = conditions.and(ALIAS_OFFER.ID.in(myAliases)); + } + if(buyer != 0L) { + conditions = conditions.and(ALIAS_OFFER.BUYER_ID.eq(buyer)); + } + return offerTable.getManyBy(conditions, from, to); } @Override diff --git a/src/brs/db/store/AliasStore.java b/src/brs/db/store/AliasStore.java index e5b7df10a..9cf2ce99a 100644 --- a/src/brs/db/store/AliasStore.java +++ b/src/brs/db/store/AliasStore.java @@ -16,7 +16,7 @@ public interface AliasStore { Collection getAliasesByOwner(long accountId, int from, int to); - Collection getAliasOffers(int from, int to); + Collection getAliasOffers(long account, long buyer, int from, int to); Alias getAlias(String aliasName); } diff --git a/src/brs/http/GetAliasesOnSale.java b/src/brs/http/GetAliasesOnSale.java index d18809968..fe38f3c34 100644 --- a/src/brs/http/GetAliasesOnSale.java +++ b/src/brs/http/GetAliasesOnSale.java @@ -3,6 +3,8 @@ import brs.Alias; import brs.BurstException; import brs.services.AliasService; +import brs.util.Convert; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -19,7 +21,7 @@ public final class GetAliasesOnSale extends APIServlet.JsonRequestHandler { private final AliasService aliasService; GetAliasesOnSale(AliasService aliasService) { - super(new APITag[]{APITag.ALIASES}, FIRST_INDEX_PARAMETER, LAST_INDEX_PARAMETER); + super(new APITag[]{APITag.ALIASES}, ACCOUNT_PARAMETER, BUYER_PARAMETER, FIRST_INDEX_PARAMETER, LAST_INDEX_PARAMETER); this.aliasService = aliasService; } @@ -28,9 +30,20 @@ public final class GetAliasesOnSale extends APIServlet.JsonRequestHandler { JsonElement processRequest(HttpServletRequest req) throws BurstException { int firstIndex = ParameterParser.getFirstIndex(req); int lastIndex = ParameterParser.getLastIndex(req); + + long account = 0L; + String accountId = Convert.emptyToNull(req.getParameter(ACCOUNT_PARAMETER)); + if(accountId != null) { + account = Convert.parseUnsignedLong(accountId); + } + long buyer = 0L; + String buyerId = Convert.emptyToNull(req.getParameter(BUYER_PARAMETER)); + if(buyerId != null) { + buyer = Convert.parseUnsignedLong(buyerId); + } JsonArray aliasesJson = new JsonArray(); - Collection aliasOffers = aliasService.getAliasOffers(firstIndex, lastIndex); + Collection aliasOffers = aliasService.getAliasOffers(account, buyer, firstIndex, lastIndex); for(Alias.Offer offer : aliasOffers) { Alias alias = aliasService.getAlias(offer.getId()); aliasesJson.add(JSONData.alias(alias, offer)); diff --git a/src/brs/services/AliasService.java b/src/brs/services/AliasService.java index b4a37a715..089539b55 100644 --- a/src/brs/services/AliasService.java +++ b/src/brs/services/AliasService.java @@ -19,7 +19,7 @@ public interface AliasService { Collection getAliasesByOwner(long accountId, int from, int to); - Collection getAliasOffers(int from, int to); + Collection getAliasOffers(long account, long buyer, int from, int to); void addOrUpdateAlias(Transaction transaction, Attachment.MessagingAliasAssignment attachment); diff --git a/src/brs/services/impl/AliasServiceImpl.java b/src/brs/services/impl/AliasServiceImpl.java index b09388545..24578ed0d 100644 --- a/src/brs/services/impl/AliasServiceImpl.java +++ b/src/brs/services/impl/AliasServiceImpl.java @@ -51,8 +51,8 @@ public Collection getAliasesByOwner(long accountId, int from, int to) { } @Override - public Collection getAliasOffers(int from, int to) { - return aliasStore.getAliasOffers(from, to); + public Collection getAliasOffers(long account, long buyer, int from, int to) { + return aliasStore.getAliasOffers(account, buyer, from, to); } @Override From 08da98dfa81e7ca2f9b74ef299f9c14649cc7e67 Mon Sep 17 00:00:00 2001 From: jjos2372 Date: Sun, 20 Nov 2022 14:16:20 -0300 Subject: [PATCH 2/3] Version. --- src/brs/Burst.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/brs/Burst.java b/src/brs/Burst.java index 7a33dbc04..7abbcadbb 100644 --- a/src/brs/Burst.java +++ b/src/brs/Burst.java @@ -47,7 +47,7 @@ public final class Burst { - public static final Version VERSION = Version.parse("v3.5.1"); + public static final Version VERSION = Version.parse("v3.5.2-beta1"); public static final String APPLICATION = "BRS"; public static final String CONF_FOLDER = "./conf"; From 9b4797c76585c6fb68da01963a3bc762e1743862 Mon Sep 17 00:00:00 2001 From: jjos2372 Date: Sun, 20 Nov 2022 14:16:44 -0300 Subject: [PATCH 3/3] Fix volume for assets by name, fix #689 --- src/brs/http/GetAssetsByName.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/brs/http/GetAssetsByName.java b/src/brs/http/GetAssetsByName.java index 0141c8f1a..0c40e2d2c 100644 --- a/src/brs/http/GetAssetsByName.java +++ b/src/brs/http/GetAssetsByName.java @@ -45,8 +45,8 @@ JsonElement processRequest(HttpServletRequest req) throws BurstException { } int heightEnd = Burst.getBlockchain().getHeight(); - // default is for any height - int heightStart = 0; + // default is one day window + int heightStart = heightEnd - 360; String heightStartString = Convert.emptyToNull(req.getParameter(HEIGHT_START_PARAMETER)); if(heightStartString != null) {