import type { AbiParameterToPrimitiveType } from "abitype"; import { prepareEvent } from "../../../../../event/prepare-event.js"; /** * Represents the filters for the "SignerPermissionsUpdated" event. */ export type SignerPermissionsUpdatedEventFilters = Partial<{ authorizingSigner: AbiParameterToPrimitiveType<{ type: "address"; name: "authorizingSigner"; indexed: true; }>; targetSigner: AbiParameterToPrimitiveType<{ type: "address"; name: "targetSigner"; indexed: true; }>; }>; /** * Creates an event object for the SignerPermissionsUpdated event. * @param filters - Optional filters to apply to the event. * @returns The prepared event object. * @extension ERC4337 * @example * ```ts * import { getContractEvents } from "thirdweb"; * import { signerPermissionsUpdatedEvent } from "thirdweb/extensions/erc4337"; * * const events = await getContractEvents({ * contract, * events: [ * signerPermissionsUpdatedEvent({ * authorizingSigner: ..., * targetSigner: ..., * }) * ], * }); * ``` */ export function signerPermissionsUpdatedEvent( filters: SignerPermissionsUpdatedEventFilters = {}, ) { return prepareEvent({ filters, signature: "event SignerPermissionsUpdated(address indexed authorizingSigner, address indexed targetSigner, (address signer, uint8 isAdmin, address[] approvedTargets, uint256 nativeTokenLimitPerTransaction, uint128 permissionStartTimestamp, uint128 permissionEndTimestamp, uint128 reqValidityStartTimestamp, uint128 reqValidityEndTimestamp, bytes32 uid) permissions)", }); }