UNPKG

@0xsplits/splits-sdk

Version:

SDK for the 0xSplits protocol

1,361 lines 51 kB
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