Skip to main content

Funding Queue (FundingQueue)

Funding Queues are a core mechanic described in the Colony whitepaper, allowing for teams to allocate resources in a distributed manner. Members of a colony can make and back funding proposals, requesting that some number of tokens be transferred between domains. The more reputation backing a proposal, the more quickly the proposal is fulfilled, up to a maximum of half of the source domain's assets per week. By creating and bacing funding proposals throughout the colony, a steady flow of resources from the root through the domains can be achieved.

Interface Methods​

▸ backProposal(uint256 _id, uint256 _backing, uint256 _currPrevId, uint256 _newPrevId, bytes memory _key, bytes memory _value, uint256 _branchMask, bytes32[] memory _siblings)​

Back a funding proposal and advance it along the list

Parameters

NameTypeDescription
_iduint256The proposal Id
_backinguint256The amount of backing to give the proposal (up to user's reputation)
_currPrevIduint256The current previous proposal in the list
_newPrevIduint256The new previous proposal after we re-arrange
_keybytesA reputation hash tree key, of the caller's reputation in _domainId
_valuebytesReputation value indicating the caller's reputation in _domainId
_branchMaskuint256The branchmask of the proof
_siblingsbytes32[]The siblings of the proof

▸ cancelProposal(uint256 _id, uint256 _prevId)​

Cancel a funding proposal and remove from linked list

Parameters

NameTypeDescription
_iduint256The proposal Id
_prevIduint256The id of the preceding proposal in the linked list

▸ createProposal(uint256 _domainId, uint256 _fromChildSkillIndex, uint256 _toChildSkillIndex, uint256 _fromPot, uint256 _toPot, uint256 _totalRequested, address _token)​

Create a new funding proposal

Parameters

NameTypeDescription
_domainIduint256The domain the extension has the funding permission
_fromChildSkillIndexuint256The index of the fromPot's domain in _domainId.children[]
_toChildSkillIndexuint256The index of the toPot's domain in _domainId.children[]
_fromPotuint256Funding pot id providing the funds
_toPotuint256Funding pot id receiving the funds
_totalRequesteduint256The total amount being requested
_tokenaddressThe token being transferred

▸ deprecate(bool _deprecated)​

Called when deprecating (or undeprecating) the extension

Parameters

NameTypeDescription
_deprecatedboolIndicates whether the extension should be deprecated or undeprecated

▸ finishUpgrade()​

Called when upgrading the extension

▸ getMetatransactionNonce(address userAddress):uint256 nonce​

Gets the next nonce for a meta-transaction

Parameters

NameTypeDescription
userAddressaddressThe user's address

Return Parameters

NameTypeDescription
nonceuint256The nonce

▸ getNextProposalId(uint256 _id):uint256 nextId​

Gets the id of the next proposal in the list

Parameters

NameTypeDescription
_iduint256The proposal Id

Return Parameters

NameTypeDescription
nextIduint256The next proposal Id in the list

▸ getProposal(uint256 _id):Proposal proposal​

Get the proposal struct for a given proposal

Parameters

NameTypeDescription
_iduint256The proposal Id

Return Parameters

NameTypeDescription
proposalProposalThe proposal struct

▸ getProposalCount():uint256 count​

Get the total number of proposals

Return Parameters

NameTypeDescription
countuint256The count

▸ getSupport(uint256 _id, address _supporter):uint256 support​

Gets the reputation support from a user to a proposal

Parameters

NameTypeDescription
_iduint256The proposal Id
_supporteraddressThe supporter

Return Parameters

NameTypeDescription
supportuint256The support amount

▸ identifier():bytes32 _identifier​

Returns the identifier of the extension

Return Parameters

NameTypeDescription
_identifierbytes32The extension's identifier

▸ install(address _colony)​

Configures the extension

Parameters

NameTypeDescription
_colonyaddressThe colony in which the extension holds permissions

▸ pingProposal(uint256 _id)​

Transfer the marginal funds

Parameters

NameTypeDescription
_iduint256The proposal Id

▸ reclaimStake(uint256 _id)​

Reclaim the stake after the proposal is funded

Parameters

NameTypeDescription
_iduint256The proposal Id

▸ stakeProposal(uint256 _id, bytes memory _key, bytes memory _value, uint256 _branchMask, bytes32[] memory _siblings)​

Stake a funding proposal

Parameters

NameTypeDescription
_iduint256The proposal Id
_keybytesA reputation hash tree key, of the total reputation in _domainId
_valuebytesReputation value indicating the total reputation in _domainId
_branchMaskuint256The branchmask of the proof
_siblingsbytes32[]The siblings of the proof

▸ uninstall()​

Called when uninstalling the extension

▸ version():uint256 _version​

Returns the version of the extension

Return Parameters

NameTypeDescription
_versionuint256The extension's version number