Wrapped USD
Search
K
Links
Comment on page

Provisioner

The Provisioner is the "liquidity mining" contract for GLO. Think WUSETHer but for GLO.
It allows users to earn GLO credit (for the provided GLO), and trading fees, for providing bound-/full-range GLO-USDT and/or GLO-USDC liquidity on Uniswap v3

Functions

Most functions carry over from the WUSETHer as the Provisioner is basically a modified version of it that interfaces with Wrapped USD's canonical GLO-USDT and GLO-USDC Uniswap v3 1% fee tier pools. The primary difference is that it allows liquidity provision in a concentrated range rather than only full-range.
Assume any function not explicitly mentioned here is exactly the same as the WUSETHer.

nftsOf (account)

Returns a list of all the Uniswap v3 liquidity nfts owned by account created via the Provisioner.
Unlike WUSETHer, there are two ranges here so account can have up to 4 nfts, 2 each for USDT and USDC, hence the "s" in the function

provide (range, token, addable0, addable1, referrer)

Used to provide token-paired liquidity in range for the first time via referrer's frontend.
Name
Meaning
range
A value of 0 (concentrated liquidity) or 1 (full range)
token
Address of the token, USDT or USDC, to pair GLO with
addable0
Amount of GLO to optimistically create liquidity position with
addable1
Amount of token to optimistically create liquidity position with
referrer
Address of registered frontend enabling the interaction or 0 address
Like with the WUSETHer, there's a service fee, paid in token, of 1% of the actually added token amount — or 100, whichever is higher. This can be executed only once per range per token.
The liquidity position created cannot be withdrawn for 24 hours, calculated using withdrawable.
As with the WUSETHer, the referral units earned by referrer here is a fixed amount of 100.
The caller must approve Provisioner to spend their token and GLO

increase (nft, addable0, addable1)

Used to increase the liquidity position identified by nft.
Name
Meaning
nft
Identifier of liquidity position to be increased
addable0
Amount of GLO to optimistically add to existing liquidity
addable1
Amount of pair token to optimistically add to existing liquidity
Just as with provide() above, there's a service fee, paid in the pair token, of 1% of the actually added pair token amount — or 100, whichever is higher.
The address of the pair token that is addable1 can be retrieved with Uniswap v3's positions() function ("token1").
  • The caller must approve Provisioner to also spend their GLO
  • provisionOf(nft).withdrawable is updated after execution

decrease (nft, percentage)

Used to decrease the liquidity position identified by nft.
Name
Meaning
nft
Identifier of liquidity position to be decreased
percentage
A percentage, in basis point, to decrease the liquidity by
When a liquidity position is decreased, the constituent tokens — GLO and USDT/USDC — that make up the position, as well as fees earned, are returned to the user.
The user claims GLO credit for the GLO portion of this withdrawal at a rate of 1% for every 2 weeks since the last provisionOf(nft).timestamp update.
  • block.timestamp > provisionOf(nft).withdrawable must be true
  • percentage must be >0 && <100e18, scaled such that 1% is 1e18
  • provisionOf(nft).timestamp is updated after execution

collect (nft)

Used to collect fees earned by liquidity position identified by nft.
Name
Meaning
nft
Identifier of liquidity position for which fees is to be collected
In the manner of decrease(), this returns the constituent tokens that make up the position as well as its earned GLO credit.
provisionOf(nft).timestamp is updated after execution

withdraw (nft)

Used to completely withdraw a liquidity position identified by nft.
Name
Meaning
nft
Identifier of liquidity position to be withdrawn
Identical to decrease()but effectively presets percentage to 100%.
The nft is deleted from both Provisioner and Uniswap and can no longer be used in either system.
Last modified 5mo ago