All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.crldev.elrondspringbootstarterreactive.interactor.transaction.ErdTransactionInteractor Maven / Gradle / Ivy

Go to download

A SpringBoot Starter solution designed to ensure easy and efficient integration with the Elrond Network using a Reactive API layer.

The newest version!
package software.crldev.elrondspringbootstarterreactive.interactor.transaction;

import reactor.core.publisher.Mono;
import software.crldev.elrondspringbootstarterreactive.api.model.*;
import software.crldev.elrondspringbootstarterreactive.domain.transaction.Transaction;
import software.crldev.elrondspringbootstarterreactive.domain.wallet.Wallet;

import java.util.List;

/**
 * Interface used for interaction with Transactions on the network
 *
 * @author carlo_stanciu
 */
public interface ErdTransactionInteractor {

    /**
     * Method used to send a transaction for execution
     *
     * @param payload - transaction in sendable format
     * @return - TransactionHash API response
     */
    Mono sendTransaction(Transaction.Sendable payload);

    /**
     * Method used to send a transaction for execution
     *
     * @param wallet - transaction caller's Wallet instance
     * @param request - TransactionRequest instance with required data
     * @return - TransactionHash API response
     */
    Mono sendTransaction(Wallet wallet, TransactionRequest request);

    /**
     * Method used to send a batch of transactions for execution
     *
     * @param payload - a list of transactions in sendable format
     * @return - TransactionsSentResult API response
     */
    Mono sendMultipleTransactions(List payload);

    /**
     * Method used to send a batch of transactions for execution
     *
     * @param wallet - transaction caller's Wallet instance
     * @param request -  a list of TransactionRequest
     * @return - TransactionsSentResult API response
     */
    Mono sendMultipleTransactions(Wallet wallet, List request);

    /**
     * Method used to send a transaction for simulation
     *
     * @param payload - transaction in sendable format
     * @return - SimulationResults API response
     */
    Mono simulateTransaction(Transaction.Sendable payload);

    /**
     * Method used to send a transaction for simulation
     *
     * @param wallet - transaction caller's Wallet instance
     * @param request - object containing minimum required data
     * @return - SimulationResults API response
     */
    Mono simulateTransaction(Wallet wallet, TransactionRequest request);

    /**
     * Method used to send a transaction for cost querying
     *
     * @param payload - transaction in sendable format
     * @return - TransactionCostEstimation API response
     */
    Mono estimateTransactionCost(Transaction.Sendable payload);

    /**
     * Method used to send a transaction for cost querying
     *
     * @param wallet - transaction caller's Wallet instance
     * @param request - object containing minimum required data
     * @return - TransactionCostEstimation API response
     */
    Mono estimateTransactionCost(Wallet wallet, TransactionRequest request);

    /**
     * Method used to query a Transaction's information
     *
     * @param transactionHash - value used as search id
     * @param withResults     - if true it fetches additional information such as smart contract results or receipts
     * @return - TransactionOnNetwork API response
     */
    Mono queryTransactionInfo(String transactionHash, boolean withResults);

    /**
     * Method used to query a Transaction's status
     *
     * @param transactionHash - value used as search id
     * @return - TransactionStatus API response
     */
    Mono queryTransactionStatus(String transactionHash);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy