AdaHandleHistoryMapper.java

package org.cardanofoundation.tools.adahandle.resolver.mapper;

import com.bloxbean.cardano.yaci.store.common.domain.AddressUtxo;
import com.bloxbean.cardano.yaci.store.common.domain.Amt;
import org.cardanofoundation.tools.adahandle.resolver.entity.AdaHandle;
import org.cardanofoundation.tools.adahandle.resolver.entity.AdaHandleHistoryItem;

import java.util.ArrayList;

public class AdaHandleHistoryMapper {
    public static ArrayList<AdaHandleHistoryItem> fromAddressUtxoEntities(AddressUtxo addressUtxo) {
        final ArrayList<AdaHandleHistoryItem> adaHandleHistoryItems = new ArrayList<>();
        final String ADA_HANDLE_POLICY_ID = "f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a";
        if (addressUtxo.getAmounts() != null) {
            for (final Amt amount : addressUtxo.getAmounts()) {
                if (amount.getPolicyId() != null) {
                    if (amount.getPolicyId().equals(ADA_HANDLE_POLICY_ID)) {
                        AdaHandleHistoryItem adaHandleHistoryItem = new AdaHandleHistoryItem();
                        adaHandleHistoryItem.setName(amount.getAssetName());
                        adaHandleHistoryItem.setStakeAddress(addressUtxo.getOwnerStakeAddr());
                        adaHandleHistoryItem.setPaymentAddress(addressUtxo.getOwnerAddr());
                        adaHandleHistoryItem.setSlot(addressUtxo.getSlot());
                        adaHandleHistoryItems.add(adaHandleHistoryItem);
                    }
                }
            }
        }
        return adaHandleHistoryItems;
    }

    public static AdaHandle toAdaHandle(AdaHandleHistoryItem adaHandleHistoryItem) {
        return new AdaHandle(adaHandleHistoryItem.getName(), adaHandleHistoryItem.getStakeAddress(), adaHandleHistoryItem.getPaymentAddress());
    }
}