abc-waas-sdk
v0.0.33
Published
ABC WaaS SDK for React/Next.js
Readme
abc-waas-sdk
프로젝트 개요
abc-waas-sdk는 ABC WaaS(Wallet-as-a-Service)를 위한 React/Next.js SDK입니다. 현재 버전 0.0.31이며, React 애플리케이션에서 라이브러리로 사용하도록 설계되었습니다.
주요 기능
🔐 인증 시스템
- SNS 로그인 지원: 소셜 네트워크 서비스 로그인 기능 구현
- 토큰 기반 인증: 액세스 토큰, 리프레시 토큰, 기본 인증 처리
- 회원가입: 필요시 자동 사용자 등록 플로우
🛡️ 보안 기능
- 보안 채널 통신: P-256 타원곡선 암호화를 사용한 엔드투엔드 암호화 구현
- AES 암호화: 안전한 데이터 전송을 위한 AES-CBC 암호화 사용
- 키 관리: 개인키/공개키 쌍과 공유 시크릿 처리
💰 지갑 통합
- MPC 지갑 지원: 다자간 계산(Multi-Party Computation) 지갑과 통합
- 지갑 관리: 지갑 정보 생성 및 관리
- 사용자 지갑 작업: 지갑 관련 API 호출 처리
아키텍처
핵심 컴포넌트
AbcWaasProvider: 전역 상태를 관리하는 React Context ProvideruseAbcWaas: SDK 기능에 접근하기 위한 메인 훅useSnsLogin: 소셜 로그인 작업을 위한 훅useSecureChannel: 보안 통신을 위한 훅
API 구조
- v2 API 엔드포인트: 인증, 회원 관리, 지갑 작업
- 보안 채널 API: 암호화된 통신 레이어
- TypeScript 지원: 완전한 타입 정의 포함
상태 관리
SDK는 여러 상태를 관리합니다:
- 인증 토큰 및 사용자 데이터
- 지갑 정보
- 보안 채널 설정
- 서비스별 데이터
기술 스택
- TypeScript: 완전한 타입 안전성
- React Hooks: 모던 React 패턴
- 암호화: 보안 작업을 위한
@noble/curves와@noble/hashes사용 - 빌드 시스템: ESM과 CommonJS 지원을 위한
tsup - Peer Dependencies: React 18+, React Router DOM 6.4+
사용 패턴
SDK는 provider 패턴을 따르며, 앱을 AbcWaasProvider로 감싸고 useSnsLogin 같은 훅을 사용하여 ABC WaaS 서비스와 상호작용합니다. 보안 지갑 작업과 인증 플로우의 복잡성을 처리하면서 깔끔한 React 인터페이스를 제공하도록 설계되었습니다.
이는 ABC의 wallet-as-a-service 플랫폼을 React 애플리케이션에 통합하기 위한 프로덕션 준비가 된 SDK로, 보안과 사용자 인증에 강한 초점을 맞추고 있습니다.
Project Overview
This is a React/Next.js SDK for ABC WaaS (Wallet-as-a-Service) that provides authentication and wallet functionality. It's currently at version 0.0.31 and is designed to be used as a library in React applications.
Key Features
🔐 Authentication System
- SNS Login Support: Implements social network service login functionality
- Token-based Authentication: Handles access tokens, refresh tokens, and basic authentication
- Member Registration: Automatic user registration flow when needed
🛡️ Security Features
- Secure Channel Communication: Implements end-to-end encryption using P-256 elliptic curve cryptography
- AES Encryption: Uses AES-CBC encryption for secure data transmission
- Key Management: Handles private/public key pairs and shared secrets
💰 Wallet Integration
- MPC Wallet Support: Integrates with Multi-Party Computation wallets
- Wallet Management: Create and manage wallet information
- User Wallet Operations: Handle wallet-related API calls
Architecture
Core Components
AbcWaasProvider: React Context Provider that manages global stateuseAbcWaas: Main hook for accessing SDK functionalityuseSnsLogin: Hook for social login operationsuseSecureChannel: Hook for secure communication
API Structure
- v2 API Endpoints: Authentication, member management, and wallet operations
- Secure Channel API: Encrypted communication layer
- TypeScript Support: Full type definitions included
State Management
The SDK manages several pieces of state:
- Authentication tokens and user data
- Wallet information
- Secure channel configuration
- Service-specific data
Technical Stack
- TypeScript: Full type safety
- React Hooks: Modern React patterns
- Cryptography: Uses
@noble/curvesand@noble/hashesfor secure operations - Build System:
tsupfor bundling with ESM and CommonJS support - Peer Dependencies: React 18+, React Router DOM 6.4+
Usage Pattern
The SDK follows a provider pattern where you wrap your app with AbcWaasProvider and then use hooks like useSnsLogin to interact with the ABC WaaS services. It's designed to handle the complexity of secure wallet operations and authentication flows while providing a clean React interface.
This appears to be a production-ready SDK for integrating ABC's wallet-as-a-service platform into React applications, with a strong focus on security and user authentication.
