UNPKG

@allo-team/allo-v2-sdk

Version:
142 lines (141 loc) 5.39 kB
import { Allo } from "../../Allo/Allo"; import { ConstructorArgs, DeployParams, Metadata, TransactionData } from "../../Common/types"; import { PayoutSummary, Status } from "../types"; import { Allocation, Claim, Distribution, InitializeData, Recipient, RegisterData } from "./types"; export declare class DonationVotingMerkleDistributionStrategy { private client; private contract; private strategy; private poolId; private allo; constructor({ chain, rpc, address, poolId }: ConstructorArgs); getAllo(): Promise<Allo>; setPoolId(poolId: bigint): Promise<void>; setContract(address: `0x${string}`): void; private checkPoolId; private checkStrategy; getNative(): Promise<string>; getPermit2(): Promise<string>; getDistributionMetadata(): Promise<Metadata>; useRegistryAnchor(): Promise<boolean>; metadataRequired(): Promise<boolean>; distributionStarted(): Promise<boolean>; registrationStartTime(): Promise<bigint>; registrationEndTime(): Promise<bigint>; allocationStartTime(): Promise<bigint>; allocationEndTime(): Promise<bigint>; totalPayoutAmount(): Promise<bigint>; recipientsCounter(): Promise<bigint>; getMerkleRoot(): Promise<string>; statusesBitMap(index: bigint): Promise<bigint>; recipientToStatusIndexes(recipient: string): Promise<bigint[]>; isTokenAllowed(token: string): Promise<boolean>; getClaims(recipient: string, token: string): Promise<bigint>; getTotalClaimableAmount(recipient: string): Promise<bigint>; getPayouts(recipientIds: string[], data: string[]): Promise<PayoutSummary[]>; getPoolAmount(): Promise<bigint>; getPoolId(): Promise<bigint>; getRecipient(recipientId: string): Promise<Recipient>; getRecipientStatus(recipientId: string): Promise<Status>; getStrategyId(): Promise<string>; hasBeenDistributed(index: bigint): Promise<boolean>; isDistributionSet(): Promise<boolean>; isPoolActive(): Promise<boolean>; isValidAllocator(allocator: `0x${string}`): Promise<boolean>; /** * Write functions */ /** * * @param strategyType - StrategyType ("Vault" | "Direct") * @returns DeployParams {abi, bytecode} */ getDeployParams(strategyType: string): DeployParams; getInitializeData(data: InitializeData): Promise<`0x${string}`>; /** * * @param data - Allocation: (address,(((address,uint256),uint256,uint256),bytes)) * @returns `0x${string}` */ getEncodedAllocation(data: Allocation): `0x${string}`; /** * * @param allocation - Allocation: (address,PermitType,(((address,uint256),uint256,uint256),bytes32)) * @returns TransactionData: {to: `0x${string}`, data: `0x${string}`, value: string} */ getAllocateData(allocation: Allocation): TransactionData; /** * * @param allocations - Array of Allocation: (address,(((address,uint256),uint256,uint256),bytes32)) * @returns TransactionData: {to: `0x${string}`, data: `0x${string}`, value: string} */ getBatchAllocateData(allocations: Allocation[]): TransactionData; /** * * @param poolIds - Array of poolIds * @param allocations - Array of Allocation: (address,(((address,uint256),uint256,uint256),bytes32)) * @returns TransactionData: {to: `0x${string}`, data: `0x${string}`, value: string} */ getBatchAllocateDataMultiplePools(poolIds: bigint[], allocations: Allocation[]): TransactionData; /** * * @param data - (address, address, Metadata) * @returns */ getRegisterRecipientData(data: RegisterData): TransactionData; /** * Batch register recipients * * @param data - Array of RegisterDataDonationVoting * * @returns TransactionData */ getBatchRegisterRecipientData(data: RegisterData[]): TransactionData; /** * Fund the pool * * @param amount - Amount to fund the pool * * @returns TransactionData */ fundPool(amount: bigint): TransactionData; /** * Distribute to the recipients * * @param recipientIds - Array of recipientIds * @param data - Array of Distribution * * @returns TransactionData */ distribute(recipientIds: `0x${string}`[], data: Distribution[]): TransactionData; /** * Get the claim function encoded data * * @param claims - Array of claims * * @returns - Encoded transaction data */ getClaimData(claims: Claim[]): TransactionData; /** * Provides a function to batch together multiple calls in a single external call * * @param data - Array of encoded data * * @returns - Encoded transaction data */ multicall(data: `0x${string}`[]): TransactionData; /** * Review recipients * * @param statuses - Array of status indexes and statusRows * * @returns TransactionData */ reviewRecipients(statuses: { index: bigint; statusRow: bigint; }[], refRecipientsCounter: bigint): TransactionData; updateDistribution(merkleRoot: `0x${string}`, distributionMetadata: Metadata): TransactionData; updatePoolTimestamps(registrationStartTime: bigint, registrationEndTime: bigint, allocationStartTime: bigint, allocationEndTime: bigint): TransactionData; withdraw(address: `0x${string}`): TransactionData; }