CODE API Docs - KO
  • About CODE
  • API Reference
    • Introduction
    • Changelog
    • IVMS101
      • 지갑 주소 검증하기
    • Header Parameter
    • Security
    • 오류 반환
    • 자산 이전 내역 관리
  • CODE-Cipher
    • Code-Cipher 서버 실행 가이드
    • API Specification
      • VASP 목록 조회
      • 공개키 목록 조회
      • 가상 자산 주소 조회
      • 자산 이전 허가 요청
      • 자산 이전 결과(txid) 전송
      • 트랜잭션 상태 조회
      • 자산 이전 종료
      • 암호화
      • 복호화
      • 헬스 체크
      • ID Connect
  • CODE API Specification
    • VASP 목록 조회
    • 공개키 목록 조회
    • 주소로 VASP 찾기 요청
    • 주소로 VASP 찾기 결과 조회
    • 가상 자산 주소 조회
    • 자산 이전 허가 요청
    • 자산 이전 결과(txid) 전송
    • 트랜잭션 상태 조회
    • 자산 이전 종료
  • VASP API Specification
    • 가상 자산 주소 조회
    • 자산 이전 허가 요청
    • 자산 이전 결과(txid) 전송
    • 트랜잭션 상태 조회
    • 자산 이전 종료
    • 헬스 체크
  • ID Connect
    • ID Connect VASP 목록 조회
    • ID Connect 본인 확인
  • 블랙리스트 월렛 주소 탐지 API (옵션)
  • 가이드
    • VASP를 위한 UI 가이드
    • ID Connect UI 가이드
    • 수신 테스트 하기
    • 수신자 제한 옵션
    • 트래블룰과 온체인 분석 데이터
Powered by GitBook
On this page
  • 주소 먼저 검증
  • ‘:’의 유무를 먼저 검증
  1. API Reference
  2. IVMS101

지갑 주소 검증하기

PreviousIVMS101NextHeader Parameter

Last updated 1 year ago

암호화폐의 지갑 주소는 지갑 주소와 Tag 혹은 Memo, 그리고 이 둘을 구분하기 위한 구분자 등을 조합하여 다양한 형식으로 만들어 집니다. 주의해야 할 점은, 이렇게 다양한 형태로 존재하는 지갑 주소를 IVMS101 프로토콜 상에서는 하나의 문자열(string)로 다룬다는 점입니다.

따라서 이론적으로 암호화폐 지갑 주소는 다음과 같은 4가지의 형태가 존재할 수 있습니다.

설명

예시 자산

주소 포맷

1

주소 단순 문자열로 이루어진 경우

BTC , ETH…

address

2

주소 문자열에 Tag나 Memo가 추가되는 경우

EOS, XRP…

address:memo or tag

3

주소에 ‘:’ 이 포함되어 있는경우

BCH, Kaspa…

currency:address

4

주소에 ‘:’이 포함되어 있고 Tag나 Memo가 추가되는 경우

현재는 없으나 미래에 존재할 수 있다고 가정

currency:address:memo or tag

이때, 송신하는 측(Originator VASP)에서는 는 메모나 태그가 있는 지갑 주소를 ‘:’으로 연결해서 하나로 만들어 보내기로 약속되어 있습니다. 그렇기 때문에 수신하는 측(Beneficiary VASP)에서 예외 케이스 없이 잘 처리하기 위해서는, 다양한 지갑 주소의 경우를 고려하여 주소를 검증하는 흐름을 아래와 같이 잘 설계해야 합니다.

주소 먼저 검증

  1. 받은 그대로의 문자열로 주소가 존재하는지를 검증합니다.

  2. 검증에 실패했다면, 주소에 ‘:’이 있는지를 확인하고, 있다면 맨 우측 ‘:’을 기준으로 문자열을 분할합니다.

  3. 분할한 첫 번째 문자열로 주소가 존재하는지를 다시 검증합니다.

주의사항

  • 문자열 분할 시, ‘:’의 개수와 무관하게 반드시 맨 우측의 것을 기준으로 해야 합니다.

  • ‘:’의 존재 여부와 관계없이 전체 스트링 주소 검증은 우선적으로 진행합니다.

‘:’의 유무를 먼저 검증

만약 이미 ‘:’의 유무를 먼저 검증하는 흐름으로 설계가 되어 있다면 아래와 같은 방법으로 보완하는 로직을 추가할 수 있습니다.

  1. ‘:’이 없으면 바로 주소를 검증합니다.

  2. ‘:’이 있으면 맨 우측 ‘:’을 기준으로 문자를 분할하여 첫 번째 문자열로 주소를 검증합니다.

  3. 실패했다면 받은 그대로의 문자열로(‘:’을 포함하는) 주소 존재 여부를 검증합니다.