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

# Class: GenesisProtocolWrapper

## Hierarchy

↳  [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md)

**↳ GenesisProtocolWrapper**

## Implements

* [IContractWrapper](../interfaces/IContractWrapper.md)
* [IIntVoteInterface](../interfaces/IIntVoteInterface.md)
* [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md)

## Index

### Constructors

* [constructor](GenesisProtocolWrapper.md#constructor)

### Properties

* [CancelProposal](GenesisProtocolWrapper.md#CancelProposal)
* [CancelVoting](GenesisProtocolWrapper.md#CancelVoting)
* [ExecuteProposal](GenesisProtocolWrapper.md#ExecuteProposal)
* [GPExecuteProposal](GenesisProtocolWrapper.md#GPExecuteProposal)
* [NewProposal](GenesisProtocolWrapper.md#NewProposal)
* [Redeem](GenesisProtocolWrapper.md#Redeem)
* [RedeemDaoBounty](GenesisProtocolWrapper.md#RedeemDaoBounty)
* [RedeemReputation](GenesisProtocolWrapper.md#RedeemReputation)
* [Stake](GenesisProtocolWrapper.md#Stake)
* [VoteProposal](GenesisProtocolWrapper.md#VoteProposal)
* [contract](GenesisProtocolWrapper.md#contract)
* [factory](GenesisProtocolWrapper.md#factory)
* [friendlyName](GenesisProtocolWrapper.md#friendlyName)
* [name](GenesisProtocolWrapper.md#name)

### Accessors

* [ExecutedProposals](GenesisProtocolWrapper.md#ExecutedProposals)
* [VotableGenesisProtocolProposals](GenesisProtocolWrapper.md#VotableGenesisProtocolProposals)
* [VotableProposals](GenesisProtocolWrapper.md#VotableProposals)
* [address](GenesisProtocolWrapper.md#address)

### Methods

* [cancelProposal](GenesisProtocolWrapper.md#cancelProposal)
* [cancelVote](GenesisProtocolWrapper.md#cancelVote)
* [estimateGas](GenesisProtocolWrapper.md#estimateGas)
* [execute](GenesisProtocolWrapper.md#execute)
* [getAllowedRangeOfChoices](GenesisProtocolWrapper.md#getAllowedRangeOfChoices)
* [getBoostedProposalsCount](GenesisProtocolWrapper.md#getBoostedProposalsCount)
* [getCurrentVoteStatus](GenesisProtocolWrapper.md#getCurrentVoteStatus)
* [getNumberOfChoices](GenesisProtocolWrapper.md#getNumberOfChoices)
* [getParameters](GenesisProtocolWrapper.md#getParameters)
* [getParametersArray](GenesisProtocolWrapper.md#getParametersArray)
* [getParametersHash](GenesisProtocolWrapper.md#getParametersHash)
* [getProposal](GenesisProtocolWrapper.md#getProposal)
* [getProposalCreator](GenesisProtocolWrapper.md#getProposalCreator)
* [getProposalExecutionState](GenesisProtocolWrapper.md#getProposalExecutionState)
* [getProposalStatus](GenesisProtocolWrapper.md#getProposalStatus)
* [getScore](GenesisProtocolWrapper.md#getScore)
* [getStakerInfo](GenesisProtocolWrapper.md#getStakerInfo)
* [getStakingToken](GenesisProtocolWrapper.md#getStakingToken)
* [getStakingTokenAddress](GenesisProtocolWrapper.md#getStakingTokenAddress)
* [getState](GenesisProtocolWrapper.md#getState)
* [getThresholdForSchemeAndCreator](GenesisProtocolWrapper.md#getThresholdForSchemeAndCreator)
* [getThresholdFromProposal](GenesisProtocolWrapper.md#getThresholdFromProposal)
* [getTokenBalances](GenesisProtocolWrapper.md#getTokenBalances)
* [getVoteStatus](GenesisProtocolWrapper.md#getVoteStatus)
* [getVoterInfo](GenesisProtocolWrapper.md#getVoterInfo)
* [getWinningVote](GenesisProtocolWrapper.md#getWinningVote)
* [hydrateFromAt](GenesisProtocolWrapper.md#hydrateFromAt)
* [hydrateFromNew](GenesisProtocolWrapper.md#hydrateFromNew)
* [isAbstainAllow](GenesisProtocolWrapper.md#isAbstainAllow)
* [isVotable](GenesisProtocolWrapper.md#isVotable)
* [ownerVote](GenesisProtocolWrapper.md#ownerVote)
* [propose](GenesisProtocolWrapper.md#propose)
* [redeem](GenesisProtocolWrapper.md#redeem)
* [redeemDaoBounty](GenesisProtocolWrapper.md#redeemDaoBounty)
* [setParameters](GenesisProtocolWrapper.md#setParameters)
* [shouldBoost](GenesisProtocolWrapper.md#shouldBoost)
* [stake](GenesisProtocolWrapper.md#stake)
* [stakeWithApproval](GenesisProtocolWrapper.md#stakeWithApproval)
* [vote](GenesisProtocolWrapper.md#vote)
* [voteStatus](GenesisProtocolWrapper.md#voteStatus)
* [voteWithSpecifiedAmounts](GenesisProtocolWrapper.md#voteWithSpecifiedAmounts)

---

## Constructors

<a id="constructor"></a>

###  constructor

⊕ **new GenesisProtocolWrapper**(solidityContract: *`any`*, web3EventService: *[Web3EventService](Web3EventService.md)*): [GenesisProtocolWrapper](GenesisProtocolWrapper.md)

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

*Defined in [contractWrapperBase.ts:66](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L66)*

ContractWrapperFactory constructs this

**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| solidityContract | `any` |  The json contract truffle artifact |
| web3EventService | [Web3EventService](Web3EventService.md) |   |

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

___

## Properties

<a id="CancelProposal"></a>

###  CancelProposal

**● CancelProposal**: *[EventFetcherFactory](../#EventFetcherFactory)<[CancelProposalEventResult](../interfaces/CancelProposalEventResult.md)>*

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[CancelProposal](../interfaces/IIntVoteInterface.md#CancelProposal)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[CancelProposal](IntVoteInterfaceWrapper.md#CancelProposal)*

*Defined in [wrappers/intVoteInterface.ts:50](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L50)*

Get or watch events fired when a vote is cancelled. Note you won't get this from GenesisProtocol whose proposals and votes are not cancellable

___
<a id="CancelVoting"></a>

###  CancelVoting

**● CancelVoting**: *[EventFetcherFactory](../#EventFetcherFactory)<[CancelVotingEventResult](../interfaces/CancelVotingEventResult.md)>*

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[CancelVoting](../interfaces/IIntVoteInterface.md#CancelVoting)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[CancelVoting](IntVoteInterfaceWrapper.md#CancelVoting)*

*Defined in [wrappers/intVoteInterface.ts:63](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L63)*

Get or watch events fired when a voter's vote is cancelled. Note you won't get this from GenesisProtocol whose proposals and votes are not cancellable

___
<a id="ExecuteProposal"></a>

###  ExecuteProposal

**● ExecuteProposal**: *[EventFetcherFactory](../#EventFetcherFactory)<[ExecuteProposalEventResult](../interfaces/ExecuteProposalEventResult.md)>*

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[ExecuteProposal](../interfaces/IIntVoteInterface.md#ExecuteProposal)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[ExecuteProposal](IntVoteInterfaceWrapper.md#ExecuteProposal)*

*Defined in [wrappers/intVoteInterface.ts:54](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L54)*

Get or watch events fired when proposals have been executed

___
<a id="GPExecuteProposal"></a>

###  GPExecuteProposal

**● GPExecuteProposal**: *[EventFetcherFactory](../#EventFetcherFactory)<[GPExecuteProposalEventResult](../interfaces/GPExecuteProposalEventResult.md)>*

*Defined in [wrappers/genesisProtocol.ts:52](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L52)*

Events

___
<a id="NewProposal"></a>

###  NewProposal

**● NewProposal**: *[EventFetcherFactory](../#EventFetcherFactory)<[NewProposalEventResult](../interfaces/NewProposalEventResult.md)>*

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[NewProposal](../interfaces/IIntVoteInterface.md#NewProposal)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[NewProposal](IntVoteInterfaceWrapper.md#NewProposal)*

*Defined in [wrappers/intVoteInterface.ts:45](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L45)*

Get or watch events fired on the creation of a new proposal.

___
<a id="Redeem"></a>

###  Redeem

**● Redeem**: *[EventFetcherFactory](../#EventFetcherFactory)<[GpRedeemEventResult](../interfaces/GpRedeemEventResult.md)>*

*Defined in [wrappers/genesisProtocol.ts:54](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L54)*

___
<a id="RedeemDaoBounty"></a>

###  RedeemDaoBounty

**● RedeemDaoBounty**: *[EventFetcherFactory](../#EventFetcherFactory)<[GpRedeemEventResult](../interfaces/GpRedeemEventResult.md)>*

*Defined in [wrappers/genesisProtocol.ts:56](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L56)*

___
<a id="RedeemReputation"></a>

###  RedeemReputation

**● RedeemReputation**: *[EventFetcherFactory](../#EventFetcherFactory)<[GpRedeemEventResult](../interfaces/GpRedeemEventResult.md)>*

*Defined in [wrappers/genesisProtocol.ts:55](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L55)*

___
<a id="Stake"></a>

###  Stake

**● Stake**: *[EventFetcherFactory](../#EventFetcherFactory)<[GpStakeEventResult](../interfaces/GpStakeEventResult.md)>*

*Defined in [wrappers/genesisProtocol.ts:53](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L53)*

___
<a id="VoteProposal"></a>

###  VoteProposal

**● VoteProposal**: *[EventFetcherFactory](../#EventFetcherFactory)<[VoteProposalEventResult](../interfaces/VoteProposalEventResult.md)>*

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[VoteProposal](../interfaces/IIntVoteInterface.md#VoteProposal)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[VoteProposal](IntVoteInterfaceWrapper.md#VoteProposal)*

*Defined in [wrappers/intVoteInterface.ts:58](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L58)*

Get or watch events fired whenever votes are cast on a proposal

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

###  contract

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

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[contract](../interfaces/IVotingMachineWrapper.md#contract)*

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

*Defined in [contractWrapperBase.ts:66](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L66)*

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**: *[IContractWrapperFactory](../interfaces/IContractWrapperFactory.md)<[GenesisProtocolWrapper](GenesisProtocolWrapper.md)>* =  GenesisProtocolFactory

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[factory](../interfaces/IVotingMachineWrapper.md#factory)*

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

*Defined in [wrappers/genesisProtocol.ts:46](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L46)*

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

###  friendlyName

**● friendlyName**: *`string`* = "Genesis Protocol"

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[friendlyName](../interfaces/IVotingMachineWrapper.md#friendlyName)*

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

*Defined in [wrappers/genesisProtocol.ts:45](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L45)*

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

###  name

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

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[name](../interfaces/IVotingMachineWrapper.md#name)*

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

*Defined in [wrappers/genesisProtocol.ts:44](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L44)*

___

## Accessors

<a id="ExecutedProposals"></a>

###  ExecutedProposals

getExecutedProposals(): [EntityFetcherFactory](../#EntityFetcherFactory)<[ExecutedGenesisProposal](../interfaces/ExecutedGenesisProposal.md), [ExecuteProposalEventResult](../interfaces/ExecuteProposalEventResult.md)>

*Defined in [wrappers/genesisProtocol.ts:713](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L713)*

EntityFetcherFactory for executed ExecutedGenesisProposal. The Arc GenesisProtocol contract retains the original proposal struct after execution.

**Returns:** [EntityFetcherFactory](../#EntityFetcherFactory)<[ExecutedGenesisProposal](../interfaces/ExecutedGenesisProposal.md), [ExecuteProposalEventResult](../interfaces/ExecuteProposalEventResult.md)>

___
<a id="VotableGenesisProtocolProposals"></a>

###  VotableGenesisProtocolProposals

getVotableGenesisProtocolProposals(): [EntityFetcherFactory](../#EntityFetcherFactory)<[GenesisProtocolProposal](../interfaces/GenesisProtocolProposal.md), [NewProposalEventResult](../interfaces/NewProposalEventResult.md)>

*Defined in [wrappers/genesisProtocol.ts:676](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L676)*

EntityFetcherFactory for votable GenesisProtocolProposal.

**Returns:** [EntityFetcherFactory](../#EntityFetcherFactory)<[GenesisProtocolProposal](../interfaces/GenesisProtocolProposal.md), [NewProposalEventResult](../interfaces/NewProposalEventResult.md)>

___
<a id="VotableProposals"></a>

###  VotableProposals

getVotableProposals(): [EventFetcherFactory](../#EventFetcherFactory)<[NewProposalEventResult](../interfaces/NewProposalEventResult.md)>

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[VotableProposals](IntVoteInterfaceWrapper.md#VotableProposals)*

*Defined in [wrappers/intVoteInterface.ts:68](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L68)*

Get or watch NewProposal events, filtering out proposals that are no longer votable.

**Returns:** [EventFetcherFactory](../#EventFetcherFactory)<[NewProposalEventResult](../interfaces/NewProposalEventResult.md)>

___
<a id="address"></a>

###  address

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

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

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

The address of the contract

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

___

## Methods

<a id="cancelProposal"></a>

###  cancelProposal

▸ **cancelProposal**(options: *[ProposalIdOption](../interfaces/ProposalIdOption.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[cancelProposal](IntVoteInterfaceWrapper.md#cancelProposal)*

*Defined in [wrappers/genesisProtocol.ts:696](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L696)*

Cancel the given proposal

**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| options | [ProposalIdOption](../interfaces/ProposalIdOption.md) |   |

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

___
<a id="cancelVote"></a>

###  cancelVote

▸ **cancelVote**(options: *[ProposalIdOption](../interfaces/ProposalIdOption.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[cancelVote](IntVoteInterfaceWrapper.md#cancelVote)*

*Defined in [wrappers/genesisProtocol.ts:704](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L704)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options | [ProposalIdOption](../interfaces/ProposalIdOption.md) |

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

___
<a id="estimateGas"></a>

###  estimateGas

▸ **estimateGas**(func: *[ITruffleContractFunction](../interfaces/ITruffleContractFunction.md)*, params: *`Array`<`any`>*, web3Params?: *`any`*): `Promise`<`number`>

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

*Defined in [contractWrapperBase.ts:140](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L140)*

Estimate conservatively the amount of gas required to execute the given function with the given parameters. Adds 21000 to the estimate computed by web3.

**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| func | [ITruffleContractFunction](../interfaces/ITruffleContractFunction.md) | - |  The function |
| params | `Array`<`any`> | - |  The parameters to send to the function |
| `Default value` web3Params | `any` |  {} |  The web3 parameters (like "from", for example). If it contains "gas" then that value is returned, effectively a no-op. |

**Returns:** `Promise`<`number`>

___
<a id="execute"></a>

###  execute

▸ **execute**(options: * [ProposalIdOption](../interfaces/ProposalIdOption.md) & `TxGeneratingFunctionOptions`*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[execute](../interfaces/IIntVoteInterface.md#execute)*

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[execute](IntVoteInterfaceWrapper.md#execute)*

*Defined in [wrappers/genesisProtocol.ts:958](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L958)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options |  [ProposalIdOption](../interfaces/ProposalIdOption.md) & `TxGeneratingFunctionOptions`|

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

___
<a id="getAllowedRangeOfChoices"></a>

###  getAllowedRangeOfChoices

▸ **getAllowedRangeOfChoices**(): `Promise`<[GetAllowedRangeOfChoicesResult](../interfaces/GetAllowedRangeOfChoicesResult.md)>

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[getAllowedRangeOfChoices](IntVoteInterfaceWrapper.md#getAllowedRangeOfChoices)*

*Defined in [wrappers/intVoteInterface.ts:340](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L340)*

Returns promise of the allowed range of choices for a voting machine.

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

___
<a id="getBoostedProposalsCount"></a>

###  getBoostedProposalsCount

▸ **getBoostedProposalsCount**(schemeAddress: *[Address](../#Address)*, creatorAddress: *[Address](../#Address)*): `Promise`<`BigNumber`>

*Defined in [wrappers/genesisProtocol.ts:421](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L421)*

Returns a promise of the number of boosted proposals by the address of the scheme that created the proposal and the "creator address" which is typically the avatar for proposals created by the Arc universal schemes. The count does not include those that have expired but have not yet been executed to update their status.

**Parameters:**

| Param | Type |
| ------ | ------ |
| schemeAddress | [Address](../#Address) |
| creatorAddress | [Address](../#Address) |

**Returns:** `Promise`<`BigNumber`>

___
<a id="getCurrentVoteStatus"></a>

###  getCurrentVoteStatus

▸ **getCurrentVoteStatus**(proposalId: *[Address](../#Address)*): `Promise`<`Array`<`BigNumber`>>

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[getCurrentVoteStatus](IntVoteInterfaceWrapper.md#getCurrentVoteStatus)*

*Defined in [wrappers/intVoteInterface.ts:317](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L317)*

Return an array of the current counts of each vote choice on the proposal. For straight Abstain, Yes and No votes you can use the values of the `BinaryVoteResult` enum to dereference the array. The Abstain vote (in the zeroeth position) is always given even if the voting machine does not allow abstentions.

**Parameters:**

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

**Returns:** `Promise`<`Array`<`BigNumber`>>

___
<a id="getNumberOfChoices"></a>

###  getNumberOfChoices

▸ **getNumberOfChoices**(options?: *[GetNumberOfChoicesConfig](../interfaces/GetNumberOfChoicesConfig.md)*): `Promise`<`number`>

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[getNumberOfChoices](IntVoteInterfaceWrapper.md#getNumberOfChoices)*

*Defined in [wrappers/genesisProtocol.ts:479](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L479)*

Return the number of possible choices when voting for the proposal.

**Parameters:**

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

**Returns:** `Promise`<`number`>
Promise<number>

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

###  getParameters

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

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[getParameters](../interfaces/IVotingMachineWrapper.md#getParameters)*

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

*Defined in [wrappers/genesisProtocol.ts:893](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L893)*

**Parameters:**

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

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

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

###  getParametersArray

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

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[getParametersArray](../interfaces/IVotingMachineWrapper.md#getParametersArray)*

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

*Defined in [contractWrapperBase.ts:127](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L127)*

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="getParametersHash"></a>

###  getParametersHash

▸ **getParametersHash**(params: *[GenesisProtocolParams](../interfaces/GenesisProtocolParams.md)*): `Promise`<[Hash](../#Hash)>

*Defined in [wrappers/genesisProtocol.ts:751](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L751)*

**Parameters:**

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

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

___
<a id="getProposal"></a>

###  getProposal

▸ **getProposal**(proposalId: *[Hash](../#Hash)*): `Promise`<[GenesisProtocolProposal](../interfaces/GenesisProtocolProposal.md)>

*Defined in [wrappers/genesisProtocol.ts:745](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L745)*

Returns promise of a `GenesisProtocolProposal` for the given proposal id.

**Parameters:**

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

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

___
<a id="getProposalCreator"></a>

###  getProposalCreator

▸ **getProposalCreator**(proposalId: *[Hash](../#Hash)*): `Promise`<[Address](../#Address)>

*Defined in [wrappers/genesisProtocol.ts:587](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L587)*

For proposals created by Arc universal schemes, returns a promise of the address of the avatar on whose behalf the proposal was created. For proposals created by other schemes, the value is defined by those contracts, but is expected to be an address.

**Parameters:**

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

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

___
<a id="getProposalExecutionState"></a>

###  getProposalExecutionState

▸ **getProposalExecutionState**(proposalId: *[Hash](../#Hash)*): `Promise`<[ExecutionState](../enums/ExecutionState.md)>

*Defined in [wrappers/genesisProtocol.ts:734](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L734)*

Returns a promise of the execution state of the given proposal. The result is ExecutionState.None if the proposal has not been executed or is not found.

**Parameters:**

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

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

___
<a id="getProposalStatus"></a>

###  getProposalStatus

▸ **getProposalStatus**(options?: *[GetProposalStatusConfig](../interfaces/GetProposalStatusConfig.md)*): `Promise`<[GetProposalStatusResult](../interfaces/GetProposalStatusResult.md)>

*Defined in [wrappers/genesisProtocol.ts:557](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L557)*

Return the preBoosted votes, amount staked per vote, total staked and total staked net voters' take for a given proposal

**Parameters:**

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

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

___
<a id="getScore"></a>

###  getScore

▸ **getScore**(options?: *[GetScoreConfig](../interfaces/GetScoreConfig.md)*): `Promise`<`BigNumber`>

*Defined in [wrappers/genesisProtocol.ts:323](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L323)*

Return the current proposal score.

**Parameters:**

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

**Returns:** `Promise`<`BigNumber`>
Promise<BigNumber>

___
<a id="getStakerInfo"></a>

###  getStakerInfo

▸ **getStakerInfo**(options?: *[GetStakerInfoConfig](../interfaces/GetStakerInfoConfig.md)*): `Promise`<[GetStakerInfoResult](../interfaces/GetStakerInfoResult.md)>

*Defined in [wrappers/genesisProtocol.ts:609](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L609)*

Return the vote and stake amount for a given proposal and staker.

**Parameters:**

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

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

___
<a id="getStakingToken"></a>

###  getStakingToken

▸ **getStakingToken**(): `Promise`<[StandardTokenWrapper](StandardTokenWrapper.md)>

*Defined in [wrappers/genesisProtocol.ts:922](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L922)*

Returns promise of the staking token as StandardTokenWrapper.

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

___
<a id="getStakingTokenAddress"></a>

###  getStakingTokenAddress

▸ **getStakingTokenAddress**(): `Promise`<[Address](../#Address)>

*Defined in [wrappers/genesisProtocol.ts:932](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L932)*

Returns promise of the staking token address.

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

___
<a id="getState"></a>

###  getState

▸ **getState**(options?: *[GetStateConfig](../interfaces/GetStateConfig.md)*): `Promise`<[ProposalState](../enums/ProposalState.md)>

*Defined in [wrappers/genesisProtocol.ts:659](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L659)*

Return the current state of a given proposal.

**Parameters:**

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

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

___
<a id="getThresholdForSchemeAndCreator"></a>

###  getThresholdForSchemeAndCreator

▸ **getThresholdForSchemeAndCreator**(schemeInfo: *[ThresholdSchemeInfo](../interfaces/ThresholdSchemeInfo.md)*, avatarAddress: *[Address](../#Address)*): `Promise`<`BigNumber`>

*Defined in [wrappers/genesisProtocol.ts:355](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L355)*

Return the threshold that is required for a proposal to be shifted into the boosted state. The computation depends on the current number of boosted proposals that were created for this voting machine by the scheme at `schemeInfo.address` for the given `avatarAddress` (`avatarAddress` is the `organizationAddress` given to the `propose` method), and the GenesisProtocol parameters `thresholdConstA` and `thresholdConstB` which are registered on behalf of the given scheme with an avatar's Controller, keyed by the given `avatarAddress`.

Thus `avatarAddress` must be an avatar address and this function will not work if you pass for `avatarAddress` any other contract address than an avatar, even though GenesisProtocol is capable of using those non-avatar contract addresses. In those cases, when the organization is not an avatar, you must use `getThresholdFromProposal` to obtain the threshold.

Note that there will be a separately-scoped threshold for proposals created for this voting machine by any other scheme than the one given.

Note that for Arc.js schemes you can just pass an Arc.js contract wrapper for `schemeInfo`.

**Parameters:**

| Param | Type |
| ------ | ------ |
| schemeInfo | [ThresholdSchemeInfo](../interfaces/ThresholdSchemeInfo.md) |
| avatarAddress | [Address](../#Address) |

**Returns:** `Promise`<`BigNumber`>

___
<a id="getThresholdFromProposal"></a>

###  getThresholdFromProposal

▸ **getThresholdFromProposal**(proposalId: *[Hash](../#Hash)*): `Promise`<`BigNumber`>

*Defined in [wrappers/genesisProtocol.ts:400](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L400)*

Return the threshold that is required for a proposal to be shifted into the boosted state. The computation depends on the current number of boosted proposals that were created for this voting machine by the scheme that created the given proposal, and the GenesisProtocol parameters `thresholdConstA` and `thresholdConstB` which are stored with the proposal.

Note that there will be a separately-scoped threshold for proposals created for this voting machine by any other scheme than the one that created the given proposal.

**Parameters:**

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

**Returns:** `Promise`<`BigNumber`>

___
<a id="getTokenBalances"></a>

###  getTokenBalances

▸ **getTokenBalances**(options?: *[GetTokenBalancesOptions](../interfaces/GetTokenBalancesOptions.md)*): `Promise`<[GenesisProtocolDaoTokenBalances](../interfaces/GenesisProtocolDaoTokenBalances.md)>

*Defined in [wrappers/genesisProtocol.ts:448](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L448)*

Return the current balances on this GenesisProtocol's staking and the given avatar's native tokens. This can be useful, for example, if you want to know in advance whether the avatar has enough funds at the moment to payout rewards to stakers and voters. It also returns the respective tokens' truffle contracts.

**Parameters:**

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

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

___
<a id="getVoteStatus"></a>

###  getVoteStatus

▸ **getVoteStatus**(options?: *[GetVoteStatusConfig](../interfaces/GetVoteStatusConfig.md)*): `Promise`<`BigNumber`>

*Defined in [wrappers/genesisProtocol.ts:531](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L531)*

Returns the reputation currently voted on the given choice.

**Parameters:**

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

**Returns:** `Promise`<`BigNumber`>
Promise<BigNumber>

___
<a id="getVoterInfo"></a>

###  getVoterInfo

▸ **getVoterInfo**(options?: *[GetVoterInfoConfig](../interfaces/GetVoterInfoConfig.md)*): `Promise`<[GetVoterInfoResult](../interfaces/GetVoterInfoResult.md)>

*Defined in [wrappers/genesisProtocol.ts:501](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L501)*

Return the vote and the amount of reputation of the voter committed to this proposal

**Parameters:**

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

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

___
<a id="getWinningVote"></a>

###  getWinningVote

▸ **getWinningVote**(options?: *[GetWinningVoteConfig](../interfaces/GetWinningVoteConfig.md)*): `Promise`<`number`>

*Defined in [wrappers/genesisProtocol.ts:639](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L639)*

Return the winningVote for a given proposal.

**Parameters:**

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

**Returns:** `Promise`<`number`>
Promise<number>

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

###  hydrateFromAt

▸ **hydrateFromAt**(address: *`string`*): `Promise`<[IContractWrapper](../interfaces/IContractWrapper.md)>

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[hydrateFromAt](../interfaces/IVotingMachineWrapper.md#hydrateFromAt)*

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

*Defined in [contractWrapperBase.ts:100](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L100)*

Initialize from a given address on the current network.

**Parameters:**

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

**Returns:** `Promise`<[IContractWrapper](../interfaces/IContractWrapper.md)>
this or undefined if not found

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

###  hydrateFromNew

▸ **hydrateFromNew**(...rest: *`Array`<`any`>*): `Promise`<[IContractWrapper](../interfaces/IContractWrapper.md)>

*Implementation of [IVotingMachineWrapper](../interfaces/IVotingMachineWrapper.md).[hydrateFromNew](../interfaces/IVotingMachineWrapper.md#hydrateFromNew)*

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

*Defined in [contractWrapperBase.ts:81](https://github.com/daostack/arc.js/blob/6f704389/lib/contractWrapperBase.ts#L81)*

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

**Parameters:**

| Param | Type |
| ------ | ------ |
| `Rest` rest | `Array`<`any`> |

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

___
<a id="isAbstainAllow"></a>

###  isAbstainAllow

▸ **isAbstainAllow**(): `Promise`<`boolean`>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[isAbstainAllow](../interfaces/IIntVoteInterface.md#isAbstainAllow)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[isAbstainAllow](IntVoteInterfaceWrapper.md#isAbstainAllow)*

*Defined in [wrappers/intVoteInterface.ts:282](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L282)*

get whether voters are allowed to cast an abstaining vote on these proposals.

**Returns:** `Promise`<`boolean`>

___
<a id="isVotable"></a>

###  isVotable

▸ **isVotable**(options: *[ProposalIdOption](../interfaces/ProposalIdOption.md)*): `Promise`<`boolean`>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[isVotable](../interfaces/IIntVoteInterface.md#isVotable)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[isVotable](IntVoteInterfaceWrapper.md#isVotable)*

*Defined in [wrappers/intVoteInterface.ts:252](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L252)*

Get whether the proposal is in a state where it can be voted-upon.

**Parameters:**

| Param | Type |
| ------ | ------ |
| options | [ProposalIdOption](../interfaces/ProposalIdOption.md) |

**Returns:** `Promise`<`boolean`>

___
<a id="ownerVote"></a>

###  ownerVote

▸ **ownerVote**(options: *[OwnerVoteOptions](../interfaces/OwnerVoteOptions.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[ownerVote](IntVoteInterfaceWrapper.md#ownerVote)*

*Defined in [wrappers/genesisProtocol.ts:700](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L700)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options | [OwnerVoteOptions](../interfaces/OwnerVoteOptions.md) |

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

___
<a id="propose"></a>

###  propose

▸ **propose**(options: * [ProposeOptions](../interfaces/ProposeOptions.md) & `TxGeneratingFunctionOptions`*): `Promise`<[ArcTransactionProposalResult](ArcTransactionProposalResult.md)>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[propose](../interfaces/IIntVoteInterface.md#propose)*

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[propose](IntVoteInterfaceWrapper.md#propose)*

*Defined in [wrappers/genesisProtocol.ts:937](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L937)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options |  [ProposeOptions](../interfaces/ProposeOptions.md) & `TxGeneratingFunctionOptions`|

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

___
<a id="redeem"></a>

###  redeem

▸ **redeem**(options?: *[RedeemConfig](../interfaces/RedeemConfig.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Defined in [wrappers/genesisProtocol.ts:242](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L242)*

Redeem any tokens and reputation, excluding bounty, that are due the beneficiary from the outcome of the proposal.

**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `Default value` options | [RedeemConfig](../interfaces/RedeemConfig.md) |{} as RedeemConfig &amp; TxGeneratingFunctionOptions |  \- |

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

___
<a id="redeemDaoBounty"></a>

###  redeemDaoBounty

▸ **redeemDaoBounty**(options?: *[RedeemConfig](../interfaces/RedeemConfig.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Defined in [wrappers/genesisProtocol.ts:275](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L275)*

Redeem any token bounty that are due the beneficiary from the outcome of the proposal.

**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `Default value` options | [RedeemConfig](../interfaces/RedeemConfig.md) |{} as RedeemConfig &amp; TxGeneratingFunctionOptions |  \- |

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

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

###  setParameters

▸ **setParameters**(params: * [GenesisProtocolParams](../interfaces/GenesisProtocolParams.md) & `TxGeneratingFunctionOptions`*): `Promise`<[ArcTransactionDataResult](ArcTransactionDataResult.md)<[Hash](../#Hash)>>

*Defined in [wrappers/genesisProtocol.ts:783](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L783)*

Set the contract parameters.

**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| params |  [GenesisProtocolParams](../interfaces/GenesisProtocolParams.md) & `TxGeneratingFunctionOptions`|  \- |

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

___
<a id="shouldBoost"></a>

###  shouldBoost

▸ **shouldBoost**(options?: *[ShouldBoostConfig](../interfaces/ShouldBoostConfig.md)*): `Promise`<`boolean`>

*Defined in [wrappers/genesisProtocol.ts:307](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L307)*

Return whether a proposal should be shifted to the boosted phase.

**Parameters:**

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

**Returns:** `Promise`<`boolean`>
Promise<boolean>

___
<a id="stake"></a>

###  stake

▸ **stake**(options?: *[StakeConfig](../interfaces/StakeConfig.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Defined in [wrappers/genesisProtocol.ts:69](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L69)*

Stake some tokens on the final outcome matching this vote.

A transfer of tokens from the staker to this GenesisProtocol scheme is automatically approved and executed on the token with which this GenesisProtocol scheme was deployed.

**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `Default value` options | [StakeConfig](../interfaces/StakeConfig.md) |{} as StakeConfig &amp; TxGeneratingFunctionOptions |  \- |

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

___
<a id="stakeWithApproval"></a>

###  stakeWithApproval

▸ **stakeWithApproval**(options?: *[StakeConfig](../interfaces/StakeConfig.md)*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Defined in [wrappers/genesisProtocol.ts:130](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L130)*

Preapprove the transfer of stakingTokens from the default account to this GenesisProtocol contract, and then stake, all in a single transaction.

**Parameters:**

| Param | Type | Default value | Description |
| ------ | ------ | ------ | ------ |
| `Default value` options | [StakeConfig](../interfaces/StakeConfig.md) |{} as StakeConfig &amp; TxGeneratingFunctionOptions |   |

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

___
<a id="vote"></a>

###  vote

▸ **vote**(options: * [VoteOptions](../interfaces/VoteOptions.md) & `TxGeneratingFunctionOptions`*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[vote](../interfaces/IIntVoteInterface.md#vote)*

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[vote](IntVoteInterfaceWrapper.md#vote)*

*Defined in [wrappers/genesisProtocol.ts:944](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L944)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options |  [VoteOptions](../interfaces/VoteOptions.md) & `TxGeneratingFunctionOptions`|

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

___
<a id="voteStatus"></a>

###  voteStatus

▸ **voteStatus**(options: *[VoteStatusOptions](../interfaces/VoteStatusOptions.md)*): `Promise`<`BigNumber`>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[voteStatus](../interfaces/IIntVoteInterface.md#voteStatus)*

*Inherited from [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[voteStatus](IntVoteInterfaceWrapper.md#voteStatus)*

*Defined in [wrappers/intVoteInterface.ts:266](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/intVoteInterface.ts#L266)*

Get the number of votes currently cast on the given choice.

**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| options | [VoteStatusOptions](../interfaces/VoteStatusOptions.md) |   |

**Returns:** `Promise`<`BigNumber`>

___
<a id="voteWithSpecifiedAmounts"></a>

###  voteWithSpecifiedAmounts

▸ **voteWithSpecifiedAmounts**(options: * [VoteWithSpecifiedAmountsOptions](../interfaces/VoteWithSpecifiedAmountsOptions.md) & `TxGeneratingFunctionOptions`*): `Promise`<[ArcTransactionResult](ArcTransactionResult.md)>

*Implementation of [IIntVoteInterface](../interfaces/IIntVoteInterface.md).[voteWithSpecifiedAmounts](../interfaces/IIntVoteInterface.md#voteWithSpecifiedAmounts)*

*Overrides [IntVoteInterfaceWrapper](IntVoteInterfaceWrapper.md).[voteWithSpecifiedAmounts](IntVoteInterfaceWrapper.md#voteWithSpecifiedAmounts)*

*Defined in [wrappers/genesisProtocol.ts:951](https://github.com/daostack/arc.js/blob/6f704389/lib/wrappers/genesisProtocol.ts#L951)*

**Parameters:**

| Param | Type |
| ------ | ------ |
| options |  [VoteWithSpecifiedAmountsOptions](../interfaces/VoteWithSpecifiedAmountsOptions.md) & `TxGeneratingFunctionOptions`|

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

___

