UNPKG

1.42 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.addressUtils = void 0;
4const ethereumjs_util_1 = require("ethereumjs-util");
5const _ = require("lodash");
6const hex_utils_1 = require("./hex_utils");
7const BASIC_ADDRESS_REGEX = /^(0x)?[0-9a-f]{40}$/i;
8const SAME_CASE_ADDRESS_REGEX = /^(0x)?([0-9a-f]{40}|[0-9A-F]{40})$/;
9const ADDRESS_LENGTH = 40;
10exports.addressUtils = {
11 isChecksumAddress(address) {
12 return ethereumjs_util_1.isValidChecksumAddress(address);
13 },
14 isAddress(address) {
15 if (!BASIC_ADDRESS_REGEX.test(address)) {
16 // Check if it has the basic requirements of an address
17 return false;
18 }
19 else if (SAME_CASE_ADDRESS_REGEX.test(address)) {
20 // If it's all small caps or all all caps, return true
21 return true;
22 }
23 else {
24 // Otherwise check each case
25 const isValidChecksummedAddress = exports.addressUtils.isChecksumAddress(address);
26 return isValidChecksummedAddress;
27 }
28 },
29 padZeros(address) {
30 return ethereumjs_util_1.addHexPrefix(_.padStart(ethereumjs_util_1.stripHexPrefix(address), ADDRESS_LENGTH, '0'));
31 },
32 generatePseudoRandomAddress() {
33 // tslint:disable-next-line: custom-no-magic-numbers
34 return hex_utils_1.hexUtils.random(20);
35 },
36};
37//# sourceMappingURL=address_utils.js.map
\No newline at end of file