mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-11 14:09:15 +00:00
demo-protobuf: Add shallow CosmosMessage decorator
This commit is contained in:
parent
2c90fdf029
commit
e9193996a9
@ -1,13 +1,18 @@
|
||||
import { Field, Message, Type } from "protobufjs";
|
||||
|
||||
import { Registry } from "./registry";
|
||||
import { GeneratedType, Registry } from "./registry";
|
||||
|
||||
export const myRegistry = new Registry();
|
||||
|
||||
function CosmosMessage(registry: Registry, typeUrl: string) {
|
||||
return (generatedType: GeneratedType) => {
|
||||
registry.register(typeUrl, generatedType);
|
||||
};
|
||||
}
|
||||
|
||||
@CosmosMessage(myRegistry, "/demo.MsgDemo")
|
||||
@Type.d("MsgDemo")
|
||||
export class MsgDemo extends Message<{}> {
|
||||
@Field.d(1, "string")
|
||||
public readonly example: string = "";
|
||||
}
|
||||
|
||||
myRegistry.register("/demo.MsgDemo", MsgDemo);
|
||||
|
@ -2,7 +2,7 @@ import protobuf from "protobufjs";
|
||||
|
||||
import { cosmos_sdk as cosmosSdk, google } from "./generated/codecimpl";
|
||||
|
||||
interface GeneratedType {
|
||||
export interface GeneratedType {
|
||||
readonly create: (properties?: { [k: string]: any }) => any;
|
||||
readonly encode: (message: any | { [k: string]: any }, writer?: protobuf.Writer) => protobuf.Writer;
|
||||
readonly decode: (reader: protobuf.Reader | Uint8Array, length?: number) => any;
|
||||
|
3
packages/demo-protobuf/types/registry.d.ts
vendored
3
packages/demo-protobuf/types/registry.d.ts
vendored
@ -1,5 +1,5 @@
|
||||
import protobuf from "protobufjs";
|
||||
interface GeneratedType {
|
||||
export interface GeneratedType {
|
||||
readonly create: (properties?: { [k: string]: any }) => any;
|
||||
readonly encode: (
|
||||
message:
|
||||
@ -17,4 +17,3 @@ export declare class Registry {
|
||||
register(name: string, type: GeneratedType): void;
|
||||
lookupType(name: string): GeneratedType | undefined;
|
||||
}
|
||||
export {};
|
||||
|
Loading…
x
Reference in New Issue
Block a user