@radixdlt/atom
Version:
Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger
64 lines • 2.39 kB
TypeScript
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