import { AminoSignResponse } from "@cosmjs/amino"; import { AccountData, DirectSignResponse, OfflineSigner, } from "@cosmjs/proto-signing"; import { AddressGroup, Signer, SignerType } from "@iov/signer-types"; export class ViewOnlySigner implements Signer { public readonly type: SignerType = SignerType.ViewOnly; private readonly address: string; constructor(address: string) { this.address = address; } public async getPublicKey(): Promise { return ""; } public async getAddress(): Promise { return this.address; } public async getAddressGroup(): Promise { return Promise.resolve({}); } public async initialize(): Promise { return Promise.resolve(true); } public getAccounts(): Promise { return Promise.resolve([]); } public signDirect(): Promise { throw new Error("This is a view only mode, you cannot sign transactions"); } public signAlephMessage(): Promise { throw new Error("This is a view only mode, you cannot sign transactions"); } public getOfflineSigner(): OfflineSigner { throw new Error("This is a view only mode, you cannot sign transactions"); } public disconnect(): void { return; } }