@0xsplits/splits-sdk
Version:
SDK for the 0xSplits protocol
1,361 lines • 51 kB
TypeScript
import { Address, GetContractReturnType, Hash, Log } from 'viem';
import { SplitV1CreatedLogType, SplitV1UpdatedLogType } from '../constants';
import { splitMainEthereumAbi } from '../constants/abi/splitMain';
import type { AcceptControlTransferConfig, BatchDistributeAndWithdrawConfig, BatchDistributeAndWithdrawForAllConfig, CallData, CancelControlTransferConfig, CreateSplitConfig, DistributeTokenConfig, FormattedSplitEarnings, GetSplitBalanceConfig, InitiateControlTransferConfig, MakeSplitImmutableConfig, Split, SplitRecipient, SplitsClientConfig, SplitsPublicClient, TransactionConfig, TransactionFormat, UpdateSplitAndDistributeTokenConfig, UpdateSplitConfig, WithdrawFundsConfig } from '../types';
import { BaseClientMixin, BaseGasEstimatesMixin, BaseTransactions } from './base';
type SplitMainEthereumAbiType = typeof splitMainEthereumAbi;
declare class SplitV1Transactions extends BaseTransactions {
constructor(transactionClientArgs: SplitsClientConfig & TransactionConfig);
protected _createSplitTransaction({ recipients, distributorFeePercent, controller, chainId, transactionOverrides, }: CreateSplitConfig): Promise<TransactionFormat>;
protected _updateSplitTransaction({ splitAddress, recipients, distributorFeePercent, chainId, transactionOverrides, }: UpdateSplitConfig): Promise<TransactionFormat>;
protected _distributeTokenTransaction({ splitAddress, token, distributorAddress, chainId, splitFields, transactionOverrides, }: DistributeTokenConfig): Promise<TransactionFormat>;
protected _updateSplitAndDistributeTokenTransaction({ splitAddress, token, recipients, distributorFeePercent, distributorAddress, chainId, transactionOverrides, }: UpdateSplitAndDistributeTokenConfig): Promise<TransactionFormat>;
protected _withdrawFundsTransaction({ address, tokens, chainId, transactionOverrides, }: WithdrawFundsConfig): Promise<TransactionFormat>;
protected _initiateControlTransferTransaction({ splitAddress, newController, chainId, transactionOverrides, }: InitiateControlTransferConfig): Promise<TransactionFormat>;
protected _cancelControlTransferTransaction({ splitAddress, chainId, transactionOverrides, }: CancelControlTransferConfig): Promise<TransactionFormat>;
protected _acceptControlTransferTransaction({ splitAddress, chainId, transactionOverrides, }: AcceptControlTransferConfig): Promise<TransactionFormat>;
protected _makeSplitImmutableTransaction({ splitAddress, chainId, transactionOverrides, }: MakeSplitImmutableConfig): Promise<TransactionFormat>;
protected _batchDistributeAndWithdrawTransaction({ splitAddress, tokens, recipientAddresses, distributorAddress, }: BatchDistributeAndWithdrawConfig, distributeFunc: (args: DistributeTokenConfig) => Promise<CallData>, withdrawFunc: (args: WithdrawFundsConfig) => Promise<CallData>): Promise<TransactionFormat>;
protected _batchDistributeAndWithdrawForAllTransaction({ splitAddress, tokens, distributorAddress, chainId, }: BatchDistributeAndWithdrawForAllConfig, distributeFunc: (args: DistributeTokenConfig) => Promise<CallData>, withdrawFunc: (args: WithdrawFundsConfig) => Promise<CallData>): Promise<TransactionFormat>;
protected _checkForSplitExistence({ splitAddress, chainId, }: {
splitAddress: Address;
chainId: number;
}): Promise<void>;
protected _getSplitMetadataViaProvider({ splitAddress, chainId, cachedData, }: {
splitAddress: Address;
chainId: number;
cachedData?: {
blocks?: {
createBlock: bigint;
updateBlock?: bigint;
latestScannedBlock: bigint;
};
blockRange?: bigint;
};
}): Promise<{
split: Split;
blockRange: bigint;
}>;
protected _buildSplitFromLogs({ splitAddress, chainId, createLog, updateLog, }: {
splitAddress: Address;
chainId: number;
createLog: SplitV1CreatedLogType;
updateLog?: SplitV1UpdatedLogType;
}): Promise<Split>;
private _requireController;
private _requireNewPotentialController;
protected _getSplitMainContract(chainId: number): GetContractReturnType<SplitMainEthereumAbiType, SplitsPublicClient>;
protected _getSplitMainAbi(chainId: number): readonly [{
readonly inputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "Create2Error";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "CreateError";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "InvalidNewController";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "accountsLength";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "allocationsLength";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AccountsAndAllocationsMismatch";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AccountsOutOfOrder";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AllocationMustBePositive";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint32";
readonly name: "allocationsSum";
readonly type: "uint32";
}];
readonly name: "InvalidSplit__InvalidAllocationsSum";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "InvalidSplit__InvalidDistributorFee";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes32";
readonly name: "hash";
readonly type: "bytes32";
}];
readonly name: "InvalidSplit__InvalidHash";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "accountsLength";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__TooFewAccounts";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "sender";
readonly type: "address";
}];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "CancelControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousController";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "ControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "CreateSplit";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "DistributeERC20";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "DistributeETH";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newPotentialController";
readonly type: "address";
}];
readonly name: "InitiateControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "UpdateSplit";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "ethAmount";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "contract ERC20[]";
readonly name: "tokens";
readonly type: "address[]";
}, {
readonly indexed: false;
readonly internalType: "uint256[]";
readonly name: "tokenAmounts";
readonly type: "uint256[]";
}];
readonly name: "Withdrawal";
readonly type: "event";
}, {
readonly inputs: readonly [];
readonly name: "PERCENTAGE_SCALE";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "acceptControl";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "cancelControlTransfer";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "controller";
readonly type: "address";
}];
readonly name: "createSplit";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "distributeERC20";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "distributeETH";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getController";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}];
readonly name: "getERC20Balance";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "getETHBalance";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getHash";
readonly outputs: readonly [{
readonly internalType: "bytes32";
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getNewPotentialController";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "makeSplitImmutable";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "predictImmutableSplitAddress";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "transferControl";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "updateAndDistributeERC20";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "updateAndDistributeETH";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "updateSplit";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "walletImplementation";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "withdrawETH";
readonly type: "uint256";
}, {
readonly internalType: "contract ERC20[]";
readonly name: "tokens";
readonly type: "address[]";
}];
readonly name: "withdraw";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}] | readonly [{
readonly inputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
readonly inputs: readonly [];
readonly name: "Create2Error";
readonly type: "error";
}, {
readonly inputs: readonly [];
readonly name: "CreateError";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "InvalidNewController";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "accountsLength";
readonly type: "uint256";
}, {
readonly internalType: "uint256";
readonly name: "allocationsLength";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AccountsAndAllocationsMismatch";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AccountsOutOfOrder";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "index";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__AllocationMustBePositive";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint32";
readonly name: "allocationsSum";
readonly type: "uint32";
}];
readonly name: "InvalidSplit__InvalidAllocationsSum";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "InvalidSplit__InvalidDistributorFee";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "bytes32";
readonly name: "hash";
readonly type: "bytes32";
}];
readonly name: "InvalidSplit__InvalidHash";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "uint256";
readonly name: "accountsLength";
readonly type: "uint256";
}];
readonly name: "InvalidSplit__TooFewAccounts";
readonly type: "error";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "sender";
readonly type: "address";
}];
readonly name: "Unauthorized";
readonly type: "error";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "CancelControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "previousController";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "ControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly indexed: false;
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly indexed: false;
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly indexed: false;
readonly internalType: "address";
readonly name: "controller";
readonly type: "address";
}];
readonly name: "CreateSplit";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "DistributeERC20";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "amount";
readonly type: "uint256";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "DistributeETH";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: true;
readonly internalType: "address";
readonly name: "newPotentialController";
readonly type: "address";
}];
readonly name: "InitiateControlTransfer";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly indexed: false;
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly indexed: false;
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "UpdateSplit";
readonly type: "event";
}, {
readonly anonymous: false;
readonly inputs: readonly [{
readonly indexed: true;
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly indexed: false;
readonly internalType: "uint256";
readonly name: "ethAmount";
readonly type: "uint256";
}, {
readonly indexed: false;
readonly internalType: "contract ERC20[]";
readonly name: "tokens";
readonly type: "address[]";
}, {
readonly indexed: false;
readonly internalType: "uint256[]";
readonly name: "tokenAmounts";
readonly type: "uint256[]";
}];
readonly name: "Withdrawal";
readonly type: "event";
}, {
readonly inputs: readonly [];
readonly name: "PERCENTAGE_SCALE";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "acceptControl";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "cancelControlTransfer";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "controller";
readonly type: "address";
}];
readonly name: "createSplit";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "distributeERC20";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "distributeETH";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getController";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}];
readonly name: "getERC20Balance";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}];
readonly name: "getETHBalance";
readonly outputs: readonly [{
readonly internalType: "uint256";
readonly name: "";
readonly type: "uint256";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getHash";
readonly outputs: readonly [{
readonly internalType: "bytes32";
readonly name: "";
readonly type: "bytes32";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "getNewPotentialController";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly name: "makeSplitImmutable";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "predictImmutableSplitAddress";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "newController";
readonly type: "address";
}];
readonly name: "transferControl";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "contract ERC20";
readonly name: "token";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "updateAndDistributeERC20";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}, {
readonly internalType: "address";
readonly name: "distributorAddress";
readonly type: "address";
}];
readonly name: "updateAndDistributeETH";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "split";
readonly type: "address";
}, {
readonly internalType: "address[]";
readonly name: "accounts";
readonly type: "address[]";
}, {
readonly internalType: "uint32[]";
readonly name: "percentAllocations";
readonly type: "uint32[]";
}, {
readonly internalType: "uint32";
readonly name: "distributorFee";
readonly type: "uint32";
}];
readonly name: "updateSplit";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
readonly inputs: readonly [];
readonly name: "walletImplementation";
readonly outputs: readonly [{
readonly internalType: "address";
readonly name: "";
readonly type: "address";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
readonly inputs: readonly [{
readonly internalType: "address";
readonly name: "account";
readonly type: "address";
}, {
readonly internalType: "uint256";
readonly name: "withdrawETH";
readonly type: "uint256";
}, {
readonly internalType: "contract ERC20[]";
readonly name: "tokens";
readonly type: "address[]";
}];
readonly name: "withdraw";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}];
}
export declare class SplitV1Client extends SplitV1Transactions {
readonly callData: SplitV1CallData;
readonly estimateGas: SplitV1GasEstimates;
constructor(clientArgs: SplitsClientConfig);
getEventTopics(chainId: number): {
createSplit: `0x${string}`[];
updateSplit: `0x${string}`[];
distributeToken: `0x${string}`[];
updateSplitAndDistributeToken: `0x${string}`[];
withdrawFunds: `0x${string}`[];
initiateControlTransfer: `0x${string}`[];
cancelControlTransfer: `0x${string}`[];
acceptControlTransfer: `0x${string}`[];
makeSplitImmutable: `0x${string}`[];
};
_submitCreateSplitTransaction(createSplitArgs: CreateSplitConfig): Promise<{
txHash: Hash;
}>;
createSplit(createSplitArgs: CreateSplitConfig): Promise<{
splitAddress: Address;
event: Log;
}>;
_submitUpdateSplitTransaction(updateSplitArgs: UpdateSplitConfig): Promise<{
txHash: Hash;
}>;
updateSplit(updateSplitArgs: UpdateSplitConfig): Promise<{
event: Log;
}>;
_submitDistributeTokenTransaction(distributeTokenArgs: DistributeTokenConfig): Promise<{
txHash: Hash;
}>;
distributeToken(distributeTokenArgs: DistributeTokenConfig): Promise<{
event: Log;
}>;
_submitUpdateSplitAndDistributeTokenTransaction(updateAndDistributeArgs: UpdateSplitAndDistributeTokenConfig): Promise<{
txHash: Hash;
}>;
updateSplitAndDistributeToken(updateAndDistributeArgs: UpdateSplitAndDistributeTokenConfig): Promise<{
event: Log;
}>;
_submitWithdrawFundsTransaction(withdrawArgs: WithdrawFundsConfig): Promise<{
txHash: Hash;
}>;
withdrawFunds(withdrawArgs: WithdrawFundsConfig): Promise<{
event: Log;
}>;
_submitInitiateControlTransferTransaction(initiateTransferArgs: InitiateControlTransferConfig): Promise<{
txHash: Hash;
}>;
initiateControlTransfer(initiateTransferArgs: InitiateControlTransferConfig): Promise<{
event: Log;
}>;
_submitCancelControlTransferTransaction(cancelTransferArgs: CancelControlTransferConfig): Promise<{
txHash: Hash;
}>;
cancelControlTransfer(cancelTransferArgs: CancelControlTransferConfig): Promise<{
event: Log;
}>;
_submitAcceptControlTransferTransaction(acceptTransferArgs: AcceptControlTransferConfig): Promise<{
txHash: Hash;
}>;
acceptControlTransfer(acceptTransferArgs: AcceptControlTransferConfig): Promise<{
event: Log;
}>;
_submitMakeSplitImmutableTransaction(makeImmutableArgs: MakeSplitImmutableConfig): Promise<{
txHash: Hash;
}>;
makeSplitImmutable(makeImmutableArgs: MakeSplitImmutableConfig): Promise<{
event: Log;
}>;
batchDistributeAndWithdraw(batchDistributeAndWithdrawArgs: BatchDistributeAndWithdrawConfig): Promise<{
events: Log[];
}>;
batchDistributeAndWithdrawForAll(batchDistributeAndWithdrawForAllArgs: BatchDistributeAndWithdrawForAllConfig): Promise<{
events: Log[];
}>;
getSplitBalance({ splitAddress, token, chainId, }: GetSplitBalanceConfig): Promise<{
balance: bigint;
}>;
predictImmutableSplitAddress({ recipients, distributorFeePercent, chainId, }: {
recipients: SplitRecipient[];
distributorFeePercent: number;
chainId?: number;
}): Promise<{
splitAddress: Address;
splitExists: boolean;
}>;
getController({ splitAddress, chainId, }: {
splitAddress: string;
chainId?: number;
}): Promise<{
controller: Address;
}>;
getNewPotentialController({ splitAddress, chainId, }: {
splitAddress: string;
chainId?: number;
}): Promise<{
newPotentialController: Address;
}>;
getHash({ splitAddress, chainId, }: {
splitAddress: string;
chainId?: number;
}): Promise<{
hash: string;
}>;
_doesSplitExist({ splitAddress, chainId, }: {
splitAddress: Address;
chainId: number;
}): Promise<boolean>;
_getSplitFromLogs({ splitAddress, chainId, createLog, updateLog, }: {
splitAddress: Address;
chainId: number;
createLog: SplitV1CreatedLogType;
updateLog?: SplitV1UpdatedLogType;
}): Promise<Split>;
getSplitMetadataViaProvider({ splitAddress, chainId, cachedData, }: {
splitAddress: string;
chainId?: number;
cachedData?: {
blocks?: {
createBlock: bigint;
updateBlock?: bigint;
latestScannedBlock: bigint;
};
blockRange?: bigint;
};
}): Promise<{
split: Split;
blockRange: bigint;
}>;
getSplitActiveBalances({ splitAddress, chainId, erc20TokenList, }: {
splitAddress: string;
chainId?: number;
erc20TokenList?: string[];
}): Promise<Pick<FormattedSplitEarnings, 'activeBalances'>>;
}
export interface SplitV1Client extends BaseClientMixin {
}
declare class SplitV1GasEstimates extends SplitV1Transactions {
constructor(clientArgs: SplitsClientConfig);
createSplit(createSplitArgs: CreateSplitConfig): Promise<bigint>;
updateSplit(updateSplitArgs: UpdateSplitConfig): Promise<bigint>;
distributeToken(distributeTokenArgs: DistributeTokenConfig): Promise<bigint>;
updateSplitAndDistributeToken(updateAndDistributeArgs: UpdateSplitAndDistributeTokenConfig): Promise<bigint>;
withdrawFunds(withdrawArgs: WithdrawFundsConfig): Promise<bigint>;
initiateControlTransfer(initiateTransferArgs: InitiateControlTransferConfig): Promise<bigint>;
cancelControlTransfer(cancelTransferArgs: CancelControlTransferConfig): Promise<bigint>;
acceptControlTransfer(acceptTransferArgs: AcceptControlTransferConfig): Promise<bigint>;
makeSplitImmutable(makeImmutableArgs: MakeSplitImmutableConfig): Promise<bigint>;
}
interface SplitV1GasEstimates extends BaseGasEstimatesMixin {
}
declare class SplitV1CallData extends SplitV1Transactions {
constructor(clientArgs: SplitsClientConfig);
createSplit