"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getClasses = exports.getClass = exports.getNFT = exports.getNFTs = exports.getSupply = exports.getOwner = exports.getBalance = void 0;
const helper_func_types_1 = require("../../../helper-func-types");
const query_1 = require("./query");
/**
 * Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721
 * @name getBalance
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.Balance
 */
exports.getBalance = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryBalanceRequest.encode,
    decode: query_1.QueryBalanceResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "Balance",
    deps: [query_1.QueryBalanceRequest, query_1.QueryBalanceResponse]
});
/**
 * Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721
 * @name getOwner
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.Owner
 */
exports.getOwner = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryOwnerRequest.encode,
    decode: query_1.QueryOwnerResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "Owner",
    deps: [query_1.QueryOwnerRequest, query_1.QueryOwnerResponse]
});
/**
 * Supply queries the number of NFTs from the given class, same as totalSupply of ERC721.
 * @name getSupply
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.Supply
 */
exports.getSupply = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QuerySupplyRequest.encode,
    decode: query_1.QuerySupplyResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "Supply",
    deps: [query_1.QuerySupplyRequest, query_1.QuerySupplyResponse]
});
/**
 * NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in
 * ERC721Enumerable
 * @name getNFTs
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.NFTs
 */
exports.getNFTs = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryNFTsRequest.encode,
    decode: query_1.QueryNFTsResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "NFTs",
    deps: [query_1.QueryNFTsRequest, query_1.QueryNFTsResponse]
});
/**
 * NFT queries an NFT based on its class and id.
 * @name getNFT
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.NFT
 */
exports.getNFT = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryNFTRequest.encode,
    decode: query_1.QueryNFTResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "NFT",
    deps: [query_1.QueryNFTRequest, query_1.QueryNFTResponse]
});
/**
 * Class queries an NFT class based on its id
 * @name getClass
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.Class
 */
exports.getClass = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryClassRequest.encode,
    decode: query_1.QueryClassResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "Class",
    deps: [query_1.QueryClassRequest, query_1.QueryClassResponse]
});
/**
 * Classes queries all NFT classes
 * @name getClasses
 * @package cosmos.nft.v1beta1
 * @see proto service: cosmos.nft.v1beta1.Classes
 */
exports.getClasses = (0, helper_func_types_1.buildQuery)({
    encode: query_1.QueryClassesRequest.encode,
    decode: query_1.QueryClassesResponse.decode,
    service: "cosmos.nft.v1beta1.Query",
    method: "Classes",
    deps: [query_1.QueryClassesRequest, query_1.QueryClassesResponse]
});
