[API Reference](../README.md) > [GenesisProtocolFactoryType](../classes/GenesisProtocolFactoryType.md)



# Class: GenesisProtocolFactoryType


defined just to add good type checking

## Hierarchy


 [ContractWrapperFactory](ContractWrapperFactory.md)[GenesisProtocolWrapper](GenesisProtocolWrapper.md)

**↳ GenesisProtocolFactoryType**







## Implements

* [IContractWrapperFactory](../interfaces/IContractWrapperFactory.md)[GenesisProtocolWrapper](GenesisProtocolWrapper.md)

## Index

### Constructors

* [constructor](GenesisProtocolFactoryType.md#constructor)


### Methods

* [at](GenesisProtocolFactoryType.md#at)
* [deployed](GenesisProtocolFactoryType.md#deployed)
* [new](GenesisProtocolFactoryType.md#new)
* [setConfigService](GenesisProtocolFactoryType.md#setConfigService)



---
## Constructors
<a id="constructor"></a>


### ⊕ **new GenesisProtocolFactoryType**(solidityContractName: *`string`*, wrapper: *`object`*, web3EventService: *[Web3EventService](Web3EventService.md)*): [GenesisProtocolFactoryType](GenesisProtocolFactoryType.md)


*Inherited from [ContractWrapperFactory](ContractWrapperFactory.md).[constructor](ContractWrapperFactory.md#constructor)*

*Defined in [contractWrapperFactory.ts:26](https://github.com/daostack/arc.js/blob/f343aa24/lib/contractWrapperFactory.ts#L26)*



Connstructor to create a contract wrapper factory for the given Arc contract name and wrapper class.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| solidityContractName | `string`   |  - |
| wrapper | `object`   |  Class of the contract |
| web3EventService | [Web3EventService](Web3EventService.md)   |  - |





**Returns:** [GenesisProtocolFactoryType](GenesisProtocolFactoryType.md)

---


## Methods
<a id="at"></a>

###  at

► **at**(address: *`string`*): `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>



*Inherited from [ContractWrapperFactory](ContractWrapperFactory.md).[at](ContractWrapperFactory.md#at)*

*Defined in [contractWrapperFactory.ts:61](https://github.com/daostack/arc.js/blob/f343aa24/lib/contractWrapperFactory.ts#L61)*



Return a wrapper around the contract, hydrated from the given address. Returns undefined if not found.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| address | `string`   |  - |





**Returns:** `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>





___

<a id="deployed"></a>

###  deployed

► **deployed**(): `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>



*Inherited from [ContractWrapperFactory](ContractWrapperFactory.md).[deployed](ContractWrapperFactory.md#deployed)*

*Defined in [contractWrapperFactory.ts:77](https://github.com/daostack/arc.js/blob/f343aa24/lib/contractWrapperFactory.ts#L77)*



Return a wrapper around the contract as deployed by the current version of Arc.js. Note this is usually not needed as the WrapperService provides these wrappers already hydrated. Returns undefined if not found.




**Returns:** `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>





___

<a id="new"></a>

###  new

► **new**(stakingTokenAddress: *[Address](../#Address)*): `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>



*Overrides [ContractWrapperFactory](ContractWrapperFactory.md).[new](ContractWrapperFactory.md#new)*

*Defined in [wrappers/genesisProtocol.ts:956](https://github.com/daostack/arc.js/blob/f343aa24/lib/wrappers/genesisProtocol.ts#L956)*



Migrate a new instance of GenesisProtocol.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| stakingTokenAddress | [Address](../#Address)   |  The token that will be used when staking. Typicallyis the token of the DAO that is going to use this GenesisProtocol. |





**Returns:** `Promise`.<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>





___

<a id="setConfigService"></a>

### «Static» setConfigService

► **setConfigService**(configService: *[IConfigService](../interfaces/IConfigService.md)*): `void`



*Inherited from [ContractWrapperFactory](ContractWrapperFactory.md).[setConfigService](ContractWrapperFactory.md#setConfigService)*

*Defined in [contractWrapperFactory.ts:14](https://github.com/daostack/arc.js/blob/f343aa24/lib/contractWrapperFactory.ts#L14)*



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| configService | [IConfigService](../interfaces/IConfigService.md)   |  - |





**Returns:** `void`





___


