Function incentiveFromAddress

  • A function that will read a contract's component interface using getComponentInterface and return the correct instantiated instance.

    Parameters

    Returns Promise<
        | AllowListIncentive
        | CGDAIncentive
        | ERC20Incentive
        | ERC20VariableCriteriaIncentive
        | PointsIncentive
        | ERC20VariableIncentive<`0x${string}`, readonly [{
            type: "constructor";
            inputs: readonly [];
            stateMutability: "nonpayable";
        }, {
            type: "error";
            inputs: readonly [];
            name: "AlreadyInitialized";
        }, {
            type: "error";
            inputs: readonly [];
            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: "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: "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: "data_";
                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: "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: "interfaceId";
                internalType: "bytes4";
                type: "bytes4";
            }];
            name: "supportsInterface";
            outputs: readonly [{
                name: "";
                internalType: "bool";
                type: "bool";
            }];
            stateMutability: "view";
        }, {
            type: "function";
            inputs: readonly [];
            name: "totalClaimed";
            outputs: readonly [{
                name: "";
                internalType: "uint256";
                type: "uint256";
            }];
            stateMutability: "view";
        }, {
            type: "function";
            inputs: readonly [{
                name: "newOwner";
                internalType: "address";
                type: "address";
            }];
            name: "transferOwnership";
            outputs: readonly [];
            stateMutability: "payable";
        }]>>