如何在 PHP 中以编程方式验证 Tether (TRC20) 钱包地址?

问题描述 投票:0回答:5

我遇到了与验证加密货币钱包地址(特别是 USDT)相关的问题。

USDT 可以作为 BTC 或 ETH 地址进行验证,具体取决于网络类型。

基本上是这样的:

  • 如果加密货币是 USDT 并且链类型是 ERC20,则根据 ETH 验证地址 地址格式。
  • 如果加密货币是 USDT 并且钱包类型是 OMNI,请根据 BTC 验证地址 地址格式。

我还没有找到针对 USDT:TRC20 地址的具体验证,并且我不知道如何验证它们。

php cryptocurrency tron
5个回答
6
投票

匹配 Tron 地址的正则表达式:

T[A-Za-z1-9]{33}


5
投票

不建议您自行验证地址,您应该使用类似的 API 波场协议 不仅要检查地址是否有效还要检查它是否不是垃圾邮件

您需要检查文档
tronprotocol

还可以检查如何发出http请求
这里

还有 屏蔽 TRC-20

检查这个网站作为参考


2
投票

trc20地址特点:

编码的主网地址以 T 开头,长度为 34 字节。

<?php
    function isTrc20($address){
       return substr($address,0,1)=="T" and strlen($address)==34;
    }
    if(isTrc20("TC74QG8tbtixG5Raa4fEifywgjrFs45fNz"))
       echo "yes";
    else
        echo "no";

信息来源:https://medium.com/tron-foundation/tron-developer-guide-account-2446633a750


1
投票

您可以根据 tron 白皮书 - 第 4.2 节有关从公钥创建地址的内容,使用嵌入的校验和来验证地址。

使用SHA3-256函数对公钥进行哈希处理(采用的SHA3协议是KECCAK-256)并提取结果的最后20个字节。在字节数组的开头添加 41,并确保初始地址长度为 21 字节。使用 SHA3-256 函数对地址进行两次哈希处理,并取前 4 个字节作为验证码。在初始地址末尾添加验证码,通过base58编码得到base58check格式的地址。编码后的主网地址以 T 开头,长度为 34 字节。

  1. 您需要使用base58解码地址
  2. 最后四个字节是校验和(checkSum1)
  3. 然后您需要使用 sha256 算法对解码后的地址本身进行哈希处理(不带校验和)两次并获取前 4 个字节
  4. 这些字节是实际的校验和(checkSum2)
  5. 如果 checkSum1 和 checkSum2 相同,则该地址可以被视为有效

如果你熟悉 JS,可以查看我的 gist 与 JS 实现

UPD:tronweb 中也有 API


0
投票

如果您因任何形式的网络欺诈或诈骗而损失,USDT 可以被追回。只要您有诈骗的详细信息,例如USDT 发送到的钱包地址、付款证明,也许还有您与诈骗者的对话详细信息。此信息将使西尔维斯特·G·布莱恩特(Sylvester G. Bryant,也称为 Yt7crackersz)在 INSTAGRAM 上了解如何帮助追回我丢失的资金,他是我合作过的最好的人之一:也可以通过电子邮件获取; Yt7crackersz@gmail[.]com

© www.soinside.com 2019 - 2024. All rights reserved.