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

software.crldev.elrondspringbootstarterreactive.interactor.esdt.ErdESDTInteractor 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.esdt;

import reactor.core.publisher.Mono;
import software.crldev.elrondspringbootstarterreactive.api.model.*;
import software.crldev.elrondspringbootstarterreactive.domain.account.Address;
import software.crldev.elrondspringbootstarterreactive.domain.common.Nonce;
import software.crldev.elrondspringbootstarterreactive.domain.esdt.ESDTQueryType;
import software.crldev.elrondspringbootstarterreactive.domain.esdt.ESDTTransaction;
import software.crldev.elrondspringbootstarterreactive.domain.esdt.common.ESDTSpecialRole;
import software.crldev.elrondspringbootstarterreactive.domain.esdt.common.TokenIdentifier;
import software.crldev.elrondspringbootstarterreactive.domain.wallet.Wallet;

import java.util.Set;

/**
 * Interface used for interaction with ESDT tokens
 *
 * @author carlo_stanciu
 */
public interface ErdESDTInteractor {

    /**
     * Method used to process specific ESDT Transactions
     *
     * @param wallet -
     * @return - TransactionHash API response
     */
    Mono processEsdtTransaction(Wallet wallet, ESDTTransaction transaction);

    /**
     * Method used to retrieve owned ESDT tokens
     *
     * @param address - token owner's address
     * @return - Set of ESDTToken API response
     */
    Mono> getTokensForAccount(Address address);

    /**
     * Method used to retrieve ESDT roles
     *
     * @param address - roles owner's address
     * @return - AccountESDTRoles API response
     */
    Mono getTokenRolesForAccount(Address address);

    /**
     * Method used to query list of ESDT tokens
     *
     * @param queryType - ESDT query type
     * @return - TokenList API response
     */
    Mono getAllTokens(ESDTQueryType queryType);

    /**
     * Method used to retrieve token properties
     *
     * @param identifier - ESDT token identifier
     * @return - ContractQueryResult API response
     */
    Mono getTokenProperties(TokenIdentifier identifier);

    /**
     * Method used to get roles for ESDT token
     *
     * @param identifier - ESDT token identifier
     * @return - ContractQueryResult API response
     */
    Mono getTokenSpecialRoles(TokenIdentifier identifier);

    /**
     * Method used to query an NFT's data
     *
     * @param address - owner's address
     * @param identifier - NFT identifier
     * @param nonce - NFT nonce
     * @return - NFTData API response
     */
    Mono getNftDataForAccount(Address address, TokenIdentifier identifier, Nonce nonce);

    /**
     * Method used to get list of NFT / SFT tokens for address
     *
     * @param address - owner's address
     * @return - TokenList API response
     */
    Mono getNftSftForAccount(Address address);

    /**
     * Method used to get list of NFT / SFT tokens with specific role for address
     *
     * @param address - owner's address
     * @param role - token's role
     * @return - TokenList API response
     */
    Mono getTokensWithRole(Address address, ESDTSpecialRole role);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy