# wrappers/BaseWrapper

## Index

### Classes

* [BaseWrapper](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)
* [CeloTransactionObject](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)

### Interfaces

* [Filter](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)

### Type aliases

* [CeloTransactionParams](#celotransactionparams)

### Functions

* [blocksToDurationString](#const-blockstodurationstring)
* [bufferToSolidityBytes](#const-buffertosoliditybytes)
* [fixidityValueToBigNumber](#const-fixidityvaluetobignumber)
* [identity](#const-identity)
* [proxyCall](#proxycall)
* [proxySend](#proxysend)
* [secondsToDurationString](#secondstodurationstring)
* [solidityBytesToString](#const-soliditybytestostring)
* [stringIdentity](#const-stringidentity)
* [stringToSolidityBytes](#const-stringtosoliditybytes)
* [toTransactionObject](#totransactionobject)
* [tupleParser](#tupleparser)
* [unixSecondsTimestampToDateString](#const-unixsecondstimestamptodatestring)
* [valueToBigNumber](#const-valuetobignumber)
* [valueToFixidityString](#const-valuetofixiditystring)
* [valueToFrac](#const-valuetofrac)
* [valueToInt](#const-valuetoint)
* [valueToString](#const-valuetostring)

## Type aliases

### CeloTransactionParams

Ƭ **CeloTransactionParams**: *Omit‹Tx, "data"›*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:320*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L320)

## Functions

### `Const` blocksToDurationString

▸ **blocksToDurationString**(`input`: BigNumber.Value): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:124*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L124)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *string*

### `Const` bufferToSolidityBytes

▸ **bufferToSolidityBytes**(`input`: Buffer): *string | number\[]*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:134*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L134)

**Parameters:**

| Name    | Type   |
| ------- | ------ |
| `input` | Buffer |

**Returns:** *string | number\[]*

### `Const` fixidityValueToBigNumber

▸ **fixidityValueToBigNumber**(`input`: BigNumber.Value): *BigNumber‹›*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:62*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L62)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *BigNumber‹›*

### `Const` identity

▸ **identity**<**A**>(`a`: A): *A*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:149*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L149)

Identity Parser

**Type parameters:**

▪ **A**

**Parameters:**

| Name | Type |
| ---- | ---- |
| `a`  | A    |

**Returns:** *A*

### proxyCall

▸ **proxyCall**<**InputArgs**, **ParsedInputArgs**, **PreParsedOutput**, **Output**>(`methodFn`: Method‹ParsedInputArgs, PreParsedOutput›, `parseInputArgs`: function, `parseOutput`: function): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:218*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L218)

Creates a proxy to call a web3 native contract method.

There are 4 cases:

* methodFn
* parseInputArgs => methodFn
* parseInputArgs => methodFn => parseOutput
* methodFn => parseOutput

**Type parameters:**

▪ **InputArgs**: *any\[]*

▪ **ParsedInputArgs**: *any\[]*

▪ **PreParsedOutput**

▪ **Output**

**Parameters:**

▪ **methodFn**: *Method‹ParsedInputArgs, PreParsedOutput›*

Web3 methods function

▪ **parseInputArgs**: *function*

parseInputArgs function, tranforms arguments into `methodFn` expected inputs

▸ (...`args`: InputArgs): *ParsedInputArgs*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

▪ **parseOutput**: *function*

parseOutput function, transforms `methodFn` output into proxy return

▸ (`o`: PreParsedOutput): *Output*

**Parameters:**

| Name | Type            |
| ---- | --------------- |
| `o`  | PreParsedOutput |

**Returns:** *function*

▸ (...`args`: InputArgs): *Promise‹Output›*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

▸ **proxyCall**<**InputArgs**, **PreParsedOutput**, **Output**>(`methodFn`: Method‹InputArgs, PreParsedOutput›, `x`: undefined, `parseOutput`: function): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:228*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L228)

**Type parameters:**

▪ **InputArgs**: *any\[]*

▪ **PreParsedOutput**

▪ **Output**

**Parameters:**

▪ **methodFn**: *Method‹InputArgs, PreParsedOutput›*

▪ **x**: *undefined*

▪ **parseOutput**: *function*

▸ (`o`: PreParsedOutput): *Output*

**Parameters:**

| Name | Type            |
| ---- | --------------- |
| `o`  | PreParsedOutput |

**Returns:** *function*

▸ (...`args`: InputArgs): *Promise‹Output›*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

▸ **proxyCall**<**InputArgs**, **ParsedInputArgs**, **Output**>(`methodFn`: Method‹ParsedInputArgs, Output›, `parseInputArgs`: function): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:233*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L233)

**Type parameters:**

▪ **InputArgs**: *any\[]*

▪ **ParsedInputArgs**: *any\[]*

▪ **Output**

**Parameters:**

▪ **methodFn**: *Method‹ParsedInputArgs, Output›*

▪ **parseInputArgs**: *function*

▸ (...`args`: InputArgs): *ParsedInputArgs*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

**Returns:** *function*

▸ (...`args`: InputArgs): *Promise‹Output›*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

▸ **proxyCall**<**InputArgs**, **Output**>(`methodFn`: Method‹InputArgs, Output›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:237*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L237)

**Type parameters:**

▪ **InputArgs**: *any\[]*

▪ **Output**

**Parameters:**

| Name       | Type                      |
| ---------- | ------------------------- |
| `methodFn` | Method‹InputArgs, Output› |

**Returns:** *function*

▸ (...`args`: InputArgs): *Promise‹Output›*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

### proxySend

▸ **proxySend**<**InputArgs**, **ParsedInputArgs**, **Output**>(`kit`: [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference), ...`sendArgs`: ProxySendArgs‹InputArgs, ParsedInputArgs, Output›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:298*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L298)

Creates a proxy to send a tx on a web3 native contract method.

There are 2 cases:

* call methodFn (no pre or post parsing)
* preParse arguments & call methodFn

**Type parameters:**

▪ **InputArgs**: *any\[]*

▪ **ParsedInputArgs**: *any\[]*

▪ **Output**

**Parameters:**

| Name          | Type                                                                                                         |
| ------------- | ------------------------------------------------------------------------------------------------------------ |
| `kit`         | [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference) |
| `...sendArgs` | ProxySendArgs‹InputArgs, ParsedInputArgs, Output›                                                            |

**Returns:** *function*

▸ (...`args`: InputArgs): [*CeloTransactionObject*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)*‹Output›*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | InputArgs |

### secondsToDurationString

▸ **secondsToDurationString**(`durationSeconds`: BigNumber.Value, `outputUnits`: TimeUnit\[]): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:95*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L95)

**Parameters:**

| Name              | Type            | Default                                                       |
| ----------------- | --------------- | ------------------------------------------------------------- |
| `durationSeconds` | BigNumber.Value | -                                                             |
| `outputUnits`     | TimeUnit\[]     | \['year', 'month', 'week', 'day', 'hour', 'minute', 'second'] |

**Returns:** *string*

### `Const` solidityBytesToString

▸ **solidityBytesToString**(`input`: SolidityBytes): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:135*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L135)

**Parameters:**

| Name    | Type          |
| ------- | ------------- |
| `input` | SolidityBytes |

**Returns:** *string*

### `Const` stringIdentity

▸ **stringIdentity**(`x`: string): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:150*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L150)

**Parameters:**

| Name | Type   |
| ---- | ------ |
| `x`  | string |

**Returns:** *string*

### `Const` stringToSolidityBytes

▸ **stringToSolidityBytes**(`input`: string): *string | number\[]*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:133*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L133)

**Parameters:**

| Name    | Type   |
| ------- | ------ |
| `input` | string |

**Returns:** *string | number\[]*

### toTransactionObject

▸ **toTransactionObject**<**O**>(`kit`: [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference), `txo`: TransactionObject‹O›, `defaultParams?`: Omit‹Tx, "data"›): [*CeloTransactionObject*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)*‹O›*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:312*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L312)

**Type parameters:**

▪ **O**

**Parameters:**

| Name             | Type                                                                                                         |
| ---------------- | ------------------------------------------------------------------------------------------------------------ |
| `kit`            | [ContractKit](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference) |
| `txo`            | TransactionObject‹O›                                                                                         |
| `defaultParams?` | Omit‹Tx, "data"›                                                                                             |

**Returns:** [*CeloTransactionObject*](https://josh-8.gitbook.io/celo-docs/developer-guide/summary/external-modules/broken-reference)*‹O›*

### tupleParser

▸ **tupleParser**<**A0**, **B0**>(`parser0`: Parser‹A0, B0›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:156*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L156)

Tuple parser Useful to map different input arguments

**Type parameters:**

▪ **A0**

▪ **B0**

**Parameters:**

| Name      | Type           |
| --------- | -------------- |
| `parser0` | Parser‹A0, B0› |

**Returns:** *function*

▸ (...`args`: \[A0]): *\[B0]*

**Parameters:**

| Name      | Type  |
| --------- | ----- |
| `...args` | \[A0] |

▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:157*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L157)

**Type parameters:**

▪ **A0**

▪ **B0**

▪ **A1**

▪ **B1**

**Parameters:**

| Name      | Type           |
| --------- | -------------- |
| `parser0` | Parser‹A0, B0› |
| `parser1` | Parser‹A1, B1› |

**Returns:** *function*

▸ (...`args`: \[A0, A1]): *\[B0, B1]*

**Parameters:**

| Name      | Type      |
| --------- | --------- |
| `...args` | \[A0, A1] |

▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**, **A2**, **B2**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›, `parser2`: Parser‹A2, B2›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:161*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L161)

**Type parameters:**

▪ **A0**

▪ **B0**

▪ **A1**

▪ **B1**

▪ **A2**

▪ **B2**

**Parameters:**

| Name      | Type           |
| --------- | -------------- |
| `parser0` | Parser‹A0, B0› |
| `parser1` | Parser‹A1, B1› |
| `parser2` | Parser‹A2, B2› |

**Returns:** *function*

▸ (...`args`: \[A0, A1, A2]): *\[B0, B1, B2]*

**Parameters:**

| Name      | Type          |
| --------- | ------------- |
| `...args` | \[A0, A1, A2] |

▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**, **A2**, **B2**, **A3**, **B3**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›, `parser2`: Parser‹A2, B2›, `parser3`: Parser‹A3, B3›): *function*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:166*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L166)

**Type parameters:**

▪ **A0**

▪ **B0**

▪ **A1**

▪ **B1**

▪ **A2**

▪ **B2**

▪ **A3**

▪ **B3**

**Parameters:**

| Name      | Type           |
| --------- | -------------- |
| `parser0` | Parser‹A0, B0› |
| `parser1` | Parser‹A1, B1› |
| `parser2` | Parser‹A2, B2› |
| `parser3` | Parser‹A3, B3› |

**Returns:** *function*

▸ (...`args`: \[A0, A1, A2, A3]): *\[B0, B1, B2, B3]*

**Parameters:**

| Name      | Type              |
| --------- | ----------------- |
| `...args` | \[A0, A1, A2, A3] |

### `Const` unixSecondsTimestampToDateString

▸ **unixSecondsTimestampToDateString**(`input`: BigNumber.Value): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:127*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L127)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *string*

### `Const` valueToBigNumber

▸ **valueToBigNumber**(`input`: BigNumber.Value): *BigNumber‹›*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:60*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L60)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *BigNumber‹›*

### `Const` valueToFixidityString

▸ **valueToFixidityString**(`input`: BigNumber.Value): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:66*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L66)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *string*

### `Const` valueToFrac

▸ **valueToFrac**(`numerator`: BigNumber.Value, `denominator`: BigNumber.Value): *BigNumber‹›*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:74*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L74)

**Parameters:**

| Name          | Type            |
| ------------- | --------------- |
| `numerator`   | BigNumber.Value |
| `denominator` | BigNumber.Value |

**Returns:** *BigNumber‹›*

### `Const` valueToInt

▸ **valueToInt**(`input`: BigNumber.Value): *number*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:69*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L69)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *number*

### `Const` valueToString

▸ **valueToString**(`input`: BigNumber.Value): *string*

*Defined in* [*packages/contractkit/src/wrappers/BaseWrapper.ts:64*](https://github.com/celo-org/celo-monorepo/blob/master/packages/contractkit/src/wrappers/BaseWrapper.ts#L64)

**Parameters:**

| Name    | Type            |
| ------- | --------------- |
| `input` | BigNumber.Value |

**Returns:** *string*
