UNPKG

@radixdlt/atom

Version:

Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger

64 lines 2.39 kB
import { Signature } from '@radixdlt/crypto'; import { AddressT } from '@radixdlt/account'; import { DSONCodable, JSONEncodable } from '@radixdlt/data-formats'; import { SpunParticleQueryable, SpunParticles } from './particles/_types'; /** * A Radix resource identifier is a human readable index into the Ledger which points to a name state machine * * On format: `/:address/:name`, e.g. * `"/JH1P8f3znbyrDj8F4RWpix7hRkgxqHjdW2fNnKpR3v6ufXnknor/XRD"` */ export declare type ResourceIdentifierT = JSONEncodable & DSONCodable & Readonly<{ address: AddressT; name: string; toString: () => string; equals: (other: ResourceIdentifierT) => boolean; }>; /** * An Atom Identifier, made up of 256 bits of a hash. * The Atom ID is used so that Atoms can be located using just their hash id. */ export declare type AtomIdentifierT = DSONCodable & Readonly<{ toString: () => string; equals: (other: AtomIdentifierT) => boolean; }>; export declare type IsOwnerOfToken = () => boolean; export declare enum TokenPermission { TOKEN_OWNER_ONLY = "token_owner_only", ALL = "all", NONE = "none" } export declare enum TokenTransition { MINT = "mint", BURN = "burn" } export declare const SERIALIZER_KEY = "serializer"; export declare type TokenPermissions = JSONEncodable & DSONCodable & Readonly<{ permissions: Readonly<{ [key in TokenTransition]: TokenPermission; }>; canBeMinted: (isOwnerOfToken: IsOwnerOfToken) => boolean; canBeBurned: (isOwnerOfToken: IsOwnerOfToken) => boolean; mintPermission: TokenPermission; equals: (other: TokenPermissions) => boolean; }>; export declare type ParticleGroupT = JSONEncodable & DSONCodable & SpunParticleQueryable & Readonly<{ spunParticles: SpunParticles; }>; export declare type ParticleGroups = DSONCodable & SpunParticleQueryable & Readonly<{ groups: ParticleGroupT[]; }>; export declare type PublicKeyID = string; export declare type SignatureID = PublicKeyID; export declare type Signatures = Readonly<{ [key in SignatureID]: Signature; }>; export declare type AtomT = JSONEncodable & DSONCodable & SpunParticleQueryable & Readonly<{ particleGroups: ParticleGroups; signatures: Signatures; message?: string; equals: (other: AtomT) => boolean; identifier: () => AtomIdentifierT; isSigned: () => boolean; }>; //# sourceMappingURL=_types.d.ts.map