diff --git a/packages/proto-signing/src/accounts.ts b/packages/proto-signing/src/accounts.ts index 2e359a94..dd19ebdf 100644 --- a/packages/proto-signing/src/accounts.ts +++ b/packages/proto-signing/src/accounts.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { Message } from "protobufjs"; -import { cosmosField, cosmosMessage } from "./decorator"; +import { cosmosField, registered } from "./decorator"; import { defaultRegistry } from "./msgs"; -@cosmosMessage(defaultRegistry, "/cosmos.auth.BaseAccount") +@registered(defaultRegistry, "/cosmos.auth.BaseAccount") export class BaseAccount extends Message { @cosmosField.bytes(1) public readonly address?: Uint8Array; diff --git a/packages/proto-signing/src/decorator.spec.ts b/packages/proto-signing/src/decorator.spec.ts index dd63dbe7..0f18f152 100644 --- a/packages/proto-signing/src/decorator.spec.ts +++ b/packages/proto-signing/src/decorator.spec.ts @@ -2,7 +2,7 @@ import { assert } from "@cosmjs/utils"; import { Message } from "protobufjs"; -import { cosmosField, cosmosMessage } from "./decorator"; +import { cosmosField, registered } from "./decorator"; import { cosmos, google } from "./generated/codecimpl"; import { Registry } from "./registry"; @@ -15,13 +15,13 @@ describe("decorator demo", () => { const typeUrl = "/demo.MsgDemo"; const myRegistry = new Registry(); - @cosmosMessage(myRegistry, nestedTypeUrl) + @registered(myRegistry, nestedTypeUrl) class MsgNestedDemo extends Message { @cosmosField.string(1) public readonly foo?: string; } - @cosmosMessage(myRegistry, typeUrl) + @registered(myRegistry, typeUrl) // eslint-disable-next-line @typescript-eslint/no-unused-vars class MsgDemo extends Message { @cosmosField.boolean(1) diff --git a/packages/proto-signing/src/decorator.ts b/packages/proto-signing/src/decorator.ts index 2edfdadd..fd8245ef 100644 --- a/packages/proto-signing/src/decorator.ts +++ b/packages/proto-signing/src/decorator.ts @@ -7,7 +7,11 @@ function getTypeName(typeUrl: string): string { return parts[parts.length - 1]; } -export function cosmosMessage(registry: Registry, typeUrl: string): TypeDecorator { +/** + * A class decorator to register this type under the given type URL + * in the given registry. + */ +export function registered(registry: Registry, typeUrl: string): TypeDecorator { return (ctor: Constructor>) => { const typeName = getTypeName(typeUrl); const generatedType = util.decorateType(ctor, typeName); diff --git a/packages/proto-signing/src/magic.spec.ts b/packages/proto-signing/src/magic.spec.ts index 5c73bf31..f9f93271 100644 --- a/packages/proto-signing/src/magic.spec.ts +++ b/packages/proto-signing/src/magic.spec.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { Message } from "protobufjs"; -import { cosmosField, cosmosMessage } from "./decorator"; +import { cosmosField, registered } from "./decorator"; import { Registry } from "./registry"; describe("registry magic demo", () => { @@ -10,13 +10,13 @@ describe("registry magic demo", () => { const typeUrl = "/demo.MsgMagic"; const myRegistry = new Registry(); - @cosmosMessage(myRegistry, nestedTypeUrl) + @registered(myRegistry, nestedTypeUrl) class MsgNestedMagic extends Message { @cosmosField.string(1) public readonly foo?: string; } - @cosmosMessage(myRegistry, typeUrl) + @registered(myRegistry, typeUrl) class MsgMagic extends Message { @cosmosField.boolean(1) public readonly booleanDemo?: boolean; diff --git a/packages/proto-signing/src/msgs.ts b/packages/proto-signing/src/msgs.ts index e7f5ccc6..b2774207 100644 --- a/packages/proto-signing/src/msgs.ts +++ b/packages/proto-signing/src/msgs.ts @@ -1,12 +1,12 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { Message } from "protobufjs"; -import { cosmosField, cosmosMessage } from "./decorator"; +import { cosmosField, registered } from "./decorator"; import { Registry } from "./registry"; export const defaultRegistry = new Registry(); -@cosmosMessage(defaultRegistry, "/cosmos.Coin") +@registered(defaultRegistry, "/cosmos.Coin") export class Coin extends Message { @cosmosField.string(1) public readonly denom?: string; @@ -15,7 +15,7 @@ export class Coin extends Message { public readonly amount?: string; } -@cosmosMessage(defaultRegistry, "/cosmos.bank.MsgSend") +@registered(defaultRegistry, "/cosmos.bank.MsgSend") export class MsgSend extends Message { @cosmosField.bytes(1) public readonly from_address?: Uint8Array; diff --git a/packages/proto-signing/types/decorator.d.ts b/packages/proto-signing/types/decorator.d.ts index 1b2095da..c59c9878 100644 --- a/packages/proto-signing/types/decorator.d.ts +++ b/packages/proto-signing/types/decorator.d.ts @@ -1,6 +1,10 @@ import { Constructor, Message, TypeDecorator } from "protobufjs"; import { Registry } from "./registry"; -export declare function cosmosMessage(registry: Registry, typeUrl: string): TypeDecorator; +/** + * A class decorator to register this type under the given type URL + * in the given registry. + */ +export declare function registered(registry: Registry, typeUrl: string): TypeDecorator; /** * Like PropertyDecorator from lib.es5.d.ts but without symbol support in propertyKey. */