如何从账户 ID 获取 SS58 地址?

问题描述

如何从账户 ID 中获取 SS58 地址? 账户 ID:0x6d6f646c63622f6272696467000000000000000000000000000000000000000 ss58地址:?

解决方法

https://github.com/paritytech/substrate/wiki/External-Address-Format-(SS58)

您可以使用 JS 库简单地执行此操作:https://substrate.dev/docs/en/knowledgebase/advanced/ss58-address-format#polkadotjs

以下是使用此库的一组工具:https://www.shawntabrizi.com/substrate-js-utilities/

// Import Polkadot.js API dependencies.
const { decodeAddress,encodeAddress } = require("@polkadot/keyring");
const { hexToU8a,isHex } = require("@polkadot/util");

// Specify an address to test.
const address = "<addressToTest>";

// Check address.
const isValidSubstrateAddress = () => {
  try {
    encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address));

    return true;
  } catch (error) {
    return false;
  }
};

// Query result.
const isValid = isValidSubstrateAddress();
console.log(isValid);