import * as openpgp from 'openpgp'; import { SignShare, GShare } from '../../../../account-lib/mpc/tss'; import { Keychain } from '../../../keychain'; import { CustomGShareGeneratingFunction, CustomRShareGeneratingFunction, SignatureShareRecord, TSSParams, TxRequest } from '../baseTypes'; import { KeyShare, YShare } from './types'; import baseTSSUtils from '../baseTSSUtils'; import { KeychainsTriplet } from '../../../baseCoin'; /** * Utility functions for TSS work flows. */ export declare class EddsaUtils extends baseTSSUtils { /** * Creates a Keychain containing the User's TSS signing materials. * We need to have the passphrase be optional to allow for the client to store their backup key on their premises * * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server * @param userKeyShare - user's TSS key share * @param backupKeyShare - backup's TSS key share * @param bitgoKeychain - previously created BitGo keychain; must be compatible with user and backup key shares * @param [passphrase] - optional wallet passphrase used to encrypt user's signing materials * @param [originalPasscodeEncryptionCode] - optional encryption code needed for wallet password reset for hot wallets */ createUserKeychain(userGpgKey: openpgp.SerializedKeyPair, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase?: string, originalPasscodeEncryptionCode?: string): Promise; /** * Creates a Keychain containing the Backup party's TSS signing materials. * We need to have the passphrase be optional to allow for the client to store their backup key on their premises * * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server * @param userKeyShare - User's TSS Keyshare * @param backupKeyShare - Backup's TSS Keyshare * @param bitgoKeychain - previously created BitGo keychain; must be compatible with user and backup key shares * @param [passphrase] - optional wallet passphrase used to encrypt user's signing materials */ createBackupKeychain(userGpgKey: openpgp.SerializedKeyPair, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase?: string): Promise; /** * Creates a Keychain containing BitGo's TSS signing materials. * * @param userGpgKey - ephemeral GPG key to encrypt / decrypt sensitve data exchanged between user and server * @param userKeyShare - user's TSS key share * @param backupKeyShare - backup's TSS key share */ createBitgoKeychain(userGpgKey: openpgp.SerializedKeyPair, userKeyShare: KeyShare, backupKeyShare: KeyShare, enterprise?: string): Promise; /** * Creates User, Backup, and BitGo TSS Keychains. * * @param params.passphrase - passphrase used to encrypt signing materials created for User and Backup */ createKeychains(params: { passphrase?: string; enterprise?: string; originalPasscodeEncryptionCode?: string; }): Promise; createRShareFromTxRequest(params: { txRequest: TxRequest; prv: string; }): Promise<{ rShare: SignShare; signingKeyYShare: YShare; }>; createGShareFromTxRequest(params: { txRequest: string | TxRequest; prv: string; bitgoToUserRShare: SignatureShareRecord; userToBitgoRShare: SignShare; }): Promise; signUsingExternalSigner(txRequest: string | TxRequest, externalSignerRShareGenerator: CustomRShareGeneratingFunction, externalSignerGShareGenerator: CustomGShareGeneratingFunction): Promise; /** * Signs the transaction associated to the transaction request. * * @param txRequest - transaction request object or id * @param prv - decrypted private key * @param reqId - request id * @returns {Promise} fully signed TxRequest object */ signTxRequest(params: TSSParams): Promise; /** * Get the commonPub portion of the commonKeychain. * * @param {String} commonKeychain * @returns {string} */ static getPublicKeyFromCommonKeychain(commonKeychain: string): string; } /** * @deprecated - use EddsaUtils */ export declare const TssUtils: typeof EddsaUtils; //# sourceMappingURL=eddsa.d.ts.map