/// import { StdSignature } from '../core'; import { StdTx } from '../core'; import { StdSignMsg } from '../core'; import { AccAddress, AccPubKey, ValAddress, ValPubKey } from '../core'; /** * Abstract key interface that provides transaction signing features and Bech32 address * and public key derivation from a public key. This allows you to create custom key * solutions, such as for various hardware wallets, by implementing signing and calling * `super` with the raw public key from within your subclass. See [[MnemonicKey]] for * an implementation of a basic mnemonic-based key. */ export declare abstract class Key { publicKey?: Buffer | undefined; /** * You will need to supply `sign`, which produces a signature for an arbitrary bytes payload * with the ECDSA curve secp256pk1. * * @param payload the data to be signed */ abstract sign(payload: Buffer): Promise; rawAddress?: Buffer; rawPubKey?: Buffer; /** * Terra account address. `terra-` prefixed. */ get accAddress(): AccAddress; /** * Terra validator address. `terravaloper-` prefixed. */ get valAddress(): ValAddress; /** * Terra account public key. `terrapub-` prefixed. */ get accPubKey(): AccPubKey; /** * Terra validator public key. `terravaloperpub-` prefixed. */ get valPubKey(): ValPubKey; /** * Called to derive the relevant account and validator addresses and public keys from * the raw compressed public key in bytes. * * @param publicKey raw compressed bytes public key */ constructor(publicKey?: Buffer | undefined); /** * Signs a [[StdSignMsg]] with the method supplied by the child class. * * @param tx sign-message of the transaction to sign */ createSignature(tx: StdSignMsg): Promise; /** * Signs a [[StdSignMsg]] and adds the signature to a generated StdTx that is ready to be broadcasted. * @param tx */ signTx(tx: StdSignMsg): Promise; }