Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.openelements.hiero.base.data;

import com.hedera.hashgraph.sdk.AccountId;
import com.hedera.hashgraph.sdk.TokenId;
import java.util.Objects;

public record NftMetadata(TokenId tokenId, String name, String symbol, AccountId treasuryAccountId) implements
TokenMetadata {

public NftMetadata {
Objects.requireNonNull(tokenId, "tokenId must not be null");
Objects.requireNonNull(name, "name must not be null");
Objects.requireNonNull(symbol, "symbol must not be null");
Objects.requireNonNull(treasuryAccountId, "treasuryAccountId must not be null");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.openelements.hiero.base.data;

import com.hedera.hashgraph.sdk.AccountId;
import com.hedera.hashgraph.sdk.TokenId;

public interface TokenMetadata {

TokenId tokenId();

String name();

String symbol();

AccountId treasuryAccountId();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
import com.hedera.hashgraph.sdk.TokenId;
import com.openelements.hiero.base.HieroException;
import com.openelements.hiero.base.data.Nft;
import com.openelements.hiero.base.mirrornode.NftRepository;
import com.openelements.hiero.base.mirrornode.MirrorNodeClient;
import com.openelements.hiero.base.data.NftMetadata;
import com.openelements.hiero.base.data.Page;
import com.openelements.hiero.base.mirrornode.MirrorNodeClient;
import com.openelements.hiero.base.mirrornode.NftRepository;
import java.util.Objects;
import java.util.Optional;
import org.jspecify.annotations.NonNull;
Expand Down Expand Up @@ -51,4 +52,21 @@ public Optional<Nft> findByOwnerAndTypeAndSerial(@NonNull final AccountId owner,
final long serialNumber) throws HieroException {
return mirrorNodeClient.queryNftsByAccountAndTokenIdAndSerial(owner, tokenId, serialNumber);
}

@NonNull
@Override
public NftMetadata getNftMetadata(TokenId tokenId) throws HieroException {
return mirrorNodeClient.getNftMetadata(tokenId);
}

@NonNull
@Override
public Page<NftMetadata> findTypesByOwner(@NonNull AccountId ownerId) throws HieroException {
return mirrorNodeClient.findNftTypesByOwner(ownerId);
}

@Override
public Page<NftMetadata> findAllTypes() throws HieroException {
return mirrorNodeClient.findAllNftTypes();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.openelements.hiero.base.data.NetworkStake;
import com.openelements.hiero.base.data.NetworkSupplies;
import com.openelements.hiero.base.data.Nft;
import com.openelements.hiero.base.data.NftMetadata;
import com.openelements.hiero.base.data.Page;
import com.openelements.hiero.base.data.TransactionInfo;
import java.util.List;
Expand Down Expand Up @@ -235,4 +236,13 @@ default Optional<AccountInfo> queryAccount(@NonNull String accountId) throws Hie
*/
@NonNull
Optional<NetworkSupplies> queryNetworkSupplies() throws HieroException;

@NonNull
NftMetadata getNftMetadata(TokenId tokenId) throws HieroException;

@NonNull
Page<NftMetadata> findNftTypesByOwner(AccountId ownerId);

@NonNull
Page<NftMetadata> findAllNftTypes();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.hedera.hashgraph.sdk.TokenId;
import com.openelements.hiero.base.HieroException;
import com.openelements.hiero.base.data.Nft;
import com.openelements.hiero.base.data.NftMetadata;
import com.openelements.hiero.base.data.Page;
import java.util.Objects;
import java.util.Optional;
Expand All @@ -14,6 +15,19 @@
*/
public interface NftRepository {

Page<NftMetadata> findAllTypes() throws HieroException;


@NonNull
Page<NftMetadata> findTypesByOwner(@NonNull AccountId ownerId) throws HieroException;

@NonNull
default Page<NftMetadata> findTypesByOwner(@NonNull String ownerId) throws HieroException {
Objects.requireNonNull(ownerId, "ownerId must not be null");
return findTypesByOwner(AccountId.fromString(ownerId));
}


/**
* Return all NFTs that are owned by the given owner.
*
Expand Down Expand Up @@ -140,4 +154,16 @@ default Optional<Nft> findByOwnerAndTypeAndSerial(@NonNull String owner, @NonNul
Objects.requireNonNull(tokenId, "tokenId must not be null");
return findByOwnerAndTypeAndSerial(AccountId.fromString(owner), TokenId.fromString(tokenId), serialNumber);
}

default NftMetadata getNftMetadata(String tokenId) throws HieroException {
Objects.requireNonNull(tokenId, "tokenId must not be null");
return getNftMetadata(TokenId.fromString(tokenId));
}

NftMetadata getNftMetadata(TokenId tokenId) throws HieroException;

default NftMetadata getNftMetadata(Nft nft) throws HieroException {
Objects.requireNonNull(nft, "nft must not be null");
return getNftMetadata(nft.tokenId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import com.openelements.hiero.base.implementation.FileClientImpl;
import com.openelements.hiero.base.implementation.HieroNetwork;
import com.openelements.hiero.base.implementation.NetworkRepositoryImpl;
import com.openelements.hiero.base.implementation.NetworkRepositoryImpl;
import com.openelements.hiero.base.implementation.NftRepositoryImpl;
import com.openelements.hiero.base.implementation.NftClientImpl;
import com.openelements.hiero.base.implementation.NftRepositoryImpl;
import com.openelements.hiero.base.implementation.ProtocolLayerClientImpl;
Expand All @@ -28,6 +30,7 @@
import com.openelements.hiero.microprofile.implementation.MirrorNodeClientImpl;
import com.openelements.hiero.microprofile.implementation.MirrorNodeJsonConverterImpl;
import com.openelements.hiero.microprofile.implementation.MirrorNodeRestClientImpl;
import com.openelements.hiero.microprofile.implementation.MirrorNodeClientImpl;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;
import jakarta.inject.Inject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.hedera.hashgraph.sdk.TokenId;
import com.openelements.hiero.base.HieroException;
import com.openelements.hiero.base.data.Nft;
import com.openelements.hiero.base.data.NftMetadata;
import com.openelements.hiero.base.data.Page;
import com.openelements.hiero.base.data.TransactionInfo;
import com.openelements.hiero.base.implementation.AbstractMirrorNodeClient;
Expand Down Expand Up @@ -62,4 +63,19 @@ public MirrorNodeClientImpl(MirrorNodeRestClient<JsonObject> restClient,
public @NonNull Optional<TransactionInfo> queryTransaction(@NonNull String transactionId) throws HieroException {
throw new RuntimeException("Not implemented");
}

@Override
public @NonNull NftMetadata getNftMetadata(TokenId tokenId) throws HieroException {
throw new RuntimeException("Not implemented");
}

@Override
public @NonNull Page<NftMetadata> findNftTypesByOwner(AccountId ownerId) {
throw new RuntimeException("Not implemented");
}

@Override
public @NonNull Page<NftMetadata> findAllNftTypes() {
throw new RuntimeException("Not implemented");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ void findById() throws Exception {
final Account account = accountClient.createAccount();
final AccountId newOwner = account.accountId();
//TODO: fix sleep
Thread.sleep(5_000);
Thread.sleep(10_000);

//when
final Optional<AccountInfo> result = accountRepository.findById(newOwner);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.hedera.hashgraph.sdk.TokenId;
import com.openelements.hiero.base.HieroException;
import com.openelements.hiero.base.data.Nft;
import com.openelements.hiero.base.data.NftMetadata;
import com.openelements.hiero.base.data.Page;
import com.openelements.hiero.base.data.TransactionInfo;
import com.openelements.hiero.base.implementation.AbstractMirrorNodeClient;
Expand Down Expand Up @@ -94,4 +95,18 @@ public Optional<TransactionInfo> queryTransaction(@NonNull final String transact
return Optional.of(new TransactionInfo(transactionId));
}

@Override
public @NonNull NftMetadata getNftMetadata(TokenId tokenId) throws HieroException {
throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public @NonNull Page<NftMetadata> findNftTypesByOwner(AccountId ownerId) {
throw new UnsupportedOperationException("Not yet implemented");
}

@Override
public @NonNull Page<NftMetadata> findAllNftTypes() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
Loading