# Utils

계약서 기록 및 조회에 필요한 기능을 제공합니다. 파일을 해시 데이터로 변환, 파일 또는 텍스트의 버퍼 데이터를 해시로 변환, 계약 해시의 소유자 확인의 기능들을 제공합니다.

## Contents

| Name                                                  | Description                |
| ----------------------------------------------------- | -------------------------- |
| [1. getFileHash](#1.-getfilehash)                     | 로컬 파일을 해시로 변환합니다.          |
| [2. getFileHashFromBuffer](#2.-getfilehashfrombuffer) | 파일 또는 텍스트의 버퍼를 해시로 변환합니다.  |
| [3. isContractOwner](#3.-iscontractowner)             | ContractHash의 소유자인지 확인합니다. |
| [4. Params](#4.-params)                               | API 호출을 위한 파라미터들의 정보입니다.   |

## 1. getFileHash

파일의 해시 값을 가져옵니다.

#### Parameters

<table><thead><tr><th width="165.33333333333331">Name</th><th width="255">Type</th><th>Example</th></tr></thead><tbody><tr><td>filePath</td><td><mark style="color:blue;">String</mark></td><td>"./contract_sameple.pdf"</td></tr></tbody></table>

#### Return value

```json5
da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b
```

## 2. getFileHashFromBuffer

버퍼에서 해시 가져오기

#### Parameters

<table><thead><tr><th width="166.33333333333331">Name</th><th width="254">Type</th><th>Example</th></tr></thead><tbody><tr><td>buffer</td><td><mark style="color:blue;">Uint8Array</mark> (<mark style="color:blue;">Buffer</mark>)</td><td>Uint8Array(11) [ 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 ]</td></tr></tbody></table>

#### Return value

```json5
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
```

## 3. isContractOwner

체인에 기록된 파일 해시 소유자 검증을 할 수 있습니다.

#### Parameters

<table><thead><tr><th width="171.33333333333331">Name</th><th width="255">Type</th><th>Example</th></tr></thead><tbody><tr><td>fileHash</td><td><mark style="color:blue;">String</mark></td><td>"da39330a6dfd90a91563603950f742240fa222580beecf36e141fe6410184e8b1669119707"</td></tr><tr><td>ownerAddress</td><td><mark style="color:blue;">String</mark></td><td>"firma1epg9kx7nqz32dykj23p6jreqfh5x0wdy5a43qc"</td></tr></tbody></table>

#### Return value

```json5
true
```

## 4. Params

<table><thead><tr><th width="191">Name</th><th>Description</th></tr></thead><tbody><tr><td>filePath</td><td>계약서 파일의 경로입니다. 로컬 디렉토리 경로만 사용이 가능하며, 파일이 아닌 경로 또는 웹파일 경로 사용이 불가능합니다.</td></tr><tr><td>buffer</td><td>텍스트 또는 파일의 버퍼 정보를 의미합니다.</td></tr><tr><td>fileHash</td><td>파일 또는 텍스트 정보를 고정된 길이로 매핑한 정보입니다. 체인에서 Contract 추적을 위한 정보로 활용이 가능하며, 하나의 Contract Hash에 여러 개의 Log를 추가할 수 있습니다. 고유 값 사용을 권장하며, FirmaUtil을 통해 파일 및 텍스트의 해시 값을 가져올 수 있습니다.</td></tr><tr><td>ownerAddress</td><td>피르마체인 지갑 주소를 입력해주세요. 지갑 주소의 대상은 누구나 될 수 있으며, "서비스 대표 지갑 주소", "서명자 지갑 주소" 등을 예시로 들 수 있습니다.</td></tr></tbody></table>





