@rarible/types
Version:
`@rarible/types` is a TypeScript library that provides type definitions and interfaces for the Rarible ecosystem. This package is designed to facilitate seamless integration with Rarible's APIs and services, ensuring type safety and improved developer exp
40 lines (39 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.randomSolanaAddress = exports.SOLANA_ZERO_ADDRESS = exports.toSolanaAddressSafe = exports.toSolanaAddress = exports.solanaAddressValidator = exports.isSolanaAddress = void 0;
const address_js_1 = require("../../common/address.js");
const common_js_1 = require("../../common/common.js");
const domain_js_1 = require("../../union/enum/domain.js");
// Solana addresses are usually Base58 encoded strings.
// Regular expression to validate a Solana address.
const solanaAddressRegExp = new RegExp(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/);
function isSolanaAddress(address) {
return solanaAddressRegExp.test(address);
}
exports.isSolanaAddress = isSolanaAddress;
exports.solanaAddressValidator = (0, common_js_1.createLayer1fulValidator)(domain_js_1.BlockchainLayer1Enum.SOLANA, isSolanaAddress);
function toSolanaAddress(address) {
const safe = toSolanaAddressSafe(address);
if (!safe)
throw new address_js_1.InvalidAddressError(domain_js_1.BlockchainLayer1Enum.SOLANA, address);
return safe;
}
exports.toSolanaAddress = toSolanaAddress;
function toSolanaAddressSafe(address) {
if (isSolanaAddress(address))
return address;
return undefined;
}
exports.toSolanaAddressSafe = toSolanaAddressSafe;
exports.SOLANA_ZERO_ADDRESS = toSolanaAddress("11111111111111111111111111111111");
function randomSolanaAddress() {
const base58Chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
const addressLength = Math.floor(Math.random() * (44 - 32 + 1)) + 32; // Random length between 32 and 44
let address = "";
for (let i = 0; i < addressLength; i++) {
const randomIndex = Math.floor(Math.random() * base58Chars.length);
address += base58Chars[randomIndex];
}
return toSolanaAddress(address);
}
exports.randomSolanaAddress = randomSolanaAddress;