// @generated by protoc-gen-es v2.2.2 with parameter "target=ts,import_extension=.js"
// @generated from file gfxcafe/oku/account/v1/tokens.proto (package gfxcafe.oku.account.v1, syntax proto3)
/* eslint-disable */

import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
import { file_gfxcafe_oku_account_v1_common } from "./common_pb.js";
import { file_buf_validate_validate } from "../../../../buf/validate/validate_pb.js";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file gfxcafe/oku/account/v1/tokens.proto.
 */
export const file_gfxcafe_oku_account_v1_tokens: GenFile = /*@__PURE__*/
  fileDesc("CiNnZnhjYWZlL29rdS9hY2NvdW50L3YxL3Rva2Vucy5wcm90bxIWZ2Z4Y2FmZS5va3UuYWNjb3VudC52MSK+AQoFVG9rZW4SLgoHYWRkcmVzcxgBIAEoCUIdukgayAEBchUyE14weFswLTlhLWZBLUZdezQwfSQSFgoGc3ltYm9sGAIgASgJQga6SAPIAQESFAoEbmFtZRgDIAEoCUIGukgDyAEBEhwKCGRlY2ltYWxzGAQgASgFQgq6SAcaBRj/ASgAEhAKCGxvZ29fdXJsGAUgASgJEhEKCWlzX25hdGl2ZRgGIAEoCBIUCgxpc19zdXBwb3J0ZWQYByABKAgiXAoTQ2hhaW5BZGRyZXNzUmVxdWVzdBIVCgVjaGFpbhgBIAEoCUIGukgDyAEBEi4KB2FkZHJlc3MYAiABKAlCHbpIGsgBAXIVMhNeMHhbMC05YS1mQS1GXXs0MH0kIkQKFENoYWluQWRkcmVzc1Jlc3BvbnNlEiwKBXRva2VuGAEgASgLMh0uZ2Z4Y2FmZS5va3UuYWNjb3VudC52MS5Ub2tlbjJ6Cg1Ub2tlbnNTZXJ2aWNlEmkKDENoYWluQWRkcmVzcxIrLmdmeGNhZmUub2t1LmFjY291bnQudjEuQ2hhaW5BZGRyZXNzUmVxdWVzdBosLmdmeGNhZmUub2t1LmFjY291bnQudjEuQ2hhaW5BZGRyZXNzUmVzcG9uc2VCNFoyZ2Z4LmNhZmUvb2t1L2FjY291bnQvZ2VuL2dvL2dmeGNhZmUvb2t1L2FjY291bnQvdjFiBnByb3RvMw", [file_gfxcafe_oku_account_v1_common, file_buf_validate_validate]);

/**
 * Token information
 *
 * @generated from message gfxcafe.oku.account.v1.Token
 */
export type Token = Message<"gfxcafe.oku.account.v1.Token"> & {
  /**
   * @generated from field: string address = 1;
   */
  address: string;

  /**
   * @generated from field: string symbol = 2;
   */
  symbol: string;

  /**
   * @generated from field: string name = 3;
   */
  name: string;

  /**
   * @generated from field: int32 decimals = 4;
   */
  decimals: number;

  /**
   * @generated from field: string logo_url = 5;
   */
  logoUrl: string;

  /**
   * @generated from field: bool is_native = 6;
   */
  isNative: boolean;

  /**
   * @generated from field: bool is_supported = 7;
   */
  isSupported: boolean;
};

/**
 * Describes the message gfxcafe.oku.account.v1.Token.
 * Use `create(TokenSchema)` to create a new message.
 */
export const TokenSchema: GenMessage<Token> = /*@__PURE__*/
  messageDesc(file_gfxcafe_oku_account_v1_tokens, 0);

/**
 * Request to get a single token
 *
 * @generated from message gfxcafe.oku.account.v1.ChainAddressRequest
 */
export type ChainAddressRequest = Message<"gfxcafe.oku.account.v1.ChainAddressRequest"> & {
  /**
   * Chain identifier (e.g., "1", "ethereum", "eip155:1")
   *
   * @generated from field: string chain = 1;
   */
  chain: string;

  /**
   * @generated from field: string address = 2;
   */
  address: string;
};

/**
 * Describes the message gfxcafe.oku.account.v1.ChainAddressRequest.
 * Use `create(ChainAddressRequestSchema)` to create a new message.
 */
export const ChainAddressRequestSchema: GenMessage<ChainAddressRequest> = /*@__PURE__*/
  messageDesc(file_gfxcafe_oku_account_v1_tokens, 1);

/**
 * Response with token details
 *
 * @generated from message gfxcafe.oku.account.v1.ChainAddressResponse
 */
export type ChainAddressResponse = Message<"gfxcafe.oku.account.v1.ChainAddressResponse"> & {
  /**
   * @generated from field: gfxcafe.oku.account.v1.Token token = 1;
   */
  token?: Token;
};

/**
 * Describes the message gfxcafe.oku.account.v1.ChainAddressResponse.
 * Use `create(ChainAddressResponseSchema)` to create a new message.
 */
export const ChainAddressResponseSchema: GenMessage<ChainAddressResponse> = /*@__PURE__*/
  messageDesc(file_gfxcafe_oku_account_v1_tokens, 2);

/**
 * TokensService provides token information and metadata
 *
 * @generated from service gfxcafe.oku.account.v1.TokensService
 */
export const TokensService: GenService<{
  /**
   * Get token details by chain and address (/tokens/{chain}/{address})
   *
   * @generated from rpc gfxcafe.oku.account.v1.TokensService.ChainAddress
   */
  chainAddress: {
    methodKind: "unary";
    input: typeof ChainAddressRequestSchema;
    output: typeof ChainAddressResponseSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_gfxcafe_oku_account_v1_tokens, 0);

