# AbiParameter

Utilities & types for working with a single [ABI Parameter](https://docs.soliditylang.org/en/latest/abi-spec.html#types).

## Examples

Below are some examples demonstrating common usages of the `AbiParameter` module:

* [Instantiating Human Readable ABI Parameters](#instantiating-human-readable-abi-parameters)

* [Formatting ABI Parameters](#formatting-abi-parameters)

### Instantiating Human Readable ABI Parameters

A Human Readable ABI Parameter can be instantiated by using [`AbiParameter.from`](/api/AbiParameter/from):

```ts twoslash
import { AbiParameter } from 'ox'

const parameter = AbiParameter.from('address spender')

parameter
//^?
```

### Formatting ABI Parameters

An ABI Parameter can be formatted into a human-readable ABI Parameter by using [`AbiParameter.format`](/api/AbiParameter/format):

```ts twoslash
import { AbiParameter } from 'ox'

const formatted = AbiParameter.format({
  name: 'spender',
  type: 'address'
})

formatted
//    ^?
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`AbiParameter.format`](/api/AbiParameter/format) | Formats an [`AbiParameter.AbiParameter`](/api/AbiParameter/types#abiparameter) into a **Human Readable ABI Parameter**. |
| [`AbiParameter.from`](/api/AbiParameter/from) | Parses an arbitrary **JSON ABI Parameter** or **Human Readable ABI Parameter** into a typed [`AbiParameter.AbiParameter`](/api/AbiParameter/types#abiparameter). |

## Errors

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`AbiParameter.InvalidAbiParameterError`](/api/AbiParameter/errors#abiparameterinvalidabiparametererror) |  |
| [`AbiParameter.InvalidAbiTypeParameterError`](/api/AbiParameter/errors#abiparameterinvalidabitypeparametererror) |  |
| [`AbiParameter.InvalidFunctionModifierError`](/api/AbiParameter/errors#abiparameterinvalidfunctionmodifiererror) |  |
| [`AbiParameter.InvalidModifierError`](/api/AbiParameter/errors#abiparameterinvalidmodifiererror) |  |
| [`AbiParameter.InvalidParameterError`](/api/AbiParameter/errors#abiparameterinvalidparametererror) |  |
| [`AbiParameter.InvalidParenthesisError`](/api/AbiParameter/errors#abiparameterinvalidparenthesiserror) |  |
| [`AbiParameter.SolidityProtectedKeywordError`](/api/AbiParameter/errors#abiparametersolidityprotectedkeyworderror) |  |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`AbiParameter.AbiEventParameter`](/api/AbiParameter/types#abiparameterabieventparameter) | A parameter on an ABI event. |
| [`AbiParameter.AbiParameter`](/api/AbiParameter/types#abiparameterabiparameter) | Root type for an ABI parameter. |
