@magiceden/magiceden-sdk
Version:
A TypeScript SDK for interacting with Magic Eden's API across multiple chains.
22 lines (21 loc) • 900 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVMAddressToLowerCaseSchema = exports.EVMAddressSchema = exports.zEVMAddress = void 0;
exports.isValidEvmAddress = isValidEvmAddress;
const viem_1 = require("viem");
const zod_1 = require("zod");
const VALID_EVM_ADDRESS = /^(((0x)?[0-9a-fA-F]{40})|(XE[0-9]{2}[0-9A-Za-z]{30,31}))$/;
exports.zEVMAddress = zod_1.z.string().regex(VALID_EVM_ADDRESS);
exports.EVMAddressSchema = zod_1.z.string().superRefine((addr, ctx) => {
if (!isValidEvmAddress(addr)) {
ctx.addIssue({
code: zod_1.z.ZodIssueCode.custom,
message: `Invalid EVM address: ${addr}`,
});
}
return zod_1.z.NEVER;
});
exports.EVMAddressToLowerCaseSchema = exports.EVMAddressSchema.transform((addr) => addr.toLowerCase());
function isValidEvmAddress(address) {
return (0, viem_1.isAddress)(address);
}