ContractInvocation.java
- /*
- * @copyright defined in LICENSE.txt
- */
- package hera.api.model;
- import static hera.util.ValidationUtils.assertNotNull;
- import static java.util.Collections.unmodifiableList;
- import hera.annotation.ApiAudience;
- import hera.annotation.ApiStability;
- import java.util.List;
- import lombok.Builder;
- import lombok.EqualsAndHashCode;
- import lombok.Getter;
- import lombok.ToString;
- @ApiAudience.Public
- @ApiStability.Unstable
- @ToString
- @EqualsAndHashCode
- @Builder(builderMethodName = "newBuilder")
- public class ContractInvocation {
- @Getter
- protected final ContractAddress address;
- @Getter
- protected final ContractFunction function;
- @Getter
- protected final List<Object> args;
- @Getter
- protected final Aer amount;
- @Getter
- protected final boolean delegateFee;
- ContractInvocation(final ContractAddress contractAddress, final ContractFunction contractFunction,
- final List<Object> args, final Aer amount, final boolean delegateFee) {
- assertNotNull(contractAddress, "Contract address must not null");
- assertNotNull(contractFunction, "Contract function must not null");
- assertNotNull(args, "Contract function args must not null");
- assertNotNull(amount, "Amount must not null");
- this.address = contractAddress;
- this.function = contractFunction;
- this.args = unmodifiableList(args);
- this.amount = amount;
- this.delegateFee = delegateFee;
- }
- }