# Methods

## BlockChains

### func getBlockChainInfo()

#### 설명

체인 ID를 이용하여, 해당 체인 정보를 조회합니다.

#### Parameters

| name    | type | 설명    |
| ------- | ---- | ----- |
| chainId | Int  | 체인 ID |

#### Result

[**FncyChainInfo**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncychaininfo)

### func getContractInfo()

#### 설명

Contract Address를 이용해 자산 정보를 조회합니다.

#### Parameters

| name            | type   | 설명         |
| --------------- | ------ | ---------- |
| chainId         | Int    | 체인 ID      |
| contractAddress | String | Contract주소 |

#### Result

[**FncyAssetInfo**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyassetinfo)

### func getFncyInfo()

#### 설명

Fncy의 자산 정보 및 시세 정보를 요청합니다.

#### Result

[**FncyCurrency**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncycurrency)

### func getGasPrice()

#### 설명

블록체인의 네트워크 이용료(가스비) 정보를 요청합니다.

#### Parameters

| name    | type | 설명    |
| ------- | ---- | ----- |
| chainId | Int  | 체인 ID |

#### Result

[FncyGasPrice](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncygasprice)

#### See Also

[Chain ID](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/etc#chain-id)

## Wallet

### func getWallet()

#### 설명

사용자의 지갑 정보를 반환합니다.

#### Result

[**FncyWallet**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#displayethpricefncywallet)

### func getWalletAllBalance()

#### 설명

현재 지갑이 보유한 총 자산의 가치를 요청합니다.

#### Parameters

| name | type | 설명    |
| ---- | ---- | ----- |
| wid  | Int  | 지갑 ID |

#### Result

[**FncyBalance**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncybalance)

### func getAssetList()

#### 설명

지갑의 자산 목록(Fncy, Eth, Bsc 등)을 요청합니다.

#### Parameters

| name | type | 설명    |
| ---- | ---- | ----- |
| wid  | Int  | 지갑 ID |

#### Result

**Array<**[**FncyAsset**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyasset)**>**

### func getAssetById()

#### 설명

자산 ID를 이용하여 지갑의 자산 정보를 요청합니다.

#### Parameters

| name    | type | 설명    |
| ------- | ---- | ----- |
| wid     | Int  | 지갑 ID |
| assetId | Int  | 자산 ID |

#### Result

[**FncyAsset**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyasset)

### func getNFTList()

#### 설명

지갑이 보유한 NFT 목록을 가져옵니다.

#### Parameters

| name     | type | 설명     |
| -------- | ---- | ------ |
| wid      | Int  | 지갑 ID  |
| pageNo   | Int  | 페이지 번호 |
| pageSize | Int  | 페이지 크기 |

#### Result

**Array<**[**FncyNFT**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncynft)**>**

### func getNFTById()

#### 설명

NFTID를 이용하여 NFT 단건 정보를 조회합니다.

#### Parameters

| name  | type | 설명     |
| ----- | ---- | ------ |
| wid   | Int  | 지갑 ID  |
| nftId | Int  | nft ID |

#### Result

[**FncyNFT**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncynft)

### func makeWallet()

#### 설명

지갑 생성을 요청합니다.

#### Parameters

| Name      | Type   | Description |
| --------- | ------ | ----------- |
| walletNm  | String | 지갑 이름       |
| pinNumber | String | 지갑 비밀번호     |

#### Result

<mark style="color:blue;">**Int**</mark>**&#x20;: 지갑의 wid를 반환**

### func getQuesetionList()

#### 설명

지갑 복원용 질문 목록을 요청합니다.

#### Parameters

| Name     | Type | Description                                |
| -------- | ---- | ------------------------------------------ |
| pageNo   | Int  | 요청할 페이지 번호 (default = 1)                   |
| pageSize | Int  | <p>한번에 요청할 항목 개수</p><p>(default = 20 )</p> |

#### Result

**Array<**[**FncyQuestion**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/android/domain#fncyquestion)**>**

### func postRegisterRestorationKey()

#### 설명

지갑의 복원키(지갑 복구 질문/답변)을 등록합니다.

#### Parameters

| name        | type   | 설명         |
| ----------- | ------ | ---------- |
| wid         | Int    | 지갑 ID      |
| questionSeq | String | 복구용 질문 seq |
| answer      | String | 답변         |
| pinNumber   | String | 지갑 비밀번호    |

### func checkWalletPin()

#### 설명

입력한 지갑 비밀번호의 일치여부를 반환합니다.

#### parameters

| name      | type   | 설명      |
| --------- | ------ | ------- |
| pinNumber | String | 지갑 비밀번호 |

#### Result

<mark style="color:blue;">**Bool**</mark>**&#x20;: 요청 성공 여부를 반환**&#x20;

### func checkResetAnswer()

#### 설명&#x20;

백업용 질문 답변의 일치여부를 확인합니다.

#### Parameters

| name   | type   | 설명         |
| ------ | ------ | ---------- |
| answer | String | 백업용 질문의 답변 |

#### Result

<mark style="color:blue;">**Bool**</mark>**&#x20;: 요청 성공 여부를 반환**&#x20;

### func resetWalletPin()

#### 설명

지갑 비밀번호를 새 비밀번호로 변경합니다.

#### Parameters

| name         | type   | 설명      |
| ------------ | ------ | ------- |
| oldPinNumber | String | 기존 비밀번호 |
| newPinNumber | String | 새 비밀번호  |

#### Result&#x20;

<mark style="color:blue;">**Bool**</mark>**&#x20;: 요청 성공 여부를 반환**&#x20;

### func getResetQuestion()

#### 설명

사용자가 등록한 백업용 질문을 요청합니다.

#### Result

[**FncyQuestion**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyquestion)

### func postResetQuestion()

#### 설명

사용자가 등록한 지갑 복구 답변 내용이 일치할 경우 지갑 비밀번호를 새로운 비밀번호로 변경합니다.

#### Parameters

| name         | type   | 설명       |
| ------------ | ------ | -------- |
| answer       | String | 지갑 복구 답변 |
| newPinNumber | String | 새 비밀번호   |

#### Result

<mark style="color:blue;">**Bool**</mark>**&#x20;: 요청 성공 여부를 반환**

## Transaction

### func estimateTicket()

#### 설명

전송 티켓 생성하기 전에 전송 가능여부 확인 및 nonce, gasLimit등을 확인한다.

#### Parameter

| name              | type                                                                                          | 설명                |
| ----------------- | --------------------------------------------------------------------------------------------- | ----------------- |
| wid               | Int                                                                                           | 지갑 ID             |
| chainId           | Int                                                                                           | 체인 ID             |
| signatureType     | [TicketType](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/etc#tickettype) | 전송 타입             |
| toAddress         | String                                                                                        | 보낼 주소             |
| transferVal       | String(Optional)                                                                              | 보낼 수량(단위: wei)    |
| txGasPrice        | String(Optional)                                                                              | Gas Price         |
| txInput           | String(Optional)                                                                              | Data 정보           |
| contractAddress   | String(Optional)                                                                              | contract실행일 경우 입력 |
| assetId           | Int(Optional)                                                                                 | Asset ID          |
| nftId             | Int(Optional)                                                                                 | NFT ID            |
| maxPriorityPerGas | String(Optional)                                                                              | ETH 전송일 경우 사용     |
| maxFeePerGas      | String(Optional)                                                                              | ETH 전송일 경우 사용     |

#### Chain ID

<table><thead><tr><th width="569">Chain</th><th>ID</th><th data-hidden></th></tr></thead><tbody><tr><td>Binanace Smart Chain(BSC)</td><td>1</td><td></td></tr><tr><td>Ethereum(ETH)</td><td>2</td><td></td></tr><tr><td>Fncy Chain (FNCY)</td><td>3</td><td></td></tr></tbody></table>

#### TicketType

<table><thead><tr><th width="479">Type</th><th>설명</th><th data-hidden>설명</th><th data-hidden></th></tr></thead><tbody><tr><td>SIGNATURE_TYPE_FOR_ASSET_TRANSFER</td><td>Coin전송</td><td></td><td></td></tr><tr><td>SIGNATURE_TYPE_FOR_SMARTCONTRACT_EXECUTION</td><td>SmartContract실행(Token전송)</td><td></td><td></td></tr><tr><td>SIGNATURE_TYPE_FOR_WALLETCONNECT</td><td>WalletConnect전용</td><td></td><td></td></tr></tbody></table>

#### Result

[**FncyTicket**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyticket)

### func makeTicket()

#### 설명

전송 티켓 생성/등록을 요청합니다.

#### Parameters

| name              | type                                                                                          | 설명                |
| ----------------- | --------------------------------------------------------------------------------------------- | ----------------- |
| wid               | Int                                                                                           | 지갑 ID             |
| chainId           | Int                                                                                           | 체인 ID             |
| signatureType     | [TicketType](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/etc#tickettype) | 전송 타입             |
| toAddress         | String                                                                                        | 보낼 주소             |
| transferVal       | String                                                                                        | 보낼 수량(단위: wei)    |
| txGasPrice        | Int(Optional)                                                                                 | Gas Price         |
| txGasLimit        | Int(Optional)                                                                                 | Gas Limit         |
| txInput           | String(Optional)                                                                              | Data 정보           |
| contractAddress   | String(Optional)                                                                              | contract실행일 경우 입력 |
| assetId           | Int(Optional)                                                                                 | Asset ID          |
| nftId             | Int(Optional)                                                                                 | NFT ID            |
| maxPriorityPerGas | String(Optional)                                                                              | ETH 전송일 경우 사용     |
| maxFeePerGas      | String(Optional)                                                                              | ETH 전송일 경우 사용     |

#### Result

<mark style="color:blue;">**String**</mark>**&#x20;: 생성된 티켓의 TicketUUID 반환**

### func getTicketInfo()

#### 설명

티켓UUID로 해당 티켓의 정보를 조회합니다.

#### Parameters

| name       | type   | 설명     |
| ---------- | ------ | ------ |
| ticketUuid | String | 티켓UUID |

#### Result

[**FncyTicket**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncyticket)

<table><thead><tr><th width="320.3333333333333">Code</th><th width="125">Number</th><th>Message</th></tr></thead><tbody><tr><td>TRANSFER_AVAILABLE</td><td>201</td><td>티켓 전송이 가능한 상태</td></tr><tr><td>TICKET_TRANSFER_SUCCESS</td><td>200</td><td>티켓 전송에 성공</td></tr><tr><td>TICKET_TRANSFER_FAILED</td><td>301</td><td>티켓전송에 실패</td></tr><tr><td>TICKET_EXPIRED</td><td>403</td><td>티켓이 만료됨 (생성 후 5분 경과)</td></tr><tr><td>TICKET_NOT_FOUND</td><td>404</td><td>존재하지 않는 티켓</td></tr></tbody></table>

### func sendTicket()

#### 설명

티켓(트랜잭션)을 실행합니다.

#### Parameters

| name       | type   | 설명      |
| ---------- | ------ | ------- |
| ticketUuid | String | 티켓uuid  |
| pinNumber  | String | 지갑 비밀번호 |

#### Result

<mark style="color:blue;">**String**</mark>**&#x20;: 트랜잭션 ID를 반환**

### func getTransferHistoryList()

#### 설명

지갑의 트랜잭션 전송 이력을 조회합니다.

#### Parameters

| name     | type                                                                                      | 설명                                                                              |
| -------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| wid      | Int                                                                                       | 지갑 ID                                                                           |
| assetId  | Int(Optional)                                                                             | 자산 ID                                                                           |
| pageNo   | Int(Optional)                                                                             | 페이지 번호(Default: 1)                                                              |
| pageSize | Int(Optional)                                                                             | 페이지 크기(Default: 20)                                                             |
| filter   | [InOutDcd](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/etc#inoutdcd) | <p>InOutDcd.all = 전체 <br>InOutDcd.deposit = 입금<br>InOutDcd.withdrawal = 출금 </p> |

#### Result

**Array<**[**FncyTransaction**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncytransaction)**>**

### func getTransferHistoryDetail()

#### 설명

트랜잭션 전송 이력 단건을 조회합니다.

#### Parameters

| name       | type | 설명       |
| ---------- | ---- | -------- |
| wid        | Int  | 지갑 ID    |
| historySeq | Int  | 트랜잭션 Seq |

#### Result

[**FncyTransaction**](https://docs.fncy.world/fncy-2.0.2-kor/for-developers/wallet/sdk/domain#fncytransaction)

## 기타

### func validateAddress()

#### 설명

유효한 지갑 주소인지 확인합니다.

#### Parameters

| name    | type   | 설명             |
| ------- | ------ | -------------- |
| chainId | Int    | 체인 ID          |
| address | String | Wallet Address |

#### Result

<mark style="color:blue;">**Bool**</mark>

### func postWalletSign()

#### 설명

메시지 및 데이터에 서명하고 서명된 메시지를 반환합니다.

#### Parameters

| name       | type   | 설명                                                                                                                    |
| ---------- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| wid        | Int    | 지갑 ID                                                                                                                 |
| dataToSign | String | Data                                                                                                                  |
| signType   | String | <p>ethSign(default)<br>ethSignV2<br>ethSignPersonalWithPrefix<br>ethSignWithoutPrefix<br>signEip712StructuredData</p> |
| pinNumber  | String | 지갑 비밀번호                                                                                                               |

#### Result

<mark style="color:blue;">**String**</mark>
