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
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
.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 functionUsed 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
.The caller must approve
Provisioner
to spend their token
and GLOUsed 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
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 truepercentage
must be>0 && <100e18
, scaled such that 1% is 1e18provisionOf(nft).timestamp
is updated after execution
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 executionUsed 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