0.1.26 • Published 6 months ago

@weblock-wallet/sdk v0.1.26

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

초기화

import WeBlockSDK from '@weblock-wallet/sdk'
const sdk = new WeBlockSDK({
  environment: 'dev', // 'local' | 'dev' | 'stage' | 'prod'
  apiKey: 'YOUR_API_KEY',
  orgHost: 'YOUR_ORG_HOST',
})

기능명세

1. 사용자(sdk.user)

로그인

const response = await sdk.user.signIn('google.com')
// response: SignInResponse
// {
// status: 'NEW_USER' | 'WALLET_READY' | 'NEEDS_PASSWORD'
// email: string
// photoURL: string | null
// wallet?: WalletInfo // WALLET_READY 상태일 때만
// }

지갑 생성

const response = await sdk.user.createWallet('password')
// response: { wallet: WalletInfo }

지갑 복구

const response = await sdk.user.recoverWallet('password')
// response: { wallet: WalletInfo }

로그아웃

await sdk.user.signOut()

2. 지갑(sdk.wallet)

지갑 정보 조회

const info = await sdk.wallet.getInfo()
// WalletInfo {
// address: string
// network: {
// current: NetworkInfo
// available: NetworkInfo[]
// }
// assets: {
// native: {
// symbol: string
// balance: string
// decimals: number
// usdValue?: string
// }
// tokens: TokenInfo[]
// nfts: NFTCollection[]
// }
// recentTransactions: Transaction[]
// }

네트워크 변경

const response = await sdk.wallet.switchNetwork('ethereum-mainnet')
// response: {
// network: NetworkInfo
// assets: WalletInfo['assets']
// }

이벤트 구독

// 지갑 정보 업데이트
const unsubscribe = sdk.wallet.onWalletUpdate((wallet: WalletInfo) => {
  console.log('지갑 업데이트:', wallet)
})
// 트랜잭션 업데이트
const unsubscribeTx = sdk.wallet.onTransactionUpdate((tx: Transaction) => {
  console.log('새로운 트랜잭션:', tx)
})

3. 자산(sdk.asset)

토큰 전송

const response = await sdk.asset.transfer({
  networkId: 'ethereum-mainnet',
  tokenAddress: '0x...', // NATIVE인 경우 필요 없음
  to: '0x...',
  amount: '1.0',
  type: 'NATIVE' | 'ERC20' | 'NFT' | 'SECURITY',
})
// response: { transaction: Transaction }

토큰 추가

await sdk.asset.addToken({
type: 'ERC20' | 'SECURITY',
networkId: 'ethereum-mainnet',
address: '0x...',
symbol?: 'TOKEN',
decimals?: 18,
name?: 'Token Name'
})

NFT 컬렉션 추가

await sdk.asset.addNFTCollection({
networkId: 'ethereum-mainnet',
address: '0x...',
name?: 'NFT Collection'
})

시큐리티 토큰 전송 가능 여부 확인

const result = await sdk.asset.checkSecurityTokenCompliance({
  networkId: 'ethereum-mainnet',
  tokenAddress: '0x...',
  from: '0x...',
  to: '0x...',
  amount: '1.0',
})
// result: {
// canTransfer: boolean
// reasons?: string[]
// }