package com.table.transfer.module.service;


import com.table.transfer.module.enpty.TransactionInfoDTO;
import com.table.transfer.module.enpty.TransferRequest;
import com.table.transfer.module.enpty.TransferResponse;

import java.math.BigDecimal;
import java.math.BigInteger;

public interface BlockchainService {
    TransferResponse transfer(TransferRequest request) throws Exception;

    boolean validateAddress(String address);

    void validateTransferRequest(TransferRequest transferRequest) throws Exception;

    BigInteger getNonce(String assetCode, String address) throws Exception;

    BigDecimal getTokenBalance(String chain, String contractAddress, String targetAddress) throws Exception;

    BigDecimal getBalance(String chain, String targetAddress) throws Exception;

    TransactionInfoDTO getTransactionInfoByHash(String assetCode, String transactionHash) throws Exception;
}