diff --git a/packages/proto-signing/src/index.ts b/packages/proto-signing/src/index.ts index ebc91f1a..2585de8f 100644 --- a/packages/proto-signing/src/index.ts +++ b/packages/proto-signing/src/index.ts @@ -3,5 +3,5 @@ export { cosmosField } from "./decorator"; export { Registry } from "./registry"; export { DirectSecp256k1Wallet } from "./directsecp256k1wallet"; export { decodePubkey, encodePubkey } from "./pubkey"; -export { OfflineDirectSigner, OfflineSigner } from "./signer"; +export { isOfflineDirectSigner, OfflineDirectSigner, OfflineSigner } from "./signer"; export { makeAuthInfoBytes, makeSignBytes, makeSignDoc } from "./signing"; diff --git a/packages/proto-signing/src/signer.ts b/packages/proto-signing/src/signer.ts index a5aca75b..424eeae8 100644 --- a/packages/proto-signing/src/signer.ts +++ b/packages/proto-signing/src/signer.ts @@ -20,3 +20,7 @@ export interface OfflineDirectSigner { } export type OfflineSigner = OfflineAminoSigner | OfflineDirectSigner; + +export function isOfflineDirectSigner(signer: OfflineSigner): signer is OfflineDirectSigner { + return (signer as any).signDirect !== undefined; +} diff --git a/packages/proto-signing/types/index.d.ts b/packages/proto-signing/types/index.d.ts index ebc91f1a..2585de8f 100644 --- a/packages/proto-signing/types/index.d.ts +++ b/packages/proto-signing/types/index.d.ts @@ -3,5 +3,5 @@ export { cosmosField } from "./decorator"; export { Registry } from "./registry"; export { DirectSecp256k1Wallet } from "./directsecp256k1wallet"; export { decodePubkey, encodePubkey } from "./pubkey"; -export { OfflineDirectSigner, OfflineSigner } from "./signer"; +export { isOfflineDirectSigner, OfflineDirectSigner, OfflineSigner } from "./signer"; export { makeAuthInfoBytes, makeSignBytes, makeSignDoc } from "./signing"; diff --git a/packages/proto-signing/types/signer.d.ts b/packages/proto-signing/types/signer.d.ts index dc2d9e98..2037b89a 100644 --- a/packages/proto-signing/types/signer.d.ts +++ b/packages/proto-signing/types/signer.d.ts @@ -16,3 +16,4 @@ export interface OfflineDirectSigner { ) => Promise; } export declare type OfflineSigner = OfflineAminoSigner | OfflineDirectSigner; +export declare function isOfflineDirectSigner(signer: OfflineSigner): signer is OfflineDirectSigner;