@faktoryfun/core-sdk
Version:
The official SDK for interacting with Faktory tokens and DEX contracts
138 lines (137 loc) • 4.92 kB
TypeScript
import { AnchorMode, PostConditionMode } from "@stacks/transactions";
import type { UIntCV, ContractPrincipalCV } from "@stacks/transactions";
import type { FaktorySDKConfig, ReadResponse, TokenDeploymentInput, TokenDeploymentResponse, TokenTradesResponse, TransferVerification, VerifiedTokensResponse } from "./types";
export declare class FaktorySDK {
SBTC_CONTRACT: {
mainnet: {
address: string;
name: string;
assetName: string;
};
testnet: {
address: string;
name: string;
assetName: string;
};
devnet: {
address: string;
name: string;
assetName: string;
};
mocknet: {
address: string;
name: string;
assetName: string;
};
};
private readonly apiHost;
private readonly apiKey;
private readonly network;
private readonly hiroApiKey?;
constructor(config: FaktorySDKConfig);
private fetch;
getTokenDeployParams(input: TokenDeploymentInput): Promise<TokenDeploymentResponse>;
getBuyParams({ dexContract, inAmount, // amount is in STX or BTC units
senderAddress, slippage, }: {
dexContract: string;
inAmount: number;
senderAddress: string;
slippage?: number;
}): Promise<{
contractAddress: string;
contractName: string;
functionName: string;
functionArgs: Array<UIntCV | ContractPrincipalCV>;
network: import("@stacks/network").StacksNetwork;
anchorMode: AnchorMode;
postConditionMode: PostConditionMode;
postConditions: (import("@stacks/transactions").FungiblePostCondition | import("@stacks/transactions").STXPostCondition)[];
}>;
getSellParams({ dexContract, amount, // amount is in TOKEN units
senderAddress, slippage, }: {
dexContract: string;
amount: number;
senderAddress: string;
slippage?: number;
}): Promise<{
contractAddress: string;
contractName: string;
functionName: string;
functionArgs: Array<UIntCV | ContractPrincipalCV>;
network: import("@stacks/network").StacksNetwork;
anchorMode: AnchorMode;
postConditionMode: PostConditionMode;
postConditions: (import("@stacks/transactions").FungiblePostCondition | import("@stacks/transactions").STXPostCondition)[];
}>;
private isExternalDex;
getIn(dexContract: string, senderAddress: string, stx: number): Promise<ReadResponse>;
getOut(dexContract: string, senderAddress: string, amount: number): Promise<ReadResponse>;
getOpen(dexContract: string, senderAddress: string): Promise<ReadResponse>;
getVerifiedTokens(options?: {
search?: string;
sortOrder?: string;
page?: number;
limit?: number;
daoOnly?: boolean;
}): Promise<VerifiedTokensResponse>;
getDaoTokens(options?: {
search?: string;
sortOrder?: string;
page?: number;
limit?: number;
}): Promise<VerifiedTokensResponse>;
private getTokenInfo;
verifyTransfer(tokenAddress: string): Promise<TransferVerification>;
getToken(dexContract: string): Promise<{
success: boolean;
data: {
id: string;
name: string;
symbol: string;
description: string;
tokenContract: string;
dexContract: string;
txId: string | null;
targetAmm: string;
supply: number;
decimals: number;
targetStx: number;
progress: number;
price: number;
price24hChanges: number;
tradingVolume: number;
holders: number;
tokenToDex: string;
tokenToDeployer: string;
stxToDex: number;
stxBuyFirstFee: number;
logoUrl: string | null;
mediaUrl: string | null;
uri: string | null;
twitter: string | null;
website: string | null;
telegram: string | null;
discord: string | null;
chatCount: number;
txsCount: number;
creatorAddress: string;
deployedAt: string;
tokenHash: string;
tokenVerified: number;
dexHash: string;
dexVerified: number;
tokenVerifiedAt: string;
dexVerifiedAt: string;
status: string;
tokenChainhookUuid: string | null;
tradingHookUuid: string | null;
lastBuyHash: string | null;
daoToken: boolean;
priceUsd?: number;
volumeUsd?: number;
marketCap?: number;
denomination: string;
};
}>;
getTokenTrades(tokenContract: string): Promise<TokenTradesResponse>;
}