메서드

Wepin Widget Javascript SDK에서 제공하는 메서드 입니다.

getStatus

await wepinSdk.getStatus()

WepinSDK의 Lifecycle 상태 값을 반환합니다.

Parameters

  • <void>

Return value

  • WepinLifeCycle <string>

    • not_initialized: WepinSDK이 초기화되지 않음

    • initializing: WepinSDK초기화 진행 중

    • initialized: WepinSDK초기화 완료

    • before_login: WepinSDK은 초기화되었으나 사용자는 로그인되지 않음

    • login: 사용자가 로그인 되었고 위핀에도 가입되어있음

    • login_before_register : 사용자가 로그인하였으나 위핀에 가입되지 않음

Example

const status = await wepinSdk.getStatus()

openWidget

await wepinSdk.openWidget()

위젯 윈도우를 보여 줍니다. 만약 사용자가 로그인 되어 있지 않다면, 위젯 윈도우는 열리지 않습니다. 따라서 openWidget 전에 반드시 사용자는 위핀에 로그인 되어 있어야 합니다. 위핀에 로그인 하기 위해서는 loginWithUI 또는 @wepin/login-jsoginWepin 메서드를 사용합니다.

Parameters

  • <void>

Return Value

  • <Promise> <void>

Example

await wepinSdk.openWidget()

closeWidget

wepinSdk.closeWidget()

위젯 윈도우를 닫습니다. 윈도우를 닫아도 로그아웃 되지 않습니다.

Parameters

  • <void>

Return Value

  • <void>

Example

wepinSdk.closeWidget()

loginWithUI

await wepinSdk.loginWithUI({email}?)

로그인한 사용자의 정보를 반환합니다. 로그인한 사용자가 없을 경우, 위핀 위젯은 로그인 페이지를 표시할 것입니다. 위젯 없이 로그인을 수행하려면, @wepin/login-js에서 loginWepin() 메서드를 사용하세요.

Parameters

  • email <string> optional

    위핀에 로그인할 사용자의 이메일 주소

Return Value

  • Promise <IWepinUser>

    • status <string>

      성공 여부<'success'|'fail'>

    • userInfo <object> optional

      • userId <string>

        위핀의 사용자 ID

      • email <string>

        위핀에 로그인된 사용자의 이메일 주소

      • provider <string>

        <'google'|'apple'|'naver'|'discord'|'email'|'external_token'>

      • use2FA <boolean>

        사용자 지갑에 2FA가 활성화 되어 있는지 여부

    • userStatus: <object>

      • loginStatus <string>

        <'complete' | 'pinRequired' | 'registerRequired'>

        사용자의 loginStatus 값이 'complete'가 아닌 경우, 위핀에 등록을 해야 합니다.

      • pinRequired <boolean> optional

        사용자 PIN 번호 필요 여부

    • walletId <string>

      위핀 사용자의 지갑 ID

Example

//without email
const userInfo = await wepinSdk.loginWithUI()
//with email
const userInfo = await wepinSdk.loginWithUI({email})
  • respnse

{
    "status": "success",
      "userInfo": {
        "userId": "120349034824234234",
        "email": "abc@gmail.com",
        "provider": "google",
        "use2FA": true,
      },
}

register

await wepinSdk.register()

사용자를 위핀에 등록합니다. 가입 및 로그인 후, 위핀 위젯의 등록 페이지가 열리고 위핀 서비스에 등록(지갑 생성 및 계정 생성)을 진행합니다. 이 기능은 WepinSDK의 WepinLifeCycle이 login_before_register일 때만 사용할 수 있습니다. @wepin/login-js에서 loginWepin() 메서드를 호출한 후, userStatus의 loginStatus 값이 'complete'가 아니면 이 메서드를 호출해야 합니다.

Parameters

  • <void>

Return Value

  • Promise <IWepinUser>

    • status <string>

      성공 여부<'success'|'fail'>

    • userInfo <object> optional

      • userId <string>

        위핀의 사용자 ID

      • email <string>

        위핀에 로그인된 사용자의 이메일 주소

      • provider <string>

        <'google'|'apple'|'naver'|'discord'|'email'|'external_token'>

      • use2FA <boolean>

        사용자 지갑에 2FA가 활성화 되어 있는지 여부

    • userStatus: <object>

      • loginStatus <string>

        <'complete' | 'pinRequired' | 'registerRequired'>

        사용자의 loginStatus 값이 'complete'가 아닌 경우, 위핀에 등록을 해야 합니다.

      • pinRequired <boolean> optional

        사용자 PIN 번호 필요 여부

    • walletId <string>

      위핀 사용자의 지갑 ID

Example

const userInfo = await wepinSdk.register()

registerUserEmail

await wepinSdk.registerUserEmail(param)

registerUserEmail 함수는 OAuth 프로바이더로부터 이메일이 등록되지 않은 계정에 대해 위핀 이메일을 등록합니다.

Supported Version

  • 버전 0.0.18 이상에서 지원

Parameters

  • provider <LoginProviders> Provider for Firebase login. The value must be one of the supported login provider names in lowercase, such as 'google', 'naver', 'discord', 'apple', 'facebook', or 'line'. Please refer to Wepin Social Login Auth Provider documentation to check the supported login providers.

  • idToken <string> id token value to be used for login

  • accessToken <string> access token value to be used for login

Return Value

  • Promise <IWepinUser>

    • status <string>

      성공 여부<'success'|'fail'>

    • userInfo <object> optional

      • userId <string>

        위핀의 사용자 ID

      • email <string>

        위핀에 로그인된 사용자의 이메일 주소

      • provider <string>

        <'google'|'apple'|'naver'|'discord'|'email'|'external_token'>

      • use2FA <boolean>

        사용자 지갑에 2FA가 활성화 되어 있는지 여부

    • userStatus: <object>

      • loginStatus <string>

        <'complete' | 'pinRequired' | 'registerRequired'>

        사용자의 loginStatus 값이 'complete'가 아닌 경우, 위핀에 등록을 해야 합니다.

      • pinRequired <boolean> optional

        사용자 PIN 번호 필요 여부

    • walletId <string>

      위핀 사용자의 지갑 ID

Example

await wepinSdk.registerUserEmail({
    provider: 'google',
    idToken: 'google-idToken',
})

logout

await wepinSdk.logout()

위핀 사용자를 로그아웃 합니다.

Parameters

  • <void>

Return Value

  • Promise <void>

Example

await wepinSdk.logout()

getAccounts

await wepinSdk.getAccounts()
or
await wepinSdk.getAccounts(options?)

앱에서 사용 가능한 사용자의 계정정보(네트워크와 주소)를 반환합니다.

이 기능은 위핀에 로그인한 후에만 사용할 수 있습니다.

options 파라미터가 없는 경우에는 사용자의 모든 계정 정보가 반환됩니다.

Parameters

  • options <object> optional

    • networks <string[]> optional

      반환 받고자 하는 계정의네트워크 입니다. networks 에 넣을 수 있는 블록체인 네트워크는 아래의 지원 블록체인 페이지에서 확인가능합니다.

    • withEoa <boolean> optional

      AA 계정이 있는 경우, EOA 계정도 포함해서 반환 받을지 여부

지원 블록체인

Return Value

사용자가 로그인 되어 있는 경우, 네트워크의 계정 정보 Account[] 가 반환됩니다.

  • Promise <Account[]>

    • address <string>

      사용자 계정의 주소

    • network <string>

      사용자 계정의 network 종류

    • contract <string> optional

      토큰의 계약 주소

    • isAA <boolean> optional

      AA 계정인지 여부

Example

const result = await wepinSdk.getAccounts({
  networks: ['Ethereum'], 
  withEoa: true
})
  • response

[
  {
    "address": "0x0000001111112222223333334444445555556666",
    "network": "Ethereum",
  },
  {
    "address": "0x0000001111112222223333334444445555556666",
    "network": "Ethereum",
    "contract": "0x777777888888999999000000111111222222333333",
  },
  {
    "address": "0x4444445555556666000000111111222222333333",
    "network": "Ethereum",
    "isAA": true,
  },
]

getBalance

await wepinSdk.getBalance(accounts)
or
await wepinSdk.getBalance()

계정의 잔액(수량) 정보를 반환합니다. 이 기능은 위핀에 로그인한 후에만 사용할 수 있습니다.

accounts 파라미터가 없는 경우에는 사용자의 모든 계정의 잔액이 반환 됩니다.

Parameters

  • accounts <Account[]> optional

    • network <string>

      잔액을 조회할 사용자 계정의 네트워크 종류

    • address <string>

      잔액을 조회할 사용자 계정의 주소

    • isAA <boolean> optional

      AA 계정인지 여부

Return Value

  • Promise <AccountBalanceInfo[]>

    • network <string>

      사용자 계정의 네트워크 종류

    • address <string>

      사용자 계정의 주소

    • symbol <string>

      네트워크 심볼

    • balance <string>

      보유하고 있는 네트워크 코인의 갯수

    • tokens <TokenBalanceInfo[]>

      • symbol <string>

        토큰 심볼

      • balance <string>

        보유하고 있는 토큰의 갯수

      • contract <string>

        토큰 계약주소

Example

const result = await wepinSdk.getBalance([{
  address: '0x0000001111112222223333334444445555556666',
  network: 'Ethereum',
}])
  • response

[
    {
        "symbol": "ETH",
            "balance": "1.1",
        "tokens":[
            {
                "contract": "0x123...213",
                "symbol": "TEST",
                "balance": "10"
            },
        ]
    }
]

send

await wepinSdk.send({account, txData?})

위젯을 이용하여 send기능을 수행하고 send 트랜젝션의 ID정보를 반환합니다. 위핀에 로그인한 후에만 사용할 수 있습니다.

Parameters

  • account <Account>

    전송할 사용자의 계정 정보

    • network <string>

      전송할 네트워크 종류

    • address <string>

      전송할 계정의 주소

    • contract <String> optional

      토큰의 계약 주소

  • txData <object> optional

    • to <string>

      전송 받을 주소

    • amount <string>

      전송할 수량

Return Value

  • Promise <object>

    • txId <string>

    send 트랜잭션의 txID

Example

const result = await wepinSdk.send({
    account: {
        address: '0x0000001111112222223333334444445555556666',
        network: 'Ethereum',
    },
    txData: {
        to: '0x9999991111112222223333334444445555556666',
        amount: '0.1',
    }
})
  • response

{
    "txId": "0x76bafd4b700ed959999d08ab76f95d7b6ab2249c0446921c62a6336a70b84f32"
}

finalize

wepinSdk.finalize()

WepinSDK 사용을 종료합니다. WepinLifeCyclenot_initialized 로 변경됩니다.

Return Value

  • void

Example

wepinSdk.finalize()

Last updated