From 8742cbf6c9b0d9ea5143efd10e3b6b473ec658c8 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Wed, 23 Jul 2025 10:33:06 -0700 Subject: [PATCH] Add rolodex to type definition file. --- src/types.d.ts | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/src/types.d.ts b/src/types.d.ts index 95210ee..4f5f371 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -290,6 +290,69 @@ export type KeyPair = { publicKey?: Key } +/** +* Represents a basic address book of Nano accounts. Multiple addresses can be +* saved under one nickname. +*/ +export declare class Rolodex { + /** + * Adds an address to the rolodex under a specific nickname. + * + * If the name exists, add the address as a new association to that name. If + * the account exists under a different name, update the name. If no matches + * are found at all, add a new entry. + * + * @param {string} name - Contact alias for the address + * @param {string} address - Nano account address + * @returns {Promise} Promise for true if name and address are added to the rolodex, else false + */ + static add (name: string, address: string): Promise + /** + * Removes a Nano address from its related contact in the rolodex. + * + * @param {string} address - Nano account address + * @returns {Promise} Promise for true if address successfully removed, else false + */ + static deleteAddress (address: string): Promise + /** + * Removes a contact and its related Nano addresses from the rolodex. + * + * @param {string} name - Contact name to delete + * @returns {Promise} Promise for true if name and related addresses successfully removed, else false + */ + static deleteName (name: string): Promise + /** + * Gets all Nano account addresses associated with a name from the rolodex. + * + * @param {string} name - Alias to look up + * @returns {Promise} Promise for a list of Nano addresses associated with the name + */ + static getAddresses (name: string): Promise + /** + * Gets all names stored in the rolodex. + * + * @returns {Promise} Promise for a list of all names stored in the rolodex + */ + static getAllNames (): Promise + /** + * Gets the name associated with a specific Nano address from the rolodex. + * + * @param {string} address - Nano account address + * @returns {Promise} Promise for the name associated with the address, or null if not found + */ + static getName (address: string): Promise + /** + * Verifies whether the public key of any Nano address saved under a specific + * name in the rolodex was used to sign a specific set of data. + * + * @param {string} name - Alias to look up + * @param {string} signature - Signature to use for verification + * @param {...string} data - Signed data to verify + * @returns {Promise} True if the signature was used to sign the data, else false + */ + static verify (name: string, signature: string, ...data: string[]): Promise +} + /** * Processes a queue of tasks using Web Workers. */ -- 2.47.3