stellar-plus
Version:
beta version of stellar-plus, an all-in-one sdk for the Stellar blockchain
63 lines (62 loc) • 2.48 kB
TypeScript
import { AccountHandler } from '../../../stellar-plus/account/account-handler/types';
import { AssetType, AssetTypes } from '../../../stellar-plus/asset/types';
import { ClassicTransactionPipelineInput, ClassicTransactionPipelineOptions, ClassicTransactionPipelineOutput } from '../../../stellar-plus/core/pipelines/classic-transaction/types';
import { TransactionInvocation } from '../../../stellar-plus/core/types';
import { NetworkConfig } from '../../../stellar-plus/types';
export type ClassicAsset = AssetType & {
code: string;
issuerPublicKey?: string;
type: AssetTypes.native | AssetTypes.credit_alphanum4 | AssetTypes.credit_alphanum12;
};
export type ClassicAssetHandler = ClassicAsset & ClassicTokenInterface & ClassicUtils;
export type ClassicAssetHandlerConstructorArgs = {
code: string;
issuerAccount?: string | AccountHandler;
networkConfig: NetworkConfig;
options?: {
classicTransactionPipeline?: ClassicTransactionPipelineOptions;
};
};
export type ClassicTokenInterface = ClassicTokenInterfaceManagement & ClassicTokenInterfaceUser;
export type ClassicTokenInterfaceManagement = {
mint: (args: {
to: string;
amount: number;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
setFlags: (args: {
controlFlags: ControlFlags;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
};
export type ClassicTokenInterfaceUser = {
balance: (id: string) => Promise<number>;
transfer: (args: {
from: string;
to: string;
amount: number;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
burn: (args: {
from: string;
amount: number;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
decimals: () => Promise<number>;
name: () => Promise<string>;
symbol: () => Promise<string>;
};
export type ClassicUtils = {
addTrustlineAndMint: (args: {
to: string;
amount: number;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
addTrustline: (args: {
to: string;
} & BaseInvocation) => Promise<ClassicTransactionPipelineOutput>;
};
export type ControlFlags = {
authorizationRequired?: boolean;
authorizationRevocable?: boolean;
clawbackEnabled?: boolean;
authorizationImmutable?: boolean;
};
export type BaseInvocation = TransactionInvocation & {
options?: ClassicTransactionPipelineInput['options'];
};