@signumjs/core
Version:
Principal package with functions and models for building Signum Network applications.
86 lines (85 loc) • 3.44 kB
TypeScript
import { TransactionId } from '../transactionId';
import { Alias } from '../alias';
import { UnsignedTransaction } from '../unsignedTransaction';
import { AliasList } from '../aliasList';
import { BuyAliasArgs, BuyTopLevelDomainArgs, GetAliasesOnSaleArgs, SellAliasArgs, SetAliasArgs, GetTopLevelDomainsArgs, SearchAliasesByNameArgs } from '../args';
import { TopLevelDomainList } from '../topLevelDomainList';
import { GetAliasesArgs } from '../args/getAliasesArgs';
/**
* Alias API
*
* The Alias API
*
* Aliases are Data Containers with ownership. They can carry up to 1KB of arbitrary data which can be updated and are also transferable.
* Aliases are very powerful and be used for a various applications:
* - Updateable NFTs
* - DNS like resolution (see also {@link standards.src47.URIResolver})
* - RWA linkage
* - ...
*
* @category api
*/
export interface AliasApi {
/**
* Get alias by its id, i.e. get basic account info for given alias name
* @param {string} aliasId The alias id
* @return {Promise<Alias>} The Alias object
*/
getAliasById: (aliasId: string) => Promise<Alias>;
/**
* Get alias by name, i.e. get basic account info for given alias name
* @param {string} aliasName The alias name
* @param {string} tld optional Top Level Domain. If not given, the default domain 'signum' is being used
* @return {Promise<Alias>} The Alias object
*/
getAliasByName: (aliasName: string, tld?: string) => Promise<Alias>;
/**
* Sets or Updates an Alias
* @param {SetAliasArgs} args The arguments
*
* @return The Transaction Id or Unsigned Bytes as Hex String if no private key was sent
*/
setAlias: (args: SetAliasArgs) => Promise<TransactionId | UnsignedTransaction>;
/**
* Get all aliases, which are on sale.
* @param {GetAliasesOnSaleArgs} args The arguments
* @return {Promise<Alias>} The Alias List (at maximum 500 per page)
*/
getAliasesOnSale: (args: GetAliasesOnSaleArgs) => Promise<AliasList>;
/**
* Buys an Alias
* @param args The args
*
* @return The Transaction Id or Unsigned Bytes as Hex String if no private key was sent
*/
buyAlias: (args: BuyAliasArgs) => Promise<TransactionId | UnsignedTransaction>;
/**
* Sells an Alias. Sales can be public if no recipient is defined, i.e. everybody can buy it, or
* only per account in case the recipient is given.
* @param args The args
*
* @return The Transaction Id or Unsigned Bytes as Hex String if no private key was sent
*/
sellAlias: (args: SellAliasArgs) => Promise<TransactionId | UnsignedTransaction>;
/**
* Searches for aliases by their name or part of the name
* @param args The args
*/
searchAliasesByName: (args: SearchAliasesByNameArgs) => Promise<AliasList>;
/**
* Gets all registered Top Level Domains
* @param args The args
*/
getTopLevelDomains: (args: GetTopLevelDomainsArgs) => Promise<TopLevelDomainList>;
/**
* Buys a Top Level Domain (TLD)
* @param args The args
*/
buyTopLevelDomain: (args: BuyTopLevelDomainArgs) => Promise<TransactionId | UnsignedTransaction>;
/**
* Gets the aliases
* @param {GetAliasesArgs} args
* @return {Promise<AliasList>} A list of aliases according the matches
*/
getAliases: (args: GetAliasesArgs) => Promise<AliasList>;
}