我制作了一个从 Aptos 区块链返回用户资产的应用程序。在应用程序中,我有一个用户地址的表单。我的目标是使用 RegExp 或类似的东西来验证该地址。 我有这个代码:
const address = '0xcd30fbbda98b2aed026772c13e5ed90a7f056b589ef9e78cd96415e1af12451c';
function isValidAddress(address) { // code to check address }
console.log(isValidAddress(address));
我将不胜感激任何帮助。
这取决于您的用例。
如果你想验证客户端,你可以尝试这样的事情:
import { TxnBuilderTypes } from "aptos";
import const { AccountAddress } = TxnBuilderTypes;
// Validate.
let accountAddress = AccountAddress.fromHex("0xcd30fbbda98b2aed026772c13e5ed90a7f056b589ef9e78cd96415e1af12451c");
// You can get it back as a string like this.
let accountAddressString = accountAddress.toHexString();
AccountAddress
:https://aptos-labs.github.io/ts-sdk-doc/classes/TxnBuilderTypes.AccountAddress.html.您还可以尝试使用运行 API 的 Aptos 节点(即完整节点)进行验证。例如:
let client = AptosClient("https://fullnode.mainnet.aptoslabs.com");
client.getAccount("0xcd30fbbda98b2aed026772c13e5ed90a7f056b589ef9e78cd96415e1af12451c");
如果帐户存在,您将收到 200,如果不存在,您将收到 404。但如果帐户地址无效,您将收到 400(错误请求)。
以上答案适用于旧版 v1 SDK。您可以使用 v2 TS SDK 来完成此操作,如下所示:
import { AccountAddress } from "../../src";
function myFunction {
let addr = "0x1";
// Get an actual AccountAddress object.
let accountAddress = AccountAddress.from(addr);
// Just check if the account address is valid.
let result = AccountAddress.isValid(addr);
let valid = result.valid;
}
您可以在此处了解有关 AccountAddress 的更多信息:https://aptos-labs.github.io/aptos-ts-sdk/@aptos-labs/ts-sdk-1.9.1/classes/AccountAddress.html.