UNPKG

1.9 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const bs58check_1 = __importDefault(require("bs58check"));
7const crypto_1 = require("../crypto");
8const errors_1 = require("../errors");
9const managers_1 = require("../managers");
10const public_key_1 = require("./public-key");
11class Address {
12 static fromPassphrase(passphrase, networkVersion) {
13 return Address.fromPublicKey(public_key_1.PublicKey.fromPassphrase(passphrase), networkVersion);
14 }
15 static fromPublicKey(publicKey, networkVersion) {
16 if (!/^[0-9A-Fa-f]{66}$/.test(publicKey)) {
17 throw new errors_1.PublicKeyError(publicKey);
18 }
19 if (!networkVersion) {
20 networkVersion = managers_1.configManager.get("network.pubKeyHash");
21 }
22 const buffer = crypto_1.HashAlgorithms.ripemd160(Buffer.from(publicKey, "hex"));
23 const payload = Buffer.alloc(21);
24 payload.writeUInt8(networkVersion, 0);
25 buffer.copy(payload, 1);
26 return bs58check_1.default.encode(payload);
27 }
28 static fromMultiSignatureAsset(asset, networkVersion) {
29 return this.fromPublicKey(public_key_1.PublicKey.fromMultiSignatureAsset(asset), networkVersion);
30 }
31 static fromPrivateKey(privateKey, networkVersion) {
32 return Address.fromPublicKey(privateKey.publicKey, networkVersion);
33 }
34 static validate(address, networkVersion) {
35 if (!networkVersion) {
36 networkVersion = managers_1.configManager.get("network.pubKeyHash");
37 }
38 try {
39 return bs58check_1.default.decode(address)[0] === networkVersion;
40 }
41 catch (err) {
42 return false;
43 }
44 }
45}
46exports.Address = Address;
47//# sourceMappingURL=address.js.map
\No newline at end of file