| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- use app\common\library\EthSign;
- use fast\Random;
- /**
- * 生成随机hash值
- * @param int $uid
- * @return string
- */
- function randTxHash(int $uid): string
- {
- return Random::uuid();
- }
- /**
- * 签名校验
- * @param string $msg
- * @param $sign
- * @param $address
- * @return bool
- */
- function checkSign(string $msg, $sign, $address): bool
- {
- // return true; // 调试
- if (empty($msg) || empty($sign) || empty($address)) {
- return false;
- }
- $ethSign = new EthSign();
- try {
- return $ethSign->verifySign($msg, $sign, $address);
- } catch (\Exception $e) {
- return false;
- }
- }
- /**
- * 获取全部配置
- * @param string $msg
- * @return string
- */
- function getAllConfig(): array
- {
- return (new \app\common\model\Config())->where('group', 'basic')->column('name,value');
- }
- /**
- * 获取单独配置
- * @param string $msg
- * @return string
- */
- function getConfig(string $name): string
- {
- return (new \app\common\model\Config())->where('name', $name)->value('value');
- }
- //获取语言
- function getLangKey($lan = 'zh'): int
- {
- $toLang = ['zh' => 0, 'en' => 1];
- return $toLang[$lan];
- }
- //判断是否是erc20地址
- function isErc20AddressValid($address)
- {
- // 去掉地址的 "0x" 前缀
- $address = trim($address);
- if (substr($address, 0, 2) == '0x') {
- $address = substr($address, 2);
- }
- // 检查地址是否符合以太坊地址的基本格式
- return preg_match('/^[0-9a-fA-F]{40}$/', $address) === 1;
- }
- //判断绝对路径
- function isHttpOrHttps($url)
- {
- return strpos($url, 'http://') === 0 || strpos($url, 'https://') === 0;
- }
|