DEV Community на русском
Подписаться
Как проверять адреса криптокошельков офлайн на Java
Валидация криптоадресов является критически важной серверной функцией для различных финансовых приложений и инструментов. Chainwarden — это библиотека с открытым исходным кодом на Java, специально разработанная для офлайн-валидации криптоадресов. Она выполняет проверки, такие как длина адреса, допустимость символов, сетевой префикс и контрольные суммы, без необходимости внешних сетевых вызовов. Хотя она может идентифицировать синтаксически корректные адреса, она не может проверить существование учетной записи, баланс, владение или статус смарт-контракта.Чтобы использовать Chainwarden, разработчики добавляют библиотеку из Maven Central или Gradle в свой проект. Основным методом валидации является AddressValidators.validate(chain, address), который возвращает объект AddressValidationResult. Этот результат указывает на допустимость и предоставляет такие детали, как канонический идентификатор цепочки, обнаруженный формат, машиночитаемый код ошибки и понятная человеку причина. Библиотека поддерживает валидацию по перечислению Chain или по строковому идентификатору цепочки, включая псевдонимы для цепочек, таких как BNB Smart Chain.Для надежных приложений рекомендуется использовать структурированный результат для предоставления информативных сообщений, а не просто статуса "истина/ложь". Chainwarden обрабатывает различные ошибки, такие как неподдерживаемая цепочка, неверная контрольная сумма или неправильная длина. Она поддерживает несколько цепочек, включая Bitcoin, Ethereum, BNB Smart Chain, Solana и TRON, каждая со своими специфическими форматами адресов.Chainwarden подходит для различных сценариев использования, таких как формы регистрации, формы вывода средств, адресные книги и валидация API. Однако ее следует интегрировать с бизнес-правилами, специфичными для цепочки, для перемещения средств, поскольку она не подтверждает такие требования, как теги назначения для XRP. Библиотека призвана быть быстрым, детерминированным и понятным инфраструктурным компонентом, валидирующим локальные свойства адреса без сетевых вызовов и возвращающим структурированные результаты.