合约里的数值通常非常大, 肉眼阅读非常费劲,solpretty 可以让对数字进行漂亮的格式化。
合约里的数值通常非常大, 肉眼阅读非常费劲,solpretty 可以让对数字进行漂亮的格式化。
solpretty 在 Foundry 工程下使用:
使用 Foundry install 安装 solpretty:
forge install devtooligan/solpretty
solpretty 提供了 pp 函数:
不同的参数,用来支持不同的格式化显示效果, pp 函数返回的是格式化后的在字符串。
例如(注释字符串为 pp 函数返回结果):
import {pp} from "solpretty/SolPretty.sol";
pp(123123123123) // -> "123,123,123,123" // default
pp(123123123123, 6) // -> "123,123.123123" // fixedDecimals = 6
pp(123123123123, 6, 2) // -> "123,123.12" // displayDecimals = 2
pp(123123123123, 6, 0, 15) // -> " 123,123" // fixedWidth = 15
还可自定义选项:
SolPrettyOptions memory solPrettyOptions = getDefaultOptions();
SolPrettyOptions.fixedDecimals = 6;
SolPrettyOptions.fixedWidth = 20;
SolPrettyOptions.decimalDelimeter = bytes1("*");
SolPrettyOptions.integerDelimeter = bytes1(" ");
pp(123123123123, solPrettyOptions); // -> " 123 123*123123"
//
struct SolPrettyOptions {
uint256 fixedDecimals; // default 0
uint256 displayDecimals; // default type(uint256).max
bytes1 decimalDelimter; // default "."
bytes1 fractionalDelimiter; // default " "
uint256 fractionalGroupingSize; // default 0
bytes1 integerDelimiter; // default ","
uint256 integerGroupingSize; // default 3
uint256 fixedWidth; // default 0 (automatic)
}
solpretty 还支持和字符串拼接,有两个拼接方法:
一个用于字符串拼接,一个用于字符串数组拼接, 例如:
import {pp, SolPretty} from "solpretty/SolPretty.sol";
using SolPretty for string;
pp(1234).concat(" Alice's balance"); // -> "1,234 Alice's Balance";
// 字符串数组拼接
string[] memory strings = new string[](3);
strings[0] = "a";
strings[1] = "b";
strings[2] = "c";
concat(strings); // -> "abc"
solpretty 支持把格式好的字符串打印输出:
例如:
using SolPretty for string;
log("hoagies"); // console2.log("hoagies");
pp(1234).log(); // console2.log("1,234")
pp(1234).concat(" Alice's balance").log(); // console2.log("1,234 Alice's balance")
本文来自ChainTool,http://chaintool.tech 是一个为帮助开发者提高效率的开源区块链开发工具。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!