From 362cfdb618ed7b159c9a05277a8da7223c805249 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 16 Jun 2020 14:17:18 +0100 Subject: [PATCH] demo-protobuf: Add register method to registry --- packages/demo-protobuf/src/registry.spec.ts | 12 ++++++------ packages/demo-protobuf/src/registry.ts | 4 ++++ packages/demo-protobuf/types/registry.d.ts | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/demo-protobuf/src/registry.spec.ts b/packages/demo-protobuf/src/registry.spec.ts index bca286d6..c45ecb98 100644 --- a/packages/demo-protobuf/src/registry.spec.ts +++ b/packages/demo-protobuf/src/registry.spec.ts @@ -39,13 +39,13 @@ describe("registry demo", () => { }); const txBodyBytes = TxBody.encode(txBody).finish(); - const txBodyDecoded = (TxBody.decode(txBodyBytes) as unknown) as cosmosSdk.tx.v1.TxBody; + const txBodyDecoded = TxBody.decode(txBodyBytes); const msg = txBodyDecoded.messages[0]; assert(msg.type_url); assert(msg.value); const decoder = registry.lookupType(msg.type_url)!; - const msgSendDecoded = (decoder.decode(msg.value) as unknown) as cosmosSdk.x.bank.v1.MsgSend; + const msgSendDecoded = decoder.decode(msg.value); // fromAddress and toAddress are now Buffers expect(Uint8Array.from(msgSendDecoded.fromAddress)).toEqual(msgSend.fromAddress); @@ -60,9 +60,9 @@ describe("registry demo", () => { const TxBody = registry.lookupType("/cosmos.tx.TxBody")!; const Any = registry.lookupType("/google.protobuf.Any")!; - const msgDemo = (MsgDemo.create({ + const msgDemo = MsgDemo.create({ example: "Some example text", - }) as unknown) as MsgDemo; + }); const msgDemoBytes = MsgDemo.encode(msgDemo).finish(); const msgDemoWrapped = Any.create({ type_url: typeUrl, @@ -76,13 +76,13 @@ describe("registry demo", () => { }); const txBodyBytes = TxBody.encode(txBody).finish(); - const txBodyDecoded = (TxBody.decode(txBodyBytes) as unknown) as cosmosSdk.tx.v1.TxBody; + const txBodyDecoded = TxBody.decode(txBodyBytes); const msg = txBodyDecoded.messages[0]; assert(msg.type_url); assert(msg.value); const decoder = registry.lookupType(msg.type_url)!; - const msgDemoDecoded = (decoder.decode(msg.value) as unknown) as MsgDemo; + const msgDemoDecoded = decoder.decode(msg.value); expect(msgDemoDecoded.example).toEqual(msgDemo.example); }); }); diff --git a/packages/demo-protobuf/src/registry.ts b/packages/demo-protobuf/src/registry.ts index 9dbf158e..9335a27e 100644 --- a/packages/demo-protobuf/src/registry.ts +++ b/packages/demo-protobuf/src/registry.ts @@ -21,6 +21,10 @@ export class Registry { ]); } + public register(name: string, type: GeneratedType): void { + this.types.set(name, type); + } + public lookupType(name: string): GeneratedType | undefined { return this.types.get(name); } diff --git a/packages/demo-protobuf/types/registry.d.ts b/packages/demo-protobuf/types/registry.d.ts index 4e4a2def..3cda7f19 100644 --- a/packages/demo-protobuf/types/registry.d.ts +++ b/packages/demo-protobuf/types/registry.d.ts @@ -14,6 +14,7 @@ interface GeneratedType { export declare class Registry { private readonly types; constructor(customTypes?: Iterable<[string, GeneratedType]>); + register(name: string, type: GeneratedType): void; lookupType(name: string): GeneratedType | undefined; } export {};