TRUSTED_FORWARDER 지원 개발 계획 요약
1. 개발 목표
TRUSTED_FORWARDER 컨트랙트의 생성 및 관리를 지원하고, 기존의 .env 기반 대납 검증 로직을 DB 기반의 유연한 시스템으로 전환합니다.
2. 주요 변경 사항
| 영역 |
기존 |
개선 후 |
| 컨트랙트 생성 |
ERC-721, ERC-1155 만 지원 |
Forwarder 컨트랙트 생성 API 추가 |
| Forwarder 주소 |
.env 파일에 고정 값으로 저장 |
deployedContracts DB 컬렉션에서 조회/검증 |
| DB 적재 |
721, 1155 데이터만 저장 |
Forwarder 타입 구분하여 저장 (contractType: ‘Forwarder’) |
| 빌드 시스템 |
721, 1155 컨트랙트만 포함 |
Forwarder.sol 포함하여 pnpm --filter contracts 통합 |
3. 단계별 상세 계획
1단계: 컨트랙트 작성 및 시스템 통합
- C-1: EIP-712 및 ERC-2771 호환 Forwarder.sol 컨트랙트 작성.
- C-2: pnpm --filter contracts build 및 lint 프로세스에 Forwarder.sol 포함.
2단계: 백엔드 API 및 DB 로직 구현
- A-1: /api/contracts/forwarder/deploy API 구현 (Forwarder 배포).
- A-2: deployedContracts 컬렉션에 contractType: ‘Forwarder’ 필드를 포함하도록 데이터 적재 로직 업데이트.
- A-3 & A-4: /transfer/signature API에서 .env 사용을 제거하고, 요청된 Forwarder 주소를 DB에서 조회하여 존재 여부 및 활성화 상태를 검증하도록 로직 변경.
- A-5: 검증 성공 시에만 대납 트랜잭션 요청을 생성.