# PieceHasher

Defined in: [packages/synapse-core/src/piece/calculate.ts:42](https://github.com/FilOzone/synapse-sdk/blob/a025f71112a5cb0744a4faea8a3f85c0d444a58e/packages/synapse-core/src/piece/calculate.ts#L42)

Imperative incremental hasher. Use for sync code paths or when integrating
with libraries that expose chunk-level callbacks.

## Methods

### count()

> **count**(): `bigint`

Defined in: [packages/synapse-core/src/piece/calculate.ts:46](https://github.com/FilOzone/synapse-sdk/blob/a025f71112a5cb0744a4faea8a3f85c0d444a58e/packages/synapse-core/src/piece/calculate.ts#L46)

Total bytes written so far.

#### Returns

`bigint`

***

### finalize()

> **finalize**(): [`PieceCID`](/reference/filoz/synapse-core/piece/classes/piececid/)

Defined in: [packages/synapse-core/src/piece/calculate.ts:48](https://github.com/FilOzone/synapse-sdk/blob/a025f71112a5cb0744a4faea8a3f85c0d444a58e/packages/synapse-core/src/piece/calculate.ts#L48)

Finalize and return the PieceCID. Non-destructive, further writes are allowed.

#### Returns

[`PieceCID`](/reference/filoz/synapse-core/piece/classes/piececid/)

***

### reset()

> **reset**(): `PieceHasher`

Defined in: [packages/synapse-core/src/piece/calculate.ts:50](https://github.com/FilOzone/synapse-sdk/blob/a025f71112a5cb0744a4faea8a3f85c0d444a58e/packages/synapse-core/src/piece/calculate.ts#L50)

Reset to initial state for reuse.

#### Returns

`PieceHasher`

***

### write()

> **write**(`chunk`): `PieceHasher`

Defined in: [packages/synapse-core/src/piece/calculate.ts:44](https://github.com/FilOzone/synapse-sdk/blob/a025f71112a5cb0744a4faea8a3f85c0d444a58e/packages/synapse-core/src/piece/calculate.ts#L44)

Append bytes. Returns `this` for chaining.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `chunk` | [`Uint8Array`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) |

#### Returns

`PieceHasher`