From 15fdb34d911b7b7ed1cf0a80d7240be888372adb Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 30 Jun 2020 15:37:43 +0200 Subject: [PATCH] proto-signing: Remove TxBody and Any from registry --- packages/proto-signing/src/decorator.spec.ts | 6 ++++-- packages/proto-signing/src/registry.spec.ts | 11 +++-------- packages/proto-signing/src/registry.ts | 14 ++++++-------- packages/proto-signing/types/registry.d.ts | 6 +++--- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/packages/proto-signing/src/decorator.spec.ts b/packages/proto-signing/src/decorator.spec.ts index 40f072bd..6c68aaba 100644 --- a/packages/proto-signing/src/decorator.spec.ts +++ b/packages/proto-signing/src/decorator.spec.ts @@ -3,8 +3,12 @@ import { assert } from "@cosmjs/utils"; import { Message } from "protobufjs"; import { cosmosField, cosmosMessage } from "./decorator"; +import { cosmos_sdk as cosmosSdk, google } from "./generated/codecimpl"; import { Registry } from "./registry"; +const { TxBody } = cosmosSdk.tx.v1; +const { Any } = google.protobuf; + describe("decorator demo", () => { it("works with a custom msg", () => { const nestedTypeUrl = "/demo.MsgNestedDemo"; @@ -44,8 +48,6 @@ describe("decorator demo", () => { const MsgNestedDemoT = myRegistry.lookupType(nestedTypeUrl)!; const MsgDemoT = myRegistry.lookupType(typeUrl)!; - const TxBody = myRegistry.lookupType("/cosmos.tx.TxBody")!; - const Any = myRegistry.lookupType("/google.protobuf.Any")!; const msgNestedDemoFields = { foo: "bar", diff --git a/packages/proto-signing/src/registry.spec.ts b/packages/proto-signing/src/registry.spec.ts index c45ecb98..df31df02 100644 --- a/packages/proto-signing/src/registry.spec.ts +++ b/packages/proto-signing/src/registry.spec.ts @@ -2,20 +2,17 @@ import { assert } from "@cosmjs/utils"; import { MsgDemo as MsgDemoType } from "./demo"; -import { cosmos_sdk as cosmosSdk } from "./generated/codecimpl"; +import { cosmos_sdk as cosmosSdk, google } from "./generated/codecimpl"; import { Registry } from "./registry"; -type MsgDemo = { - readonly example: string; -}; +const { TxBody } = cosmosSdk.tx.v1; +const { Any } = google.protobuf; describe("registry demo", () => { it("works with a default msg", () => { const registry = new Registry(); const Coin = registry.lookupType("/cosmos.Coin")!; const MsgSend = registry.lookupType("/cosmos.bank.MsgSend")!; - const TxBody = registry.lookupType("/cosmos.tx.TxBody")!; - const Any = registry.lookupType("/google.protobuf.Any")!; const coin = Coin.create({ denom: "ucosm", @@ -57,8 +54,6 @@ describe("registry demo", () => { const typeUrl = "/demo.MsgDemo"; const registry = new Registry([[typeUrl, MsgDemoType]]); const MsgDemo = registry.lookupType(typeUrl)!; - const TxBody = registry.lookupType("/cosmos.tx.TxBody")!; - const Any = registry.lookupType("/google.protobuf.Any")!; const msgDemo = MsgDemo.create({ example: "Some example text", diff --git a/packages/proto-signing/src/registry.ts b/packages/proto-signing/src/registry.ts index ef210e70..e726b1f5 100644 --- a/packages/proto-signing/src/registry.ts +++ b/packages/proto-signing/src/registry.ts @@ -23,8 +23,8 @@ export type TxBodyValue = { readonly messages: readonly EncodeObject[]; readonly memo?: string; readonly timeoutHeight?: number; - readonly extensionOptions?: readonly any[]; - readonly nonCriticalExtensionOptions?: readonly any[]; + readonly extensionOptions?: google.protobuf.IAny[]; + readonly nonCriticalExtensionOptions?: google.protobuf.IAny[]; }; const defaultTypeUrls = { @@ -38,12 +38,10 @@ export class Registry { private readonly types: Map; constructor(customTypes: Iterable<[string, GeneratedType]> = []) { - const { cosmosCoin, cosmosMsgSend, cosmosTxBody, googleAny } = defaultTypeUrls; + const { cosmosCoin, cosmosMsgSend } = defaultTypeUrls; this.types = new Map([ [cosmosCoin, cosmosSdk.v1.Coin], [cosmosMsgSend, cosmosSdk.x.bank.v1.MsgSend], - [cosmosTxBody, cosmosSdk.tx.v1.TxBody], - [googleAny, google.protobuf.Any], ...customTypes, ]); } @@ -74,8 +72,8 @@ export class Registry { } public encodeTxBody(txBodyFields: TxBodyValue): Uint8Array { - const TxBody = this.lookupTypeWithError(defaultTypeUrls.cosmosTxBody); - const Any = this.lookupTypeWithError(defaultTypeUrls.googleAny); + const { TxBody } = cosmosSdk.tx.v1; + const { Any } = google.protobuf; const wrappedMessages = txBodyFields.messages.map((message) => { const messageBytes = this.encode(message); @@ -100,7 +98,7 @@ export class Registry { } public decodeTxBody(txBody: Uint8Array): cosmosSdk.tx.v1.TxBody { - const TxBody = this.lookupTypeWithError(defaultTypeUrls.cosmosTxBody); + const { TxBody } = cosmosSdk.tx.v1; const decodedTxBody = TxBody.decode(txBody); return { diff --git a/packages/proto-signing/types/registry.d.ts b/packages/proto-signing/types/registry.d.ts index c7cb0ec8..7be662d9 100644 --- a/packages/proto-signing/types/registry.d.ts +++ b/packages/proto-signing/types/registry.d.ts @@ -1,5 +1,5 @@ import protobuf from "protobufjs"; -import { cosmos_sdk as cosmosSdk } from "./generated/codecimpl"; +import { cosmos_sdk as cosmosSdk, google } from "./generated/codecimpl"; export interface GeneratedType { readonly create: (properties?: { [k: string]: any }) => any; readonly encode: ( @@ -24,8 +24,8 @@ export declare type TxBodyValue = { readonly messages: readonly EncodeObject[]; readonly memo?: string; readonly timeoutHeight?: number; - readonly extensionOptions?: readonly any[]; - readonly nonCriticalExtensionOptions?: readonly any[]; + readonly extensionOptions?: google.protobuf.IAny[]; + readonly nonCriticalExtensionOptions?: google.protobuf.IAny[]; }; export declare class Registry { private readonly types;