Methods

changeLanguage

fun changeLanguage(options: WidgetAttributes)

To modify the widget's properties such as language and currency

Parameters

  • attributes <WidgetAttributes>

    • defaultLanguage <String> Set the default language of the widget. The default value is ko, and currently supported languages are en and ko.

    • defaultCurrency <String> Set the default currency of the widget. The default value is KRW, and currently supported currencies are USD and KRW.

Returns

  • None

Exception

Example

wepinWidgetSDK.changeLanguage(WidgetAttributes(defaultLanguage = "ko", defaultCurrency = "KRW"))

getStatus

suspend fun getStatus(): WepinLifeCycle {

Returns the lifecycle status of the WepinSDK.

Parameters

  • None

Returns

  • <WepinLifeCycle>

    • NOT_INITIALIZED - WepinSDK has not been initialized.

    • INITIALIZING - WepinSDK is in the process of initializing.

    • INITIALIZED - WepinSDK has been successfully initialized.

    • BEFORE_LOGIN - WepinSDK is initialized, but the user is not logged in.

    • LOGIN - The user is logged in and registered with Wepin.

    • LOGIN_BEFORE_REGISTER - The user is logged in but not registered with Wepin.

Exception

Example

coroutineScope.launch {
    val status = wepinWidgetSDK.getStatus()
}

login

The login variable is a Wepin login library that includes various authentication methods, allowing users to log in using different approaches. It supports email and password login, OAuth provider login, login using ID tokens or access tokens, and more. For detailed information on each method, refer to the official Login Library guide.

Available Methods

These methods support various login scenarios, allowing you to select the appropriate method based on your needs

Exception

Example

coroutineScope.launch { 
    //WepinLogin instance generate
    val wepinLogin: WepinLogin = WepinLogin(
        WepinLoginOptions(
            context = context,
            appId = appId,
            appKey = appKey
        )
    )
    //WepinLogin initialization
    wepinLogin.init()
    {
        //Log in using an OAuth Provider
        val response = wepinLogin.loginWithOauthProvider(
            LoginOauth2Params(
                provider = "google",
                clientId = "your-google-client-id"
            )
        )
        //Get the sign
        val sign = wepinLogin.getSignForLogin(
            privateKeyHex = "private key", 
            message = response.token
        )
        var loginResult: LoginResult? = null
        if (response.provider == "naver" || response.provider = "discord") {
            //Log in using an Access Token
            loginResult = wepinLogin.loginWithAccessToken(
                LoginOauthAccessTokenRequest(
                    provider = response.provider,
                    token = response.token,
                    sign = sign
                )
            )
        } else {
            //Log in using an ID Token
            loginResult = wepinLogin.loginWithIdToken(
                LoginOauthIdTokenRequest(
                    idToken = response.token,
                    sign = sign
                )
            )
        }
    }
    or 
    {
        //Log in using email and password
        val loginResult = wepinLogin.loginWithEmailAndPassword(
            LoginWithEmailParams(
                email = "abc@defg.kr",
                password = "abcdefg$"
            )
        )
    }
    //Wepin Login
    val userInfo = wepinLogin.loginWepin(loginResult)
}

openWidget

suspend fun openWidget()

Opens the widget window. If the user is not logged in, the widget window will not open. Therefore, the user must be logged in to Wepin before calling openWidget. To log in to Wepin, use the loginWepin method from the login variable.

Parameters

  • None

Returns

  • None

Exception

Example

wepinWidgetSDK.openWidget()

closeWidget

fun closeWidget()

Closes the widget window. Closing the window does not log out the user.

Parameters

  • None

Returns

  • None

Exception

Example

wepinWidgetSDK.closeWidget()

register

suspend fun register(): WepinUser?

Registers the user with Wepin. After signing up and logging in, the Wepin widget’s registration page opens, allowing the user to register (create a wallet and account) with Wepin services. This function can only be used when WepinLifeCycle is loginBeforeRegister. After calling the loginWepin() method from the login variable, if the loginStatus value in userStatus is not 'complete', this method should be called

Parameters

  • None

Returns

  • <WepinUser>

    • status <'success' | 'fail'> The login status

    • userInfo <UserInfo> (optional) The user's information, including:

      • userId <String> The user's ID

      • email <String> The user's email

      • provider <'google' | 'apple' | 'naver' | 'discord' | 'email' | 'external_token'> The login provider

      • use2FA <Boolean> Whether the user uses two-factor authentication

    • walletId <String> The user's wallet ID

    • userStatus <UserStatus> (optional) The user's Wepin login status, including:

      • loginStatus <WepinLoginStatus - 'complete' | 'pinRequired' | 'registerRequired'> If the user's loginStatus value is not 'complete', the user must register with Wepin.

      • pinRequired <Boolean> Whether a PIN is required

    • token <Token> The user's Wepin token

      • accessToken <String> The access token

      • refreshToken <String> The refresh token

Exception

Example

coroutineScope.launch {
    wepinWidget.register()
}

getAccounts

suspend fun getAccounts(networks: List<String>? = null, withEoa: Boolean? = null): ArrayList<Account>?

Returns the user's account information (networks and addresses) available in the app. This function can only be used after logging in to Wepin. If no parameters are provided, it returns information for all the user's accounts.

Parameters

  • networks <List<String>> optional The networks for which you want to return account information. The supported blockchain networks can be found on the supported blockchain page

  • withEoa <Boolean> optional If AA accounts are present, this determines whether to include EOA accounts in the return.

Returns

  • <ArrayList<Account>> optional

    • network <String> The network type of the user's account

    • address <String> User account address

    • contract <String> optional The contract address of the token

    • isAA <Boolean> optional Indicates if it is an AA account

Exception

Example

coroutineScope.launch {
    wepinWidget.getAccounts(
        networks: listOf("Ethereum"),
        withEoa: true
    )
}

getBalance

suspend fun getBalance(accounts: ArrayList<Account>): ArrayList<AccountBalanceInfo>

Returns the balance information (amount) of accounts. This function can only be used after logging in to Wepin. If no accounts parameter is provided, it returns the balance of all user accounts.

Parameters

  • accounts <ArrayList<Account>>

    • network <String> The network type of the account for which to check the balance

    • address <String> The address of the account for which to check the balance

    • contract <String> optional The contract address of the token

    • isAA <Boolean> optional Indicates if it is an AA account

Returns

  • <ArrayList<AccountBalanceInfo>>

    • address <String> The network type of the user's account

    • network <String> The address of the user's account

    • symbol <String> Network symbol

    • balance <String> The amount of the network coin held

    • tokens <TokenBalanceInfo>

      • symbol <String> Token symbol

      • balance <String> The amount of the token held

      • contract <String> Token contract address

Exception

Example

coroutineScope.launch {
    val accountList: ArrayList<Account> = wepinWidget.getAccounts()
    wepinWidget.getBalance(accountList)
}

getNFTs

suspend fun getNFTs(refresh: Boolean, networks: List<String>? = null): ArrayList<WepinNFT>

Returns the user's NFTs. This function can only be used after logging in to Wepin. If no networks parameter is provided, it returns all of the user's NFT information.

Parameters

  • refresh <Boolean> optional Required parameter to indicate whether to refresh the NFT data

  • networks <List<String>> A list of network names to filter the NFTs

Returns

  • <ArrayList<WepinNFT>>

    • account <Account>

      • network <String> The network type of the account for which to check the balance

      • address <String> The address of the account for which to check the balance

      • contract <String> optional The contract address of the token

      • isAA <Boolean> optional Indicates if it is an AA account

    • contract <WepinNFTContract>

      • name <String> NFT contract name

      • address <String> NFT contract address

      • scheme <String> Scheme of the NFT

      • description <String> optional Description of the NFT contract

      • network <String> Network associated with the NFT contract

      • externalLink <String> optional External link associated with the NFT contract

      • imageUrl <String> optional Image URL associated with the NFT contract

    • name <String> Name of the NFT

    • description <String> Description of the NFT

    • externalLink <String> External link associated with the NFT

    • imageUrl <String> Image URL associated with the NFT

    • contentUrl <String> optional URL pointing to the content associated with the NFT

    • quantity <Int> Quantity of the NFT

    • contentType <String> Content type of the NFT ('image' | 'video')

    • state <Int> State of the NFT

Exception

Example

coroutineScope.launch {
    wepinWidget.getNFTs(
        refresh = true,
        networks = listOf("Ethereum")
    )
}

send

suspend fun send(sendData: SendData): SendResponse

Performs the send function using the widget and returns the ID information of the send transaction. This function can only be used after logging in to Wepin.

Parameters

  • sendData <SendData>

    • account <Account> The user's account information to send from

      • network <String> The network type of the account for which to check the balance

      • address <String> The address of the account for which to check the balance

      • contract <String> optional The contract address of the token

      • isAA <Boolean> optional Indicates if it is an AA account

    • txData <TxData>

      • toAddress <String> The address to send to

      • amount <String> The amount to send

Returns

  • <SendResponse>

    • txId <String> The transaction ID of the send transaction

Exception

Example

coroutineScope.launch {
    val result = wepinWidgetSDK.send(
        SendData(
            account = Account(
                network = "Ethereum",
                address = "0x0000001111112222223333334444445555556666"
            ),
            txData = TxData(
                toAddress = "0x9999991111112222223333334444445555556666",
                amount = "0.1"
            )
        )
    )
}

finalize

fun finalize()

Terminates the use of WepinSDK. The WepinLifeCycle changes to notInitialized.

Parameters

  • None

Returns

  • None

Exception

Example

wepinWidgetSDK.finalize()

WepinError

Last updated