1// SPDX-License-Identifier: UNLICENSED2pragma solidity ^0.8.17;34contract Utils {5 function toString(address account) public pure returns (string memory) {6 return toString(abi.encodePacked(account));7 }89 function toString(bool value) public pure returns (string memory) {10 return value ? "true" : "false";11 }1213 function toString(uint256 value) public pure returns (string memory) {14 return toString(abi.encodePacked(value));15 }1617 function toString(bytes32 value) public pure returns (string memory) {18 return toString(abi.encodePacked(value));19 }2021 function toString(bytes memory data) public pure returns (string memory) {22 bytes memory alphabet = "0123456789abcdef";2324 bytes memory str = new bytes(2 + data.length * 2);25 str[0] = "0";26 str[1] = "x";27 for (uint i = 0; i < data.length; i++) {28 str[2 + i * 2] = alphabet[uint(uint8(data[i] >> 4))];29 str[3 + i * 2] = alphabet[uint(uint8(data[i] & 0x0f))];30 }31 return string(str);32 }33}