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



# Class: SchemeRegistrarWrapper

## Hierarchy


 [ContractWrapperBase](ContractWrapperBase.md)

**↳ SchemeRegistrarWrapper**







## Implements

* [SchemeWrapper](../interfaces/SchemeWrapper.md)

## Index

### Constructors

* [constructor](SchemeRegistrarWrapper.md#constructor)


### Properties

* [NewSchemeProposal](SchemeRegistrarWrapper.md#NewSchemeProposal)
* [ProposalDeleted](SchemeRegistrarWrapper.md#ProposalDeleted)
* [ProposalExecuted](SchemeRegistrarWrapper.md#ProposalExecuted)
* [RemoveSchemeProposal](SchemeRegistrarWrapper.md#RemoveSchemeProposal)
* [contract](SchemeRegistrarWrapper.md#contract)
* [factory](SchemeRegistrarWrapper.md#factory)
* [friendlyName](SchemeRegistrarWrapper.md#friendlyName)
* [name](SchemeRegistrarWrapper.md#name)


### Accessors

* [address](SchemeRegistrarWrapper.md#address)


### Methods

* [getController](SchemeRegistrarWrapper.md#getController)
* [getDefaultPermissions](SchemeRegistrarWrapper.md#getDefaultPermissions)
* [getParameters](SchemeRegistrarWrapper.md#getParameters)
* [getParametersArray](SchemeRegistrarWrapper.md#getParametersArray)
* [getSchemeParameters](SchemeRegistrarWrapper.md#getSchemeParameters)
* [getSchemeParametersHash](SchemeRegistrarWrapper.md#getSchemeParametersHash)
* [getSchemePermissions](SchemeRegistrarWrapper.md#getSchemePermissions)
* [hydrateFromAt](SchemeRegistrarWrapper.md#hydrateFromAt)
* [hydrateFromDeployed](SchemeRegistrarWrapper.md#hydrateFromDeployed)
* [hydrateFromNew](SchemeRegistrarWrapper.md#hydrateFromNew)
* [proposeToAddModifyScheme](SchemeRegistrarWrapper.md#proposeToAddModifyScheme)
* [proposeToRemoveScheme](SchemeRegistrarWrapper.md#proposeToRemoveScheme)
* [setParameters](SchemeRegistrarWrapper.md#setParameters)



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


### ⊕ **new SchemeRegistrarWrapper**(solidityContract: *`any`*): [SchemeRegistrarWrapper](SchemeRegistrarWrapper.md)


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

*Defined in [contractWrapperBase.ts:46](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L46)*



ContractWrapperFactory constructs this


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| solidityContract | `any`   |  The json contract truffle artifact |





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

---


## Properties
<a id="NewSchemeProposal"></a>

###  NewSchemeProposal

**●  NewSchemeProposal**:  *[EventFetcherFactory](../#EventFetcherFactory)[NewSchemeProposalEventResult](../interfaces/NewSchemeProposalEventResult.md)*  =  this.createEventFetcherFactory<NewSchemeProposalEventResult>("NewSchemeProposal")

*Defined in [wrappers/schemeRegistrar.ts:23](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L23)*



Events




___

<a id="ProposalDeleted"></a>

###  ProposalDeleted

**●  ProposalDeleted**:  *[EventFetcherFactory](../#EventFetcherFactory)[ProposalDeletedEventResult](../interfaces/ProposalDeletedEventResult.md)*  =  this.createEventFetcherFactory<ProposalDeletedEventResult>("ProposalDeleted")

*Defined in [wrappers/schemeRegistrar.ts:26](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L26)*





___

<a id="ProposalExecuted"></a>

###  ProposalExecuted

**●  ProposalExecuted**:  *[EventFetcherFactory](../#EventFetcherFactory)[ProposalExecutedEventResult](../interfaces/ProposalExecutedEventResult.md)*  =  this.createEventFetcherFactory<ProposalExecutedEventResult>("ProposalExecuted")

*Defined in [wrappers/schemeRegistrar.ts:25](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L25)*





___

<a id="RemoveSchemeProposal"></a>

###  RemoveSchemeProposal

**●  RemoveSchemeProposal**:  *[EventFetcherFactory](../#EventFetcherFactory)[RemoveSchemeProposalEventResult](../interfaces/RemoveSchemeProposalEventResult.md)*  =  this.createEventFetcherFactory<RemoveSchemeProposalEventResult>("RemoveSchemeProposal")

*Defined in [wrappers/schemeRegistrar.ts:24](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L24)*





___

<a id="contract"></a>

###  contract

**●  contract**:  *`any`* 

*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[contract](ContractWrapperBase.md#contract)*

*Defined in [contractWrapperBase.ts:46](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L46)*



The underlying truffle contract object. Use this to access parts of the contract that aren't accessible via the wrapper.




___

<a id="factory"></a>

###  factory

**●  factory**:  *[ContractWrapperFactory](ContractWrapperFactory.md)[SchemeRegistrarWrapper](SchemeRegistrarWrapper.md)*  =  SchemeRegistrarFactory

*Overrides [ContractWrapperBase](ContractWrapperBase.md).[factory](ContractWrapperBase.md#factory)*

*Defined in [wrappers/schemeRegistrar.ts:17](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L17)*





___

<a id="friendlyName"></a>

###  friendlyName

**●  friendlyName**:  *`string`*  = "Scheme Registrar"

*Overrides [ContractWrapperBase](ContractWrapperBase.md).[friendlyName](ContractWrapperBase.md#friendlyName)*

*Defined in [wrappers/schemeRegistrar.ts:16](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L16)*





___

<a id="name"></a>

###  name

**●  name**:  *`string`*  = "SchemeRegistrar"

*Overrides [ContractWrapperBase](ContractWrapperBase.md).[name](ContractWrapperBase.md#name)*

*Defined in [wrappers/schemeRegistrar.ts:15](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L15)*





___


## Accessors
<a id="address"></a>

###  address


getaddress(): [Address](../#Address)

*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[address](ContractWrapperBase.md#address)*

*Defined in [contractWrapperBase.ts:41](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L41)*



The address of the contract




**Returns:** [Address](../#Address)



___


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

###  getController

► **getController**(avatarAddress: *[Address](../#Address)*): `Promise`.<`any`>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[getController](ContractWrapperBase.md#getController)*

*Defined in [contractWrapperBase.ts:142](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L142)*



Returns the controller associated with the given avatar


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| avatarAddress | [Address](../#Address)   |  - |





**Returns:** `Promise`.<`any`>





___

<a id="getDefaultPermissions"></a>

###  getDefaultPermissions

► **getDefaultPermissions**(): [SchemePermissions](../enums/SchemePermissions.md)



*Implementation of [SchemeWrapper](../interfaces/SchemeWrapper.md).[getDefaultPermissions](../interfaces/SchemeWrapper.md#getDefaultPermissions)*

*Defined in [wrappers/schemeRegistrar.ts:141](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L141)*





**Returns:** [SchemePermissions](../enums/SchemePermissions.md)





___

<a id="getParameters"></a>

###  getParameters

► **getParameters**(paramsHash: *[Hash](../#Hash)*): `Promise`.<[SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)>



*Overrides [ContractWrapperBase](ContractWrapperBase.md).[getParameters](ContractWrapperBase.md#getParameters)*

*Defined in [wrappers/schemeRegistrar.ts:153](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L153)*



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| paramsHash | [Hash](../#Hash)   |  - |





**Returns:** `Promise`.<[SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)>





___

<a id="getParametersArray"></a>

###  getParametersArray

► **getParametersArray**(paramsHash: *[Hash](../#Hash)*): `Promise`.<`Array`.<`any`>>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[getParametersArray](ContractWrapperBase.md#getParametersArray)*

*Defined in [contractWrapperBase.ts:134](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L134)*



Given a hash, returns the associated parameters as an array, ordered by the order in which the parameters appear in the contract's Parameters struct.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| paramsHash | [Hash](../#Hash)   |  - |





**Returns:** `Promise`.<`Array`.<`any`>>





___

<a id="getSchemeParameters"></a>

###  getSchemeParameters

► **getSchemeParameters**(avatarAddress: *[Address](../#Address)*): `Promise`.<[SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)>



*Implementation of [SchemeWrapper](../interfaces/SchemeWrapper.md).[getSchemeParameters](../interfaces/SchemeWrapper.md#getSchemeParameters)*

*Defined in [wrappers/schemeRegistrar.ts:149](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L149)*



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| avatarAddress | [Address](../#Address)   |  - |





**Returns:** `Promise`.<[SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)>





___

<a id="getSchemeParametersHash"></a>

###  getSchemeParametersHash

► **getSchemeParametersHash**(avatarAddress: *[Address](../#Address)*): `Promise`.<[Hash](../#Hash)>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[getSchemeParametersHash](ContractWrapperBase.md#getSchemeParametersHash)*

*Defined in [contractWrapperBase.ts:124](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L124)*



Given an avatar address, returns the schemes parameters hash


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| avatarAddress | [Address](../#Address)   |  - |





**Returns:** `Promise`.<[Hash](../#Hash)>





___

<a id="getSchemePermissions"></a>

###  getSchemePermissions

► **getSchemePermissions**(avatarAddress: *[Address](../#Address)*): `Promise`.<[SchemePermissions](../enums/SchemePermissions.md)>



*Implementation of [SchemeWrapper](../interfaces/SchemeWrapper.md).[getSchemePermissions](../interfaces/SchemeWrapper.md#getSchemePermissions)*

*Defined in [wrappers/schemeRegistrar.ts:145](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L145)*



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| avatarAddress | [Address](../#Address)   |  - |





**Returns:** `Promise`.<[SchemePermissions](../enums/SchemePermissions.md)>





___

<a id="hydrateFromAt"></a>

###  hydrateFromAt

► **hydrateFromAt**(address: *`string`*): `Promise`.<`any`>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[hydrateFromAt](ContractWrapperBase.md#hydrateFromAt)*

*Defined in [contractWrapperBase.ts:76](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L76)*



Initialize from a given address on the current network.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| address | `string`   |  of the deployed contract |





**Returns:** `Promise`.<`any`>
this






___

<a id="hydrateFromDeployed"></a>

###  hydrateFromDeployed

► **hydrateFromDeployed**(): `Promise`.<`any`>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[hydrateFromDeployed](ContractWrapperBase.md#hydrateFromDeployed)*

*Defined in [contractWrapperBase.ts:91](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L91)*



Initialize as it was migrated by Arc.js on the current network.




**Returns:** `Promise`.<`any`>
this






___

<a id="hydrateFromNew"></a>

###  hydrateFromNew

► **hydrateFromNew**(...rest: *`Array`.<`any`>*): `Promise`.<`any`>



*Inherited from [ContractWrapperBase](ContractWrapperBase.md).[hydrateFromNew](ContractWrapperBase.md#hydrateFromNew)*

*Defined in [contractWrapperBase.ts:60](https://github.com/daostack/arc.js/blob/77005d4/lib/contractWrapperBase.ts#L60)*



Initialize from a newly-migrated instance. This will migrate a new instance of the contract to the net.


**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| rest | `Array`.<`any`>   |  - |





**Returns:** `Promise`.<`any`>
this






___

<a id="proposeToAddModifyScheme"></a>

###  proposeToAddModifyScheme

► **proposeToAddModifyScheme**(options?: *[ProposeToAddModifySchemeParams](../interfaces/ProposeToAddModifySchemeParams.md)*): `Promise`.<[ArcTransactionProposalResult](ArcTransactionProposalResult.md)>



*Defined in [wrappers/schemeRegistrar.ts:39](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L39)*



Note relating to permissions: According rules defined in the Controller, this SchemeRegistrar is only capable of registering schemes that have either no permissions or have the permission to register other schemes. Therefore Arc's SchemeRegistrar is not capable of registering schemes that have permissions greater than its own, thus excluding schemes having the permission to add/remove global constraints or upgrade the controller. The Controller will throw an exception when an attempt is made to add or remove schemes having greater permissions than the scheme attempting the change.


**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| options | [ProposeToAddModifySchemeParams](../interfaces/ProposeToAddModifySchemeParams.md)  |  {} as ProposeToAddModifySchemeParams |   - |





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





___

<a id="proposeToRemoveScheme"></a>

###  proposeToRemoveScheme

► **proposeToRemoveScheme**(options?: *[ProposeToRemoveSchemeParams](../interfaces/ProposeToRemoveSchemeParams.md)*): `Promise`.<[ArcTransactionProposalResult](ArcTransactionProposalResult.md)>



*Defined in [wrappers/schemeRegistrar.ts:103](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L103)*



**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| options | [ProposeToRemoveSchemeParams](../interfaces/ProposeToRemoveSchemeParams.md)  |  {} as ProposeToRemoveSchemeParams |   - |





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





___

<a id="setParameters"></a>

###  setParameters

► **setParameters**(params: *[SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)*): `Promise`.<[ArcTransactionDataResult](ArcTransactionDataResult.md)[Hash](../#Hash)>



*Overrides [ContractWrapperBase](ContractWrapperBase.md).[setParameters](ContractWrapperBase.md#setParameters)*

*Defined in [wrappers/schemeRegistrar.ts:129](https://github.com/daostack/arc.js/blob/77005d4/lib/wrappers/schemeRegistrar.ts#L129)*



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| params | [SchemeRegistrarParams](../interfaces/SchemeRegistrarParams.md)   |  - |





**Returns:** `Promise`.<[ArcTransactionDataResult](ArcTransactionDataResult.md)[Hash](../#Hash)>





___


