@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
89 lines (88 loc) • 4.34 kB
TypeScript
import { Address, GetContractReturnType, Hash, Hex, Log } from 'viem';
import { BaseClientMixin, BaseGasEstimatesMixin, BaseTransactions } from './base';
import { ls1155CloneAbi } from '../constants/abi/ls1155Clone';
import type { SplitsClientConfig, CreateLiquidSplitConfig, DistributeLiquidSplitTokenConfig, TransferLiquidSplitOwnershipConfig, CallData, TransactionConfig, TransactionFormat, ReadContractArgs, SplitsPublicClient } from '../types';
type LS1155Abi = typeof ls1155CloneAbi;
declare class LiquidSplitTransactions extends BaseTransactions {
constructor(transactionClientArgs: SplitsClientConfig & TransactionConfig);
protected _createLiquidSplitTransaction({ recipients, distributorFeePercent, owner, chainId, transactionOverrides, }: CreateLiquidSplitConfig): Promise<TransactionFormat>;
protected _distributeTokenTransaction({ liquidSplitAddress, token, distributorAddress, chainId, transactionOverrides, }: DistributeLiquidSplitTokenConfig): Promise<TransactionFormat>;
protected _transferOwnershipTransaction({ liquidSplitAddress, newOwner, transactionOverrides, }: TransferLiquidSplitOwnershipConfig): Promise<TransactionFormat>;
private _requireOwner;
protected _getLiquidSplitContract(liquidSplit: string, chainId: number): GetContractReturnType<LS1155Abi, SplitsPublicClient>;
}
export declare class LiquidSplitClient extends LiquidSplitTransactions {
readonly eventTopics: {
[key: string]: Hex[];
};
readonly callData: LiquidSplitCallData;
readonly estimateGas: LiquidSplitGasEstimates;
constructor(clientArgs: SplitsClientConfig);
_submitCreateLiquidSplitTransaction(createLiquidSplitArgs: CreateLiquidSplitConfig): Promise<{
txHash: Hash;
}>;
createLiquidSplit(createLiquidSplitArgs: CreateLiquidSplitConfig): Promise<{
liquidSplitAddress: Address;
event: Log;
}>;
_submitDistributeTokenTransaction(distributeTokenArgs: DistributeLiquidSplitTokenConfig): Promise<{
txHash: Hash;
}>;
distributeToken(distributeTokenArgs: DistributeLiquidSplitTokenConfig): Promise<{
event: Log;
}>;
_submitTransferOwnershipTransaction(transferOwnershipArgs: TransferLiquidSplitOwnershipConfig): Promise<{
txHash: Hash;
}>;
transferOwnership(transferOwnershipArgs: TransferLiquidSplitOwnershipConfig): Promise<{
event: Log;
}>;
getDistributorFee({ liquidSplitAddress, chainId, }: ReadContractArgs & {
liquidSplitAddress: string;
}): Promise<{
distributorFee: number;
}>;
getPayoutSplit({ liquidSplitAddress, chainId, }: ReadContractArgs & {
liquidSplitAddress: string;
}): Promise<{
payoutSplitAddress: Address;
}>;
getOwner({ liquidSplitAddress, chainId, }: ReadContractArgs & {
liquidSplitAddress: string;
}): Promise<{
owner: Address;
}>;
getUri({ liquidSplitAddress, chainId, }: ReadContractArgs & {
liquidSplitAddress: string;
}): Promise<{
uri: string;
}>;
getScaledPercentBalanceOf({ liquidSplitAddress, address, chainId, }: ReadContractArgs & {
liquidSplitAddress: string;
address: string;
}): Promise<{
scaledPercentBalance: number;
}>;
getNftImage({ liquidSplitAddress, }: {
liquidSplitAddress: string;
}): Promise<{
image: string;
}>;
}
export interface LiquidSplitClient extends BaseClientMixin {
}
declare class LiquidSplitGasEstimates extends LiquidSplitTransactions {
constructor(clientArgs: SplitsClientConfig);
createLiquidSplit(createLiquidSplitArgs: CreateLiquidSplitConfig): Promise<bigint>;
distributeToken(distributeTokenArgs: DistributeLiquidSplitTokenConfig): Promise<bigint>;
transferOwnership(transferOwnershipArgs: TransferLiquidSplitOwnershipConfig): Promise<bigint>;
}
interface LiquidSplitGasEstimates extends BaseGasEstimatesMixin {
}
declare class LiquidSplitCallData extends LiquidSplitTransactions {
constructor(clientArgs: SplitsClientConfig);
createLiquidSplit(createLiquidSplitArgs: CreateLiquidSplitConfig): Promise<CallData>;
distributeToken(distributeTokenArgs: DistributeLiquidSplitTokenConfig): Promise<CallData>;
transferOwnership(transferOwnershipArgs: TransferLiquidSplitOwnershipConfig): Promise<CallData>;
}
export {};