# @kodex-data/evm-contracts

This is a package that provides utilities and modules for Ethereum Virtual Machine (EVM) contracts using open zeppelin library

```bash
 ____  __.         .___              ________          __          
|    |/ _|____   __| _/____ ___  ___ \______ \ _____ _/  |______   
|      < /  _ \ / __ |/ __ \\  \/  /  |    |  \\__  \\   __\__  \  
|    |  (  <_> ) /_/ \  ___/ >    <   |    `   \/ __ \|  |  / __ \_
|____|__ \____/\____ |\___  >__/\_ \ /_______  (____  /__| (____  /
        \/          \/    \/      \/         \/     \/          \/ 
    kodexdata.systems
```

## Installation

To install `@kodex-data/evm-contracts`, you can use `npm` or `yarn`:

```shell
npm install @kodex-data/evm-contracts

# or

yarn add @kodex-data/evm-contracts
```

## Example

To use this module, you would need to import the objects and types you need from the module. For example, if you wanted to use the ERC20 contract, you would import the ERC20 type and the ERC20__factory object from the module:

```typescript
import { ERC20, ERC20__factory } from '@kodex-data/evm-contracts';

const erc20 = ERC20__factory.connect(contractAddress, provider);
// Use erc20 object to interact with the ERC20 contract.
```

Similarly, if you wanted to create a new instance of the ERC20 contract, you would use the factory object:

```typescript
const erc20Factory = new ERC20__factory(signer);
const erc20 = await erc20Factory.deploy(name, symbol, decimals);
// Use erc20 object to interact with the new instance of the ERC20 contract.
```

## Type Aliases

* AccessControl
* ByteStore
* DoubleEndedQueue
* ERC165
* ERC20
* ERC20Permit
* ERC20PermitToken
* ERC721
* ERC721Burnable
* ERC721Enumerable
* ERC721URIStorage
* ERC721Votes
* EvmAuth
* EvmTicket
* ForAgainstQuorum
* ForAgainstWeightedQuorum
* Governor
* GovernorCountingSimple
* HashStore
* IAccessControl
* IERC1155Receiver
* IERC165
* IERC20
* IERC20Metadata
* IERC20Permit
* IERC721
* IERC721Enumerable
* IERC721Metadata
* IERC721Receiver
* IGovernor
* IVotes
* Moderatable
* Multicall2
* Ownable
* PhxCollectible
* Treasury
* Votes

## Objects

* factories: An object containing the factories for each of the EVM contracts listed above.
* AccessControl\_\_factory
* ByteStore\_\_factory
* DoubleEndedQueue\_\_factory
* ERC165\_\_factory
* ERC20\_\_factory
* ERC20Permit\_\_factory
* ERC20PermitToken\_\_factory
* ERC721\_\_factory
* ERC721Burnable\_\_factory
* ERC721Enumerable\_\_factory
* ERC721URIStorage\_\_factory
* ERC721Votes\_\_factory
* EvmAuth\_\_factory
* EvmTicket\_\_factory
* ForAgainstQuorum\_\_factory
* ForAgainstWeightedQuorum\_\_factory
* Governor\_\_factory
* GovernorCountingSimple\_\_factory
* HashStore\_\_factory
* IAccessControl\_\_factory
* IERC1155Receiver\_\_factory
* IERC165\_\_factory
* IERC20\_\_factory
* IERC20Metadata\_\_factory
* IERC20Permit\_\_factory
* IERC721\_\_factory
* IERC721Enumerable\_\_factory
* IERC721Metadata\_\_factory
* IERC721Receiver\_\_factory
* IGovernor\_\_factory
* IVotes\_\_factory
* Moderatable\_\_factory
* Multicall2\_\_factory
* Ownable\_\_factory
* PhxCollectible\_\_factory
* Treasury\_\_factory
