import type { Account, Address, Chain, Client, Hash, Transport, WriteContractErrorType } from 'viem'; import type { Prettify, WriteTransactionParameters } from '../../../../types/index.js'; import { type ClientWithOverridesErrorType } from '../../../../utils/clientWithOverrides.js'; import { type Role } from '../../../../utils/v2/roles/encodeRoleBitmap.js'; export type RevokeRolesWriteParametersParameters = { /** The registry address */ registryAddress: Address; /** The roles to revoke */ roles: Role[]; /** The account to revoke roles from */ account: Address; /** The resource to revoke roles within (use 0 for ROOT_RESOURCE) */ resource: bigint; }; export type RevokeRolesWriteParametersReturnType = ReturnType; export type RevokeRolesWriteParametersErrorType = Error; export declare const revokeRolesWriteParameters: (client: Client, { registryAddress, roles, account: accountToRevoke, resource, }: RevokeRolesWriteParametersParameters) => { readonly address: `0x${string}`; readonly functionName: "revokeRootRoles"; readonly abi: readonly [{ readonly type: "error"; readonly name: "EACCannotGrantRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "error"; readonly name: "EACCannotRevokeRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "error"; readonly name: "EACInvalidAccount"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EACInvalidRoleBitmap"; readonly inputs: readonly [{ readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACMaxAssignees"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACMinAssignees"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACRootResourceNotAllowed"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EACUnauthorizedAccountRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "revokeRootRoles"; readonly inputs: readonly [{ readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; }]; readonly chain: chain; readonly account: Account; readonly args: readonly [bigint, `0x${string}`]; } | { readonly address: `0x${string}`; readonly functionName: "revokeRoles"; readonly abi: readonly [{ readonly type: "error"; readonly name: "EACCannotGrantRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "error"; readonly name: "EACCannotRevokeRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "error"; readonly name: "EACInvalidAccount"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EACInvalidRoleBitmap"; readonly inputs: readonly [{ readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACMaxAssignees"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACMinAssignees"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }]; }, { readonly type: "error"; readonly name: "EACRootResourceNotAllowed"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "EACUnauthorizedAccountRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; }, { readonly type: "function"; readonly name: "revokeRoles"; readonly inputs: readonly [{ readonly name: "resource"; readonly type: "uint256"; }, { readonly name: "roleBitmap"; readonly type: "uint256"; }, { readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; }]; readonly chain: chain; readonly account: Account; readonly args: readonly [bigint, bigint, `0x${string}`]; }; export type RevokeRolesParameters = Prettify>; export type RevokeRolesReturnType = Hash; export type RevokeRolesErrorType = RevokeRolesWriteParametersErrorType | ClientWithOverridesErrorType | WriteContractErrorType; /** * Revokes roles from an account in the Enhanced Access Control contract. * @param client - {@link Client} * @param options - {@link RevokeRolesParameters} * @returns Transaction hash. {@link RevokeRolesReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { addEnsContracts } from '@ensdomains/ensjs' * import { revokeRoles } from '@ensdomains/ensjs/wallet/v2' * * const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }) * const wallet = createWalletClient({ * account, * chain: addEnsContracts(mainnet), * transport: custom(window.ethereum), * }) * const hash = await revokeRoles(wallet, { * registryAddress: '0x...', * roles: ['ROLE_SET_RESOLVER'], * account: '0x...', * resource: 1n, * }) * // 0x... * * @example * // Revoke root roles (resource = 0) * const hash = await revokeRoles(wallet, { * registryAddress: '0x...', * roles: ['ROLE_SET_RESOLVER'], * account: '0x...', * resource: 0n, * }) * // 0x... */ export declare function revokeRoles(client: Client, { registryAddress, roles, account: accountToRevoke, resource, ...txArgs }: RevokeRolesParameters): Promise; //# sourceMappingURL=revokeRoles.d.ts.map