@aptos-labs/ts-sdk
Version:
Aptos TypeScript SDK
113 lines • 3.96 kB
TypeScript
import { type GetANSNameResponse } from "./indexer.js";
export type RawANSName = GetANSNameResponse[0];
/**
* The token standard for the ANS name. v1 is the original token standard, v2 is
* the new token standard. v1 has been deprecated.
*/
export type AnsTokenStandard = "v1" | "v2";
/**
* Policy for determining how subdomains expire in relation to their parent domain.
*/
export declare enum SubdomainExpirationPolicy {
/**
* The subdomain will expire independently of the domain. The owner of the
* domain can manually set when the subdomain expires.
*/
Independent = 0,
/**
* The subdomain will expire at the same time as the domain.
*/
FollowsDomain = 1
}
/**
* The status of the name.
*/
export declare enum ExpirationStatus {
/**
* The name no longer functions as a primary or target name. It is open to
* being claimed by the public.
*/
Expired = "expired",
/**
* The name is past it's expiration date, but only claimable by the current
* owner of the name. It does not function as a primary or target name.
*/
InGracePeriod = "in_grace_period",
/**
* The name is in good standing.
*/
Active = "active"
}
export interface AnsName extends RawANSName {
/**
* The domain name. ie "aptos.apt" would have a domain of "aptos".
*
* The indexer schema marks this field as nullable, so it is surfaced as
* `string | undefined` here rather than fabricating a placeholder when the
* indexer returns null. Callers should treat a missing `domain` as a bad row.
*/
domain?: string;
/**
* The subdomain name, if the name is a subdomain. ie "name.aptos.apt" would have a subdomain of "name"
*/
subdomain?: string;
/**
* The expiration timestamp of the name in milliseconds since epoch. Note, if
* the name is not a subdomain, this will be the same as the domain expiration
* timestamp.
*/
expiration_timestamp: string;
/**
* The expiration timestamp of the domain in milliseconds since epoch.
*/
domain_expiration_timestamp: string;
/**
* This is a derived date value. It takes into consideration if the name is a
* subdomain and its expiration policy.
*/
expiration: Date;
/**
* The status of the name's expiration.
*
* 1. Expired: The name has expired and is no longer resolvable.
* 2. InGracePeriod: The name is within the grace period and is still
* resolvable if it is renewed.
* 3. Active: The name is active and is resolvable.
*
* @see {@link ExpirationStatus}
*/
expiration_status: ExpirationStatus;
/**
* The address that the name points to. For example, if you send a transaction
* to "aptos.apt" with a target address of "0x1", the registered_address will
* be "0x1".
*/
registered_address?: string;
/**
* The token standard for the name. See {@link AnsTokenStandard} for more details.
*
* Nullable upstream — surfaced as optional instead of fabricating `"v2"`.
*/
token_standard?: AnsTokenStandard;
/**
* If the name is registered as a primary name for _any_ account. It is
* possible to have multiple primary names returned in a single query.
*
* Nullable upstream — surfaced as optional instead of defaulting to `false`.
*/
is_primary?: boolean;
/**
* The address of the wallet that owns the name.
*/
owner_address?: string;
/**
* The expiration policy for the subdomain. See {@link SubdomainExpirationPolicy} for more details.
*/
subdomain_expiration_policy: SubdomainExpirationPolicy;
/**
* Whether the name is in the renewable period. This incorporates leading time
* before the name expires and the grace period after the name expires.
*/
isInRenewablePeriod: boolean;
}
//# sourceMappingURL=ans.d.ts.map