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