register(address,address,string) :
This function is used to register a new user to the system. It takes three parameters: an address to register, an address for recovery, and a string containing a URL. If the trustedOnly flag is set to 1, the function will revert with an Invitable error. Otherwise, it will call the _unsafeRegister function to register the user, and then emit a Register event with the user's address, an ID counter, the recovery address, and the URL. (autogenerated documentation)
trustedRegister(address,address,string) :
This function is used to register a new address to a trusted caller. It takes three parameters: the address to register, the address of the recovery account, and a URL for additional information. It checks that the caller is trusted, and then calls the _unsafeRegister function to register the address. Finally, it emits an event to indicate that the address has been registered. (autogenerated documentation)
changeHome(string) :
This function allows a user to change the home URL associated with their account. It does this by first checking if the user has an ID associated with their account, and if so, emitting an event with the user's ID and the new URL. (autogenerated documentation)
_unsafeRegister(address,address) :
This function is used to register a new address with a recovery address. It does this by first checking if the address to be registered already has an ID associated with it. If it does, the function will revert. Otherwise, it will increment the idCounter and assign the new address an ID. It will then store the recovery address associated with the new ID in the recoveryOf mapping. (autogenerated documentation)
transfer(address) :
This function is used to transfer an ID from one address to another. It first checks to make sure that the sender has an ID and that the recipient does not. If these conditions are met, it calls the _unsafeTransfer() function to complete the transfer. (autogenerated documentation)
_unsafeTransfer(uint256,address,address) :
This function is an internal function that is used to transfer an ID from one address to another. It sets the idOf[to] to the ID being transferred, deletes the idOf[from], deletes the recoveryClockOf[id] if it is not 0, sets the recoveryOf[id] to address(0), and emits a Transfer event. (autogenerated documentation)
changeRecoveryAddress(address) :
This function allows a user to change the recovery address associated with their account. It takes in an address as an argument and sets the recoveryOf[id] to that address. It also deletes the recoveryClockOf[id] associated with the account, and emits an event to signal that the recovery address has been changed. (autogenerated documentation)
requestRecovery(address,address) :
This function allows a user to request a recovery of their account. It takes two parameters, an address from and an address to, and uses them to set the recoveryClockOf and recoveryDestinationOf variables associated with the user's account. It also emits an event to notify other users of the request. (autogenerated documentation)
completeRecovery(address) :
This function is used to complete a recovery process for a given address. It checks that the sender of the transaction is authorized to complete the recovery, that the recovery clock has been set, and that the escrow period has expired. If all of these conditions are met, it transfers the ID associated with the address from the original owner to the recovery destination. (autogenerated documentation)
cancelRecovery(address) :
This function cancels a recovery process for a given address. It takes the address of the user as an argument and checks if the sender of the transaction is either the user or the recovery address. If the sender is authorized, it checks if a recovery process is already in progress. If a recovery process is in progress, it deletes the recovery clock and emits a CancelRecovery event. (autogenerated documentation)
changeTrustedCaller(address) :
This function allows the owner of the contract to change the address of the trusted caller. The function takes an address as an argument and sets the trustedCaller variable to the address provided. It then emits an event to notify that the trusted caller has been changed. (autogenerated documentation)
disableTrustedOnly() :
This function allows the owner of the contract to disable the "trustedOnly" setting. This setting is used to restrict certain functions to only be called by trusted addresses. When this function is called, the "trustedOnly" setting is deleted, and an event is emitted to indicate that the setting has been disabled. (autogenerated documentation)
transferOwnership(address) :
This function is used to transfer ownership of a contract from one address to another. It requires an address as an argument and can only be called by the current owner of the contract. If the function is called by someone other than the owner, it will revert with an Unauthorized error. (autogenerated documentation)
requestTransferOwnership(address) :
This function allows the current owner of a contract to transfer ownership to a new owner. It does this by setting the pendingOwner variable to the address of the new owner. The transfer of ownership will only be completed when the acceptOwnership() function is called by the new owner. (autogenerated documentation)
completeTransferOwnership() :
This function is used to complete a transfer of ownership of a contract. It checks that the sender of the transaction is the pending owner, and then calls the _transferOwnership() function to complete the transfer. It then deletes the pendingOwner variable. (autogenerated documentation)
_msgSender() :
This function is an internal view function that is used to override the default _msgSender() function in the ERC2771Context contract. It returns the address of the message sender, which is the account that initiated the transaction. This allows the contract to access the address of the sender and use it for various operations. (autogenerated documentation)
_msgData() :
This function is an internal view function that is used to retrieve the data associated with a given message. It takes two parameters, a Context object and an ERC2771Context object, and returns a bytes calldata object containing the message data. The function works by calling the _msgData() function on the ERC2771Context object, which returns the data associated with the message. (autogenerated documentation)