[![logo][]](https://xylabs.com)

# @xylabs/eth-address

[![npm][npm-badge]][npm-link]
[![license][license-badge]][license-link]

> Base functionality used throughout XY Labs TypeScript/JavaScript libraries

## Install

Using npm:

```sh
npm install {{name}}
```

Using yarn:

```sh
yarn add {{name}}
```

Using pnpm:

```sh
pnpm add {{name}}
```

Using bun:

```sh
bun add {{name}}
```


## License

See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).

## Reference

### packages

  ### eth-address

    ### .temp-typedoc

      ### classes

        ### <a id="EthAddressWrapper"></a>EthAddressWrapper

[**@xylabs/eth-address**](#../README)

***

Wrapper around an Ethereum address providing parsing, formatting, validation, and checksum support.

## Constructors

### Constructor

```ts
protected new EthAddressWrapper(address): EthAddressWrapper;
```

### Parameters

#### address

`bigint`

### Returns

`EthAddressWrapper`

## Methods

### fromString()

```ts
static fromString(value?, base?): EthAddressWrapper | undefined;
```

### Parameters

#### value?

`string`

#### base?

`number` = `16`

### Returns

`EthAddressWrapper` \| `undefined`

***

### parse()

```ts
static parse(value, base?): EthAddressWrapper | undefined;
```

### Parameters

#### value

`unknown`

#### base?

`number`

### Returns

`EthAddressWrapper` \| `undefined`

***

### validate()

```ts
static validate(address): boolean;
```

### Parameters

#### address

`string`

### Returns

`boolean`

***

### equals()

```ts
equals(address?): boolean;
```

### Parameters

#### address?

`string` \| `EthAddressWrapper` \| `null`

### Returns

`boolean`

***

### toBigNumber()

```ts
toBigNumber(): bigint;
```

### Returns

`bigint`

***

### toHex()

```ts
toHex(): string;
```

### Returns

`string`

***

### toJSON()

```ts
toJSON(): string;
```

### Returns

`string`

***

### toLowerCaseString()

```ts
toLowerCaseString(): string;
```

### Returns

`string`

***

### toShortString()

```ts
toShortString(length?): string;
```

### Parameters

#### length?

`number` = `2`

### Returns

`string`

***

### toString()

```ts
toString(checksum?, chainId?): string;
```

### Parameters

#### checksum?

`boolean`

#### chainId?

`string`

### Returns

`string`

***

### validate()

```ts
validate(): boolean;
```

### Returns

`boolean`

      ### functions

        ### <a id="ellipsize"></a>ellipsize

[**@xylabs/eth-address**](#../README)

***

```ts
function ellipsize(value, length?): string;
```

Truncates a string to show the first and last `length` characters separated by an ellipsis.

## Parameters

### value

`string`

The string to ellipsize

### length?

`number` = `2`

Number of characters to keep at each end (default 2)

## Returns

`string`

The ellipsized string

        ### <a id="isEthAddressWrapper"></a>isEthAddressWrapper

[**@xylabs/eth-address**](#../README)

***

```ts
function isEthAddressWrapper(obj): obj is { type: string } & EthAddressWrapper;
```

Type guard that checks if the given object is an instance of EthAddressWrapper.

## Parameters

### obj

### type

`string`

## Returns

`obj is { type: string } & EthAddressWrapper`

        ### <a id="padHex"></a>padHex

[**@xylabs/eth-address**](#../README)

***

```ts
function padHex(hex, byteCount?): string;
```

## Parameters

### hex

`string`

### byteCount?

`number` = `0`

## Returns

`string`

## Credits

[Made with 🔥 and ❄️ by XY Labs](https://xylabs.com)

[npm-badge]: https://img.shields.io/npm/v/@xylabs/eth-address.svg
[npm-link]: https://www.npmjs.com/package/@xylabs/eth-address
[license-badge]: https://img.shields.io/npm/l/@xylabs/eth-address.svg
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
[logo]: https://cdn.xy.company/img/brand/XYPersistentCompany_Logo_Icon_Colored.svg
