Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
package com.algorand.algosdk.v2.client.algod;

import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.algorand.algosdk.v2.client.common.Client;
import com.algorand.algosdk.v2.client.common.HttpMethod;
import com.algorand.algosdk.v2.client.common.Query;
import com.algorand.algosdk.v2.client.common.QueryData;
import com.algorand.algosdk.v2.client.common.Response;
import com.algorand.algosdk.v2.client.model.BoxesResponse;
import com.algorand.algosdk.v2.client.model.Enums;


/**
* Given an application ID, return all Box names. No particular ordering is
* Given an application ID, return all box names. No particular ordering is
* guaranteed. Request fails when client or server-side configured limits prevent
* returning all Box names.
* returning all box names.
* Pagination mode is enabled when any of the following parameters are provided:
* limit, next, prefix, include, or round. In pagination mode box values can be
* requested and results are returned in sorted order.
* To paginate: use the next-token from a previous response as the next parameter
* in the following request. Pin the round parameter to the round value from the
* first page's response to ensure consistent results across pages. The server
* enforces a per-response byte limit, so fewer results than limit may be returned
* even when more exist; the presence of next-token is the only reliable signal
* that more data is available.
* /v2/applications/{application-id}/boxes
*/
public class GetApplicationBoxes extends Query {
Expand All @@ -26,6 +40,23 @@ public GetApplicationBoxes(Client client, Long applicationId) {
this.applicationId = applicationId;
}

/**
* Include additional items in the response. Use `values` to include box values.
* Multiple values can be comma-separated.
*/
public GetApplicationBoxes include(List<Enums.Include> include) {
addQuery("include", StringUtils.join(include, ","));
return this;
}

/**
* Maximum number of boxes to return per page.
*/
public GetApplicationBoxes limit(Long limit) {
addQuery("limit", String.valueOf(limit));
return this;
}

/**
* Max number of box names to return. If max is not set, or max == 0, returns all
* box-names.
Expand All @@ -35,6 +66,34 @@ public GetApplicationBoxes max(Long max) {
return this;
}

/**
* A box name, in the goal app call arg form 'encoding:value', representing the
* earliest box name to include in results. Use the next-token from a previous
* response.
*/
public GetApplicationBoxes next(String next) {
addQuery("next", String.valueOf(next));
return this;
}

/**
* A box name prefix, in the goal app call arg form 'encoding:value', to filter
* results by. Only boxes whose names start with this prefix will be returned.
*/
public GetApplicationBoxes prefix(String prefix) {
addQuery("prefix", String.valueOf(prefix));
return this;
}

/**
* Return box data from the given round. The round must be within the node's
* available range.
*/
public GetApplicationBoxes round(java.math.BigInteger round) {
addQuery("round", String.valueOf(round));
return this;
}

/**
* Execute the query.
* @return the query response object.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,18 @@ public GetApplicationByID GetApplicationByID(Long applicationId) {
}

/**
* Given an application ID, return all Box names. No particular ordering is
* Given an application ID, return all box names. No particular ordering is
* guaranteed. Request fails when client or server-side configured limits prevent
* returning all Box names.
* returning all box names.
* Pagination mode is enabled when any of the following parameters are provided:
* limit, next, prefix, include, or round. In pagination mode box values can be
* requested and results are returned in sorted order.
* To paginate: use the next-token from a previous response as the next parameter
* in the following request. Pin the round parameter to the round value from the
* first page's response to ensure consistent results across pages. The server
* enforces a per-response byte limit, so fewer results than limit may be returned
* even when more exist; the presence of next-token is the only reliable signal
* that more data is available.
* /v2/applications/{application-id}/boxes
*/
public GetApplicationBoxes GetApplicationBoxes(Long applicationId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ public static Hashtype forValue(String value) {

public enum Include {
@JsonProperty("params") PARAMS("params"),
@JsonProperty("values") VALUES("values"),
@JsonProperty("") UNKNOWN("");

final String serializedName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ public class SimulateResponse extends PathResponse {
@JsonProperty("last-round")
public Long lastRound;

/**
* Total fees paid across all top-level transaction groups and their descendants.
*/
@JsonProperty("total-fees-paid")
public Long totalFeesPaid;

/**
* Total fee usage across all top-level transaction groups and their descendants,
* in millionths of a basic transaction fee unit.
*/
@JsonProperty("total-usage")
public Long totalUsage;

/**
* A result object for each transaction group that was simulated.
*/
Expand All @@ -62,6 +75,8 @@ public boolean equals(Object o) {
if (!Objects.deepEquals(this.execTraceConfig, other.execTraceConfig)) return false;
if (!Objects.deepEquals(this.initialStates, other.initialStates)) return false;
if (!Objects.deepEquals(this.lastRound, other.lastRound)) return false;
if (!Objects.deepEquals(this.totalFeesPaid, other.totalFeesPaid)) return false;
if (!Objects.deepEquals(this.totalUsage, other.totalUsage)) return false;
if (!Objects.deepEquals(this.txnGroups, other.txnGroups)) return false;
if (!Objects.deepEquals(this.version, other.version)) return false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,20 @@ public class SimulateTransactionGroupResult extends PathResponse {
@JsonProperty("failure-message")
public String failureMessage;

/**
* Total fees paid by the transaction group and all of its descendant inner
* transaction groups.
*/
@JsonProperty("group-fees-paid")
public Long groupFeesPaid;

/**
* Fee usage for the transaction group, including all descendant inner
* transactions, in millionths of a basic transaction fee unit.
*/
@JsonProperty("group-usage")
public Long groupUsage;

/**
* Simulation result for individual transactions
*/
Expand Down Expand Up @@ -71,6 +85,8 @@ public boolean equals(Object o) {
if (!Objects.deepEquals(this.appBudgetConsumed, other.appBudgetConsumed)) return false;
if (!Objects.deepEquals(this.failedAt, other.failedAt)) return false;
if (!Objects.deepEquals(this.failureMessage, other.failureMessage)) return false;
if (!Objects.deepEquals(this.groupFeesPaid, other.groupFeesPaid)) return false;
if (!Objects.deepEquals(this.groupUsage, other.groupUsage)) return false;
if (!Objects.deepEquals(this.txnResults, other.txnResults)) return false;
if (!Objects.deepEquals(this.unnamedResourcesAccessed, other.unnamedResourcesAccessed)) return false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ public class SimulateTransactionResult extends PathResponse {
@JsonProperty("exec-trace")
public SimulationTransactionExecTrace execTrace;

/**
* Total fees paid by this transaction and all of its descendant inner
* transactions.
*/
@JsonProperty("fees-paid")
public Long feesPaid;

/**
* The account that needed to sign this transaction when no signature was provided
* and the provided signer was incorrect.
Expand Down Expand Up @@ -71,6 +78,13 @@ public String fixedSigner() throws NoSuchAlgorithmException {
@JsonProperty("unnamed-resources-accessed")
public SimulateUnnamedResourcesAccessed unnamedResourcesAccessed;

/**
* Fee usage for this transaction and all of its descendant inner transactions, in
* millionths of a basic transaction fee unit.
*/
@JsonProperty("usage")
public Long usage;

@Override
public boolean equals(Object o) {

Expand All @@ -80,10 +94,12 @@ public boolean equals(Object o) {
SimulateTransactionResult other = (SimulateTransactionResult) o;
if (!Objects.deepEquals(this.appBudgetConsumed, other.appBudgetConsumed)) return false;
if (!Objects.deepEquals(this.execTrace, other.execTrace)) return false;
if (!Objects.deepEquals(this.feesPaid, other.feesPaid)) return false;
if (!Objects.deepEquals(this.fixedSigner, other.fixedSigner)) return false;
if (!Objects.deepEquals(this.logicSigBudgetConsumed, other.logicSigBudgetConsumed)) return false;
if (!Objects.deepEquals(this.txnResult, other.txnResult)) return false;
if (!Objects.deepEquals(this.unnamedResourcesAccessed, other.unnamedResourcesAccessed)) return false;
if (!Objects.deepEquals(this.usage, other.usage)) return false;

return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ public String genesisHash() {
public Long lastRound;

/**
* The minimum transaction fee (not per byte) required for the
* txn to validate for the current network protocol.
* The minimum transaction fee (not per byte) required for the txn to validate for
* the current network protocol.
*/
@JsonProperty("min-fee")
public Long minFee;
Expand Down