Function incentiveFromAddress
- incentiveFromAddress(options, address, params?): Promise<
    | AllowListIncentive
    | CGDAIncentive
    | ERC20Incentive
    | ERC20PeggedIncentive
    | ERC20VariableCriteriaIncentive
    | ERC20PeggedVariableCriteriaIncentive
    | ERC20VariableCriteriaIncentiveV2
    | ERC20PeggedVariableCriteriaIncentiveV2
    | 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: "asset"; 
            internalType: "address"; 
            type: "address"; 
            indexed: true; 
        }, { 
            name: "reward"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }, { 
            name: "limit"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }]; 
        name: "ERC20VariableIncentiveInitialized"; 
    }, { 
        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: "event"; 
        anonymous: false; 
        inputs: readonly [{ 
            name: "sender"; 
            internalType: "address"; 
            type: "address"; 
            indexed: false; 
        }, { 
            name: "amount"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }]; 
        name: "ToppedUp"; 
    }, { 
        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: "amount"; 
            internalType: "uint256"; 
            type: "uint256"; 
        }]; 
        name: "topup"; 
        outputs: readonly []; 
        stateMutability: "nonpayable"; 
    }, { 
        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"; 
    }], bigint>> Parameters
- options: DeployableOptions
 - address: `0x${string}`
 Optionalparams: Partial<Omit<ReadContractParameters, 
    | "address"
    | "abi"
    | "functionName"
    | "args">>
Returns Promise<
    | AllowListIncentive
    | CGDAIncentive
    | ERC20Incentive
    | ERC20PeggedIncentive
    | ERC20VariableCriteriaIncentive
    | ERC20PeggedVariableCriteriaIncentive
    | ERC20VariableCriteriaIncentiveV2
    | ERC20PeggedVariableCriteriaIncentiveV2
    | 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: "asset"; 
            internalType: "address"; 
            type: "address"; 
            indexed: true; 
        }, { 
            name: "reward"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }, { 
            name: "limit"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }]; 
        name: "ERC20VariableIncentiveInitialized"; 
    }, { 
        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: "event"; 
        anonymous: false; 
        inputs: readonly [{ 
            name: "sender"; 
            internalType: "address"; 
            type: "address"; 
            indexed: false; 
        }, { 
            name: "amount"; 
            internalType: "uint256"; 
            type: "uint256"; 
            indexed: false; 
        }]; 
        name: "ToppedUp"; 
    }, { 
        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: "amount"; 
            internalType: "uint256"; 
            type: "uint256"; 
        }]; 
        name: "topup"; 
        outputs: readonly []; 
        stateMutability: "nonpayable"; 
    }, { 
        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"; 
    }], bigint>>
A function that will read a contract's component interface using
getComponentInterfaceand return the correct instantiated instance.