Telescope
Options

Options

Amino Encoding

optiondescriptiondefaults
aminoEncoding.enabledgenerate amino types and amino converterstrue
aminoEncoding.omitEmptyTagsAn array of strings that determines whether a field should be omitted when serialized to JSON. If the array includes "omitempty", any field with the "omitempty" option in either gogoproto.jsontag or cosmos_proto.json_tag will be omitted. If the array includes "dont_omitempty", the field will be omitted or not based on the value of "(amino.dont_omitempty)": if it's null or false, the field will be omitted; if it's true, the field will not be omitted.["omitempty", "dont_omitempty"]
aminoEncoding.disableMsgTypesdisable generating AminoMsg typesfalse
aminoEncoding.casingFnset the amino-casing function for a projectsnake()
aminoEncoding.exceptionsset specific aminoType name exceptionssee code
aminoEncoding.typeUrlToAminocreate functions for aminoType name exceptionsundefined
aminoEncoding.useLegacyInlineEncoding@deprecated. To use legacy inline encoding instead of using v2 recursive encodingfalse
aminoEncoding.useRecursiveV2encodingthis's been removed. See useLegacyInlineEncoding instead.
aminoEncoding.legacy.useNullHandlinghandle null case when generating legacy amino converters(those in tx.amino.ts)
aminoEncoding.legacy.useOmitEmptyhandle omit empty or not when generating legacy amino converters(those in tx.amino.ts)

Implemented Interface Options

optiondescriptiondefaults
interfaces.enabledenables converters convert between Any type and specific implemented interfaces.true
interfaces.useGlobalDecoderRegistryenables GlobalDecoderRegistry and related functions. Highly recommended to enable when dealing with fields with 'accepted_interface' option. Please see 'packages/telescope/tests/impl-interfaces.test.ts' for usage.false
interfaces.useUseInterfacesParamsdecides if add useInterfaces argument to decode and toAmino functions.false
interfaces.useByDefaultdecides if interface decoders are used by default (default for useInterfaces argument to decode and toAmino functions).true
interfaces.useByDefaultRpcdecides if interface decoders are used by default by the RPC clients.true
interfaces.useUnionTypesGenerate Any type as union types(TextProposal | RegisterIncentiveProposal) instead of intersection types(TextProposal & RegisterIncentiveProposal).false

Prototypes Options

optiondescriptiondefaults
prototypes.enabledenables the generation of proto encoding methodstrue
prototypes.includePackageVarexport a protoPackage variable to indicate package namefalse
prototypes.includes.packagesinclude a set of packages when transpilation. (if a package both meet include and exclude, it'll be excluded)undefined
prototypes.includes.protosinclude a set of proto files when transpilation. (if a proto both meet include and exclude, it'll be excluded)undefined
prototypes.excluded.packagesexclude a set of packages from transpilationundefined
prototypes.excluded.protostry to exclude a set of proto files from transpilation. if files inside the list are dependencies to other files, they'll be still transpiled.undefined
prototypes.excluded.hardProtosexclude a set of proto files from transpilation. Files in this list will be excluded no mater it's dependency to other files or not.undefined
prototypes.fieldDefaultIsOptionalboolean value representing default optionality of fieldfalse
prototypes.useOptionalNullableuse (gogoproto.nullable) values in determining optionalitytrue
prototypes.allowUndefinedTypesboolean value allowing Types to be undefinedfalse
prototypes.allowEncodeDefaultScalarsboolean value allowing encoders encoding default values of scalar types. e.g. empty string, 0 or falsefalse
prototypes.optionalQueryParamsboolean value setting queryParams to be optionalfalse
prototypes.optionalPageRequestsboolean value setting PageRequest fields to optionalfalse
prototypes.addTypeUrlToDecodersadd $typeUrl field to generated interfacestrue
prototypes.addAminoTypeToObjectsadd aminoType field to generated Decodersfalse
prototypes.addTypeUrlToObjectsadd typeUrl field to generated Decoderstrue
prototypes.enableRegistryLoadergenerate Registry loader to *.registry.ts filestrue
prototypes.enableMessageComposergenerate MessageComposer to *.registry.ts filestrue

Prototypes Methods

optiondescriptiondefaults
prototypes.methods.encodeboolean to enable encode method on proto objectstrue
prototypes.methods.decodeboolean to enable decode method on proto objectstrue
prototypes.methods.fromJSONboolean to enable fromJSON method on proto objectstrue
prototypes.methods.toJSONboolean to enable toJSON method on proto objectstrue
prototypes.methods.fromPartialboolean to enable fromPartial method on proto objectstrue
prototypes.methods.fromSDKboolean to enable fromSDK method on proto objectsfalse
prototypes.methods.toSDKboolean to enable toSDK method on proto objectsfalse

LCD Client Options

optiondescriptiondefaults
lcdClients.enabledgenerate LCD clients that can query proto Query messagestrue
lcdClients.bundlewill generate factory bundle aggregate of all LCD Clientstrue
lcdClients.scopedwill generate factory of scoped LCD Clientsundefined
lcdClients.scopedIsExclusivewill allow both scoped bundles and all RPC Clientstrue

See LCD Clients for more info.

RPC Client Options

optiondescriptiondefaults
rpcClients.typewill generate this type of RPC client (tendermint, gRPC-web, gRPC)tendermint
rpcClients.enabledgenerate RPC clients that can interact with proto messagestrue
rpcClients.bundlewill generate factory bundle aggregate of all RPC Clientstrue
rpcClients.camelCaseuse camel-case for RPC methods when generating RPC clientstrue
rpcClients.scopedwill generate factory of scoped RPC Clientsundefined
rpcClients.scopedIsExclusivewill allow both scoped bundles and all RPC Clientstrue
rpcClients.enabledServiceswhich services to enable[Msg,Query,Service]
rpcClients.instantOpswill generate instant rpc operations in the file service-ops.ts under root folder, which contains customized classes having selected rpc methodsundefined
rpcClients.serviceImplementassign implement type of rpc methods, Query or Tx, by setting patterns under service types.undefined

See RPC Clients for more info.

Stargate Client Options

optiondescriptiondefaults
stargateClients.includeCosmosDefaultTypesif true, will include the cosmjs defaults with stargate clientstrue (except cosmos package)
stargateClients.addGetTxRpcif true, will add getSigningTxRpc to clients in namespacesfalse

State Management

React Query

optiondescriptiondefaults
reactQuery.enabledif true, will create react hooks that use @tanstack/react-query hooksfalse
reactQuery.needExtraQueryKeyif true, users can input extra react query key to some customized hooks. e.g.['rpcEndpoint', 'yourExtraKey']false
reactQuery.include.protosif set, will create the hooks on matched proto filenames or patterns using minimatch[]
reactQuery.include.packagesif set, will create the hooks on matched packages files using minimatch[]
reactQuery.include.patternsif set, will create the hooks on matched patterns of files using minimatch(deprecated in favor of packages and protos have been supported minimatch)[]
reactQuery.instantExport.include.patternsif set, will expose instant hooks on matched patterns of packages + method(e.g. cosmos.bank.v1beta1.useBalance) using minimatch. If there're duplicated method names in multiple packages without setting reactQuery.instantExport.nameMapping, one duplicated name will created like: useCosmosBankV1beta1Balance[]
reactQuery.instantExport.nameMappingmap an alias to a package + method in case of better naming of duplicated method names. (e.g. useBankBalance: cosmos.bank.v1beta1.useBalance) Customized hook name is set in front of pkg+method, by doing this we can prevent duplicate alias.{}

Mobx

optiondescriptiondefaults
mobx.enabledif true, will create mobx stores that use mobxfalse
mobx.include.protosif set, will create the mobx stores on matched proto filenames or patterns using minimatch[]
mobx.include.packagesif set, will create the mobx stores on matched packages files using minimatch[]
mobx.include.patternsif set, will create the mobx stores on matched patterns of proto files using minimatch(deprecated in favor of packages and protos have been supported minimatch)[]

Pinia

optiondescriptiondefaults
pinia.enabledif true, will create pinia stores that use piniafalse
mobx.include.protosif set, will create the pinia stores on matched proto filenames or patterns using minimatch[]
mobx.include.packagesif set, will create the pinia stores on matched packages files using minimatch[]
mobx.include.patternsif set, will create the pinia stores on matched patterns of proto files using minimatch(deprecated in favor of packages and protos have been supported minimatch)[]

Typings and Formating

optiondescriptiondefaults
prototypes.typingsFormat.customTypes.useCosmosSDKDecenable handling "prototypes.typingsFormat.customTypes.useCosmosSDKDec" proto custom type. Used to show decimal fields with the custom type correctly. Highly recommend set to true.true
prototypes.typingsFormat.num64'long' or 'bigint', the way of generating int64 proto types, set to 'bigint' to enable using more stable built-in typebigint
prototypes.typingsFormat.useTelescopeGeneratedTypeDiscard GeneratedType from cosmjs, use TelescopeGeneratedType instead inside *.registry.ts filesfalse
prototypes.typingsFormat.useDeepPartialdefaults to true, but if disabled uses the Partial TS typefalse
prototypes.typingsFormat.useExactdefaults to false, but if enabled uses the Exact TS typefalse
prototypes.typingsFormat.timestampuse either date or timestamp for Timestamp proto type"date"
prototypes.typingsFormat.durationuse either duration or string for Duration proto type"duration"
prototypes.typingsFormat.setDefaultEnumToUnrecognizedfalse: enum empty value would be 0, true: -1(value for enum unrecognized)true
prototypes.typingsFormat.setDefaultCustomTypesToUndefinedtrue: Timestamp,Duration,Any,Coin empty value would be undefined., false: using fromPartial to get an empty objfalse

Protobuf parser

optiondescriptiondefaults
prototypes.parser.keepCasepasses keepCase to protobuf parse() to keep original casingtrue
prototypes.parser.alternateCommentModepasses alternateCommentMode to protobuf parse() methodtrue
prototypes.parser.preferTrailingCommentpasses preferTrailingComment to protobuf parse() methodfalse

Typescript Disabling

optiondescriptiondefaults
tsDisable.disableAllif true, will include //@ts-nocheck on every output filefalse
tsDisable.patternsif set, will include //@ts-nocheck on matched patterns[]
tsDisable.filesif set, will include //@ts-nocheck on matched files[]

ESLint Disabling

optiondescriptiondefaults
eslintDisable.disableAllif true, will include /* eslint-disable */ on every output filefalse
eslintDisable.patternsif set, will include /* eslint-disable */ on matched patterns[]
eslintDisable.filesif set, will include /* eslint-disable */ on matched files[]

Bundle

optiondescriptiondefaults
bundle.enabledbundle all files into a scoped index filetrue

Output

optiondescriptiondefaults
env'default' or 'v-next', set to 'v-next' to enable yet to release featuresdefault
removeUnusedImportsremoves unused importstrue
classesUseArrowFunctionsclasses use arrow functions instead of bind()ing in constructorsfalse
includeExternalHelpersexports a few helpers functions in extern.tsfalse
restoreImportExtensionrestore extensions of imported paths. e.g: '.js'. null means no extnull