quartz/wallet/node_modules/@3rdweb/sdk/dist/modules/royalty.d.ts
2022-03-04 20:05:23 +08:00

182 lines
6.2 KiB
TypeScript

import { Royalty } from "@3rdweb/contracts";
import { BigNumber } from "ethers";
import { ModuleType } from "../common";
import { Currency, CurrencyValue } from "../common/currency";
import { Module } from "../core/module";
import { SplitRecipient } from "../types/SplitRecipient";
export interface ISplitsModule {
/**
* Returns a list of all recipients with their
* respective split percentages.
*
*/
getAllRecipients(): Promise<SplitRecipient[]>;
/**
* Get the split percentage of a recipient.
*
* @param address - The address of the recipient.
*/
getRecipientSplitPercentage(address: string): Promise<SplitRecipient>;
/**
* Returns the amount of royalty available for a recipient
* to withdraw in the native currency.
*
* @param address - The address of the recipient to check the balance of.
*/
balanceOf(address: string): Promise<BigNumber>;
/**
* Returns the amount of royalty available for a recipient
* to withdraw in the native currency in a specific currency.
*
* @param walletAddress - The address of the recipient to check the balance of.
* @param tokenAddress - The address of the currency to check the balance in.
*/
balanceOfToken(walletAddress: string, tokenAddress: string): Promise<CurrencyValue>;
/**
* Transaction that will withdraw the split amount of royalty that
* the `address` is owed and transfer it to the wallet.
*
* @param address - The address to withdraw royalties for.
*/
withdraw(address: string): Promise<void>;
/**
* Transaction that will withdraw the split amount of royalty that
* the `address` is owed and transfer it to the wallet, in the
* currency specified by `tokenAddress`.
*
* For example: If the native currency of a chain is ETH but the user
* wants to withdraw their split in $MATIC, they should pass
* the address of the $MATIC token as the `tokenAddress` parameter.
*
* @param walletAddress - The address to withdraw royalties for.
*/
withdrawToken(walletAddress: string, tokenAddress: string): Promise<void>;
/**
* Distributes all funds to the recipients.
*/
distribute(): Promise<void>;
/**
* Distributes all funds to the recipients in the specified currency.
*
* @param tokenAddress - The address of the currency to distribute the funds in.
*/
distributeToken(tokenAddress: string): Promise<void>;
}
/**
* Create custom royalty splits to distribute funds.
*
* @example
*
* ```javascript
* import { ThirdwebSDK } from "@3rdweb/sdk";
*
* // You can switch out this provider with any wallet or provider setup you like.
* const provider = ethers.Wallet.createRandom();
* const sdk = new ThirdwebSDK(provider);
* const module = sdk.getSplitsModule("{{module_address}}");
* ```
*
* @public
*/
export declare class SplitsModule extends Module<Royalty> implements ISplitsModule {
static moduleType: ModuleType;
/**
* @internal
*/
protected connectContract(): Royalty;
/**
* @internal
*/
protected getModuleType(): ModuleType;
get(): Promise<Currency>;
/**
* Get Recipients
*
* @remarks Get the data about the shares of every split recipient on the module
*
* @example
* ```javascript
* const recipients = await module.getAllRecepients();
* console.log(recipients);
* ```
*/
getAllRecipients(): Promise<SplitRecipient[]>;
/**
*
* Returns all the recipients and their balances in the native currency.
* @returns A map of recipient addresses to their balances in the native currency.
*
*/
balanceOfAllRecipients(): Promise<{
[key: string]: BigNumber;
}>;
/**
*
* Returns all the recipients and their balances in a non-native currency.
* @param tokenAddress - The address of the currency to check the balances in.
* @returns A map of recipient addresses to their balances in the specified currency.
*
*/
balanceOfTokenAllRecipients(tokenAddress: string): Promise<{
[key: string]: CurrencyValue;
}>;
getRecipientSplitPercentage(address: string): Promise<SplitRecipient>;
/**
* Get Funds
*
* @remarks Get the amount of funds in the native currency held by the module thats owed to a specific recipient.
*
* @example
* ```javascript
* // The address to check the funds of
* const address = "{{wallet_address}}";
* const funds = await module.balanceOf(address);
* console.log(funds);
* ```
*/
balanceOf(address: string): Promise<BigNumber>;
/**
* Get Token Funds
*
* @remarks Get the amount of funds in the non-native tokens held by the module thats owed to a specific recipient.
*
* @example
* ```javascript
* // The address to check the funds of
* const address = "{{wallet_address}}";
* // The address of the currency to check the contracts funds of
* const tokenAddress = "0x..."
* const funds = await module.balanceOfToken(address, tokenAddress);
* console.log(funds);
* ```
*/
balanceOfToken(walletAddress: string, tokenAddress: string): Promise<CurrencyValue>;
withdraw(address: string): Promise<void>;
private _pendingPayment;
withdrawToken(walletAddress: string, tokenAddress: string): Promise<void>;
/**
* Distribute Funds
*
* @remarks Distribute funds held by the contract in the native currency to all recipients.
*
* @example
* ```javascript
* await module.distribute();
* ```
*/
distribute(): Promise<void>;
/**
* Distribute Funds
*
* @remarks Distribute funds held by the contract in the native currency to all recipients.
*
* @example
* ```javascript
* // The address of the currency to distribute funds
* const tokenAddress = "0x..."
* await module.distributeToken(tokenAddress);
* ```
*/
distributeToken(tokenAddress: string): Promise<void>;
}