Class ERC20Incentive

A simple ERC20 incentive implementation that allows claiming of tokens

ERC20Incentive

Hierarchy (view full)

Constructors

Properties

bases: Record<number, `0x${string}`> = ...

A static property representing a map of stringified chain ID's to the address of the base implementation on chain, used when cloning base contracts.

registryType: RegistryType = RegistryType.INCENTIVE

The target's registry type.

abi: readonly [{
    type: "constructor";
    inputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "error";
    inputs: readonly [];
    name: "AlreadyInitialized";
}, {
    type: "error";
    inputs: readonly [];
    name: "ClaimFailed";
}, {
    type: "error";
    inputs: readonly [{
        name: "caller";
        internalType: "address";
        type: "address";
    }, {
        name: "data";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "ClaimFailed";
}, {
    type: "error";
    inputs: readonly [];
    name: "CloneAlreadyInitialized";
}, {
    type: "error";
    inputs: readonly [];
    name: "InitializerNotImplemented";
}, {
    type: "error";
    inputs: readonly [{
        name: "asset";
        internalType: "address";
        type: "address";
    }, {
        name: "available";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "required";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "InsufficientFunds";
}, {
    type: "error";
    inputs: readonly [];
    name: "InvalidInitialization";
}, {
    type: "error";
    inputs: readonly [];
    name: "InvalidInitialization";
}, {
    type: "error";
    inputs: readonly [];
    name: "InvalidInitializationData";
}, {
    type: "error";
    inputs: readonly [];
    name: "LengthMismatch";
}, {
    type: "error";
    inputs: readonly [];
    name: "NewOwnerIsZeroAddress";
}, {
    type: "error";
    inputs: readonly [];
    name: "NoHandoverRequest";
}, {
    type: "error";
    inputs: readonly [];
    name: "NotClaimable";
}, {
    type: "error";
    inputs: readonly [];
    name: "NotInitializing";
}, {
    type: "error";
    inputs: readonly [];
    name: "Unauthorized";
}, {
    type: "error";
    inputs: readonly [];
    name: "Unauthorized";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "recipient";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "data";
        internalType: "bytes";
        type: "bytes";
        indexed: false;
    }];
    name: "Claimed";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "entry";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "Entry";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "version";
        internalType: "uint64";
        type: "uint64";
        indexed: false;
    }];
    name: "Initialized";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipHandoverCanceled";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipHandoverRequested";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "oldOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "newOwner";
        internalType: "address";
        type: "address";
        indexed: true;
    }];
    name: "OwnershipTransferred";
}, {
    type: "event";
    anonymous: false;
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
        indexed: true;
    }, {
        name: "roles";
        internalType: "uint256";
        type: "uint256";
        indexed: true;
    }];
    name: "RolesUpdated";
}, {
    type: "function";
    inputs: readonly [];
    name: "ADMIN_ROLE";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "MANAGER_ROLE";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "asset";
    outputs: readonly [{
        name: "";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "cancelOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "claimTarget";
        internalType: "address";
        type: "address";
    }, {
        name: "";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "claim";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "";
        internalType: "address";
        type: "address";
    }];
    name: "claimed";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "claims";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "clawback";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }, {
        name: "";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
    }];
    name: "completeOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [];
    name: "currentReward";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "drawRaffle";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "entries";
    outputs: readonly [{
        name: "";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "getComponentInterface";
    outputs: readonly [{
        name: "";
        internalType: "bytes4";
        type: "bytes4";
    }];
    stateMutability: "pure";
}, {
    type: "function";
    inputs: readonly [{
        name: "accounts_";
        internalType: "address[]";
        type: "address[]";
    }, {
        name: "roles_";
        internalType: "uint256[]";
        type: "uint256[]";
    }];
    name: "grantManyRoles";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
    }, {
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "grantRoles";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
    }, {
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "hasAllRoles";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
    }, {
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "hasAnyRole";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "initialize";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "account_";
        internalType: "address";
        type: "address";
    }];
    name: "isAuthorized";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "claimTarget";
        internalType: "address";
        type: "address";
    }, {
        name: "";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "isClaimable";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "limit";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "owner";
    outputs: readonly [{
        name: "result";
        internalType: "address";
        type: "address";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "pendingOwner";
        internalType: "address";
        type: "address";
    }];
    name: "ownershipHandoverExpiresAt";
    outputs: readonly [{
        name: "result";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "data_";
        internalType: "bytes";
        type: "bytes";
    }];
    name: "preflight";
    outputs: readonly [{
        name: "budgetData";
        internalType: "bytes";
        type: "bytes";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [];
    name: "renounceOwnership";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "renounceRoles";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [];
    name: "requestOwnershipHandover";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [{
        name: "accounts_";
        internalType: "address[]";
        type: "address[]";
    }, {
        name: "roles_";
        internalType: "uint256[]";
        type: "uint256[]";
    }];
    name: "revokeManyRoles";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
    }, {
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    name: "revokeRoles";
    outputs: readonly [];
    stateMutability: "payable";
}, {
    type: "function";
    inputs: readonly [];
    name: "reward";
    outputs: readonly [{
        name: "";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "user";
        internalType: "address";
        type: "address";
    }];
    name: "rolesOf";
    outputs: readonly [{
        name: "roles";
        internalType: "uint256";
        type: "uint256";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "accounts_";
        internalType: "address[]";
        type: "address[]";
    }, {
        name: "authorized_";
        internalType: "bool[]";
        type: "bool[]";
    }];
    name: "setAuthorized";
    outputs: readonly [];
    stateMutability: "nonpayable";
}, {
    type: "function";
    inputs: readonly [];
    name: "strategy";
    outputs: readonly [{
        name: "";
        internalType: "enum AERC20Incentive.Strategy";
        type: "uint8";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "interfaceId";
        internalType: "bytes4";
        type: "bytes4";
    }];
    name: "supportsInterface";
    outputs: readonly [{
        name: "";
        internalType: "bool";
        type: "bool";
    }];
    stateMutability: "view";
}, {
    type: "function";
    inputs: readonly [{
        name: "newOwner";
        internalType: "address";
        type: "address";
    }];
    name: "transferOwnership";
    outputs: readonly [];
    stateMutability: "payable";
}] = erc20IncentiveAbi
_isBase: boolean = true

A property asserting that the protocol should eiher clone and initialize a new target from the base implementation, or re-use an existing contract without initializing.

_payload: undefined | ERC20IncentivePayload

The deployable payload used either for contract construction or initialization

_config: Config
_address: undefined | `0x${string}`

The internally managed address for this contract

_account?: Account

If it exists, Viem Local Account, if in a Node environment

Accessors

  • get bases(): Record<number, `0x${string}`>
  • A getter that will return the base implementation's static addresses by numerical chain ID

    Returns Record<number, `0x${string}`>

  • get address(): undefined | `0x${string}`
  • A getter returning this contract's deployed address, if it exists.

    Returns undefined | `0x${string}`

Methods

  • The owner of the incentive

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "owner">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • Calculates the current reward based on the time since the last claim. The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding rewardBoost to the current reward, up to the available budget. For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be initialReward - rewardDecay + (rewardBoost * 3)

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "currentReward">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

    • The current reward
  • The number of claims that have been made

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "claims">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

  • A mapping of address to claim status

    Parameters

    • address: `0x${string}`
    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "claimed">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<boolean>

  • The address of the ERC20-like token

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "asset">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • The strategy for the incentive (MINT or POOL)

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "strategy">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<StrategyType>

  • The reward amount issued for each claim

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "reward">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

  • The limit (max claims, or max entries for raffles)

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "limit">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<bigint>

  • The set of addresses that have claimed a slot in the incentive raffle, accessed by bigint index.

    Parameters

    • i: bigint

      Index of address

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "entries">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • Claim the incentive

    Parameters

    • payload: ClaimPayload
    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "claim">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<boolean>

    • Returns true if successfully claimed
  • Claim the incentive

    Parameters

    • payload: ClaimPayload
    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "claim">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: boolean;
    }>

    • Returns true if successfully claimed
  • Clawback assets from the incentive

    Parameters

    • payload: ClaimPayload
    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "clawback">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<readonly [bigint, `0x${string}`]>

    • True if the assets were successfully clawbacked
  • Clawback assets from the incentive

    Parameters

    • payload: ClaimPayload
    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "clawback">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: readonly [bigint, `0x${string}`];
    }>

    • True if the assets were successfully clawbacked
  • Check if an incentive is claimable. For the POOL strategy, the bytes data portion of the payload ignored. The recipient must not have already claimed the incentive.

    Parameters

    • payload: ClaimPayload
    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "isClaimable">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<boolean>

    = True if the incentive is claimable based on the data payload

  • Draw a winner from the raffle. Only callable by owner. Only valid when the strategy is set to Strategy.RAFFLE

    Parameters

    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "drawRaffle">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<void>

  • Draw a winner from the raffle. Only callable by owner. Only valid when the strategy is set to Strategy.RAFFLE

    Parameters

    • Optionalparams: Partial<Omit<WriteContractParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], "drawRaffle">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<{
        hash: `0x${string}`;
        result: void;
    }>

  • Builds the claim data for the ERC20Incentive.

    Returns "0x0000000000000000000000000000000000000000000000000000000000000000"

    A zeroHash, as ERC20Incentive doesn't require specific claim data.

    This function returns zeroHash because ERC20Incentive doesn't use any specific claim data.

  • Check if the contract supports the given interface

    Parameters

    • interfaceId: `0x${string}`

      The interface identifier

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }], "supportsInterface">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<boolean>

    • True if the contract supports the interface
  • Return a cloneable's unique identifier for downstream consumers to differentiate various targets All implementations must override this function

    Parameters

    • Optionalparams: Partial<Omit<ReadContractParameters<readonly [{
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }], "getComponentInterface">,
          | "address"
          | "abi"
          | "functionName"
          | "args">>

    Returns Promise<`0x${string}`>

  • A typed wrapper for (viem.getLogs)[https://viem.sh/docs/actions/public/getLogs#getlogs]. Accepts eventName and eventNames as optional parameters to narrow the returned log types.

    Type Parameters

    • event extends
          | "Initialized"
          | "OwnershipHandoverCanceled"
          | "OwnershipHandoverRequested"
          | "OwnershipTransferred"
          | "RolesUpdated"
          | "Claimed"
          | "Entry"
    • const abiEvent extends
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "Claimed";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "entry";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "Entry";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "version";
                  internalType: "uint64";
                  type: "uint64";
                  indexed: false;
              }];
              name: "Initialized";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }
          | {
              name: event;
          } & {
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "user";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "roles";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }];
              name: "RolesUpdated";
          } =
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "Claimed";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "entry";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "Entry";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "version";
                  internalType: "uint64";
                  type: "uint64";
                  indexed: false;
              }];
              name: "Initialized";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "user";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "roles";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }];
              name: "RolesUpdated";
          }, {
              name: event;
          }>

    Parameters

    • Optionalparams: Omit<GetLogsParams<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: "caller";
              internalType: "address";
              type: "address";
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: "asset";
              internalType: "address";
              type: "address";
          }, {
              name: "available";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "required";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "recipient";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "data";
              internalType: "bytes";
              type: "bytes";
              indexed: false;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "entry";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "version";
              internalType: "uint64";
              type: "uint64";
              indexed: false;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "oldOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "newOwner";
              internalType: "address";
              type: "address";
              indexed: true;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
              indexed: true;
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
              indexed: true;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "claim";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          name: "claimed";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "clawback";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }, {
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "entries";
          outputs: readonly [{
              name: "";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: "";
              internalType: "bytes4";
              type: "bytes4";
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "account_";
              internalType: "address";
              type: "address";
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "claimTarget";
              internalType: "address";
              type: "address";
          }, {
              name: "";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: "result";
              internalType: "address";
              type: "address";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "pendingOwner";
              internalType: "address";
              type: "address";
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: "result";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "data_";
              internalType: "bytes";
              type: "bytes";
          }];
          name: "preflight";
          outputs: readonly [{
              name: "budgetData";
              internalType: "bytes";
              type: "bytes";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "roles_";
              internalType: "uint256[]";
              type: "uint256[]";
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }, {
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: "";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "user";
              internalType: "address";
              type: "address";
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: "roles";
              internalType: "uint256";
              type: "uint256";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "accounts_";
              internalType: "address[]";
              type: "address[]";
          }, {
              name: "authorized_";
              internalType: "bool[]";
              type: "bool[]";
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: "";
              internalType: "enum AERC20Incentive.Strategy";
              type: "uint8";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "interfaceId";
              internalType: "bytes4";
              type: "bytes4";
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: "";
              internalType: "bool";
              type: "bool";
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: "newOwner";
              internalType: "address";
              type: "address";
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], event, abiEvent, abiEvent[]>, "event" | "events"> & {
          eventName?: event;
          eventNames?: event[];
      }

    Returns Promise<GetLogsReturnType<abiEvent, abiEvent[]>>

    const logs = contract.getLogs({ eventName: 'EventName' })
    const logs = contract.getLogs({ eventNames: ['EventName'] })

    @public
    @async
    @template {ContractEvent} event
    @template {ExtractAbiEvent<
    ContractAbi,
    event
    >} [abiEvent=ExtractAbiEvent<ContractAbi, event>]
    @param {?Omit<
    GetLogsParams<ContractAbi, event, abiEvent, abiEvent[]>,
    'event' | 'events'
    > & {
    eventName?: event;
    eventNames?: event[];
    }} [params]
    @returns {Promise<GetLogsReturnType<abiEvent, abiEvent
  • A typed wrapper for wagmi.watchContractEvent

    Type Parameters

    • event extends
          | "Initialized"
          | "OwnershipHandoverCanceled"
          | "OwnershipHandoverRequested"
          | "OwnershipTransferred"
          | "RolesUpdated"
          | "Claimed"
          | "Entry"

    Parameters

    • cb: ((log: Log<bigint, number, false,
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "recipient";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "data";
                  internalType: "bytes";
                  type: "bytes";
                  indexed: false;
              }];
              name: "Claimed";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "entry";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "Entry";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "version";
                  internalType: "uint64";
                  type: "uint64";
                  indexed: false;
              }];
              name: "Initialized";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverCanceled";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "pendingOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipHandoverRequested";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "oldOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "newOwner";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }];
              name: "OwnershipTransferred";
          }, {
              name: event;
          }>
          | Extract<{
              type: "event";
              anonymous: false;
              inputs: readonly [{
                  name: "user";
                  internalType: "address";
                  type: "address";
                  indexed: true;
              }, {
                  name: "roles";
                  internalType: "uint256";
                  type: "uint256";
                  indexed: true;
              }];
              name: "RolesUpdated";
          }, {
              name: event;
          }>, true>) => unknown)
        • (log): unknown
        • Parameters

          • log: Log<bigint, number, false,
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "recipient";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "data";
                        internalType: "bytes";
                        type: "bytes";
                        indexed: false;
                    }];
                    name: "Claimed";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "entry";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "Entry";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "version";
                        internalType: "uint64";
                        type: "uint64";
                        indexed: false;
                    }];
                    name: "Initialized";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "pendingOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipHandoverCanceled";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "pendingOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipHandoverRequested";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "oldOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "newOwner";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }];
                    name: "OwnershipTransferred";
                }, {
                    name: event;
                }>
                | Extract<{
                    type: "event";
                    anonymous: false;
                    inputs: readonly [{
                        name: "user";
                        internalType: "address";
                        type: "address";
                        indexed: true;
                    }, {
                        name: "roles";
                        internalType: "uint256";
                        type: "uint256";
                        indexed: true;
                    }];
                    name: "RolesUpdated";
                }, {
                    name: event;
                }>, true>

          Returns unknown

    • Optionalparams: Partial<Omit<UnionCompute<WatchContractEventParameters<readonly [{
          type: "constructor";
          inputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "AlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "ClaimFailed";
      }, {
          type: "error";
          inputs: readonly [];
          name: "CloneAlreadyInitialized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InitializerNotImplemented";
      }, {
          type: "error";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "InsufficientFunds";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitialization";
      }, {
          type: "error";
          inputs: readonly [];
          name: "InvalidInitializationData";
      }, {
          type: "error";
          inputs: readonly [];
          name: "LengthMismatch";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NewOwnerIsZeroAddress";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NoHandoverRequest";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotClaimable";
      }, {
          type: "error";
          inputs: readonly [];
          name: "NotInitializing";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "error";
          inputs: readonly [];
          name: "Unauthorized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "Claimed";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "Entry";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "Initialized";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipHandoverCanceled";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipHandoverRequested";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "OwnershipTransferred";
      }, {
          type: "event";
          anonymous: false;
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
              indexed: ...;
          }];
          name: "RolesUpdated";
      }, {
          type: "function";
          inputs: readonly [];
          name: "ADMIN_ROLE";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "MANAGER_ROLE";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "asset";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "cancelOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "claim";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "claimed";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "claims";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "clawback";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "completeOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "currentReward";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "drawRaffle";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "entries";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "getComponentInterface";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "pure";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "grantManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "grantRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "hasAllRoles";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "hasAnyRole";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "initialize";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "isAuthorized";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "isClaimable";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "limit";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "owner";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "ownershipHandoverExpiresAt";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "preflight";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [];
          name: "renounceOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "renounceRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "requestOwnershipHandover";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "revokeManyRoles";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "revokeRoles";
          outputs: readonly [];
          stateMutability: "payable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "reward";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "rolesOf";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }, {
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "setAuthorized";
          outputs: readonly [];
          stateMutability: "nonpayable";
      }, {
          type: "function";
          inputs: readonly [];
          name: "strategy";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "supportsInterface";
          outputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          stateMutability: "view";
      }, {
          type: "function";
          inputs: readonly [{
              name: ...;
              internalType: ...;
              type: ...;
          }];
          name: "transferOwnership";
          outputs: readonly [];
          stateMutability: "payable";
      }], event, undefined, WebSocketTransport> & ChainIdParameter<Config, number> & SyncConnectedChainParameter>, "address" | "abi">> & {
          eventName?: event;
      }

    Returns (() => void)

      • (): void
      • Returns void

  • Protected

    Internal function to attach the connected account to write methods to avoid manually passing in an account each call.

    Parameters

    • Optionalaccount: Account

    Returns {
        account: Account;
    } | {
        account: undefined;
    }