MarketPlace
Annotated source code of the MarketPlace.sol smart contract
Functions
setSwivelAddress
function setSwivelAddress(
address s
) external returns (bool)
We only allow this to be set once
Parameters:
s
address
Address of the deployed swivel contract
transferAdmin
function transferAdmin(
address a
) external returns (bool)
Parameters:
a
address
Address of a new admin
createMarket
function createMarket(
uint256 m,
address c,
string n,
string s
) external returns (bool)
Allows the owner to create new markets
Parameters:
m
uint256
Maturity timestamp of the new market
c
address
cToken address associated with underlying for the new market
n
string
Name of the new zcToken market
s
string
Symbol of the new zcToken market
matureMarket
function matureMarket(
address u,
uint256 m
) public returns (bool)
Can be called after maturity, allowing all of the zcTokens to earn floating interest on Compound until they release their funds
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
mintZcTokenAddingNotional
function mintZcTokenAddingNotional(
address u,
uint256 m,
address t,
uint256 a
) external returns (bool)
Allows Swivel caller to deposit their underlying, in the process splitting it - minting both zcTokens and vault notional.
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
t
address
Address of the depositing user
a
uint256
Amount of notional being added
burnZcTokenRemovingNotional
function burnZcTokenRemovingNotional(
address u,
uint256 m,
address t,
uint256 a
) external returns (bool)
Allows Swivel caller to deposit/burn both zcTokens + vault notional. This process is "combining" the two and redeeming underlying.
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
t
address
Address of the combining/redeeming user
a
uint256
Amount of zcTokens being burned
redeemZcToken
function redeemZcToken(
address u,
uint256 m,
address t,
uint256 a
) external returns (uint256)
Allows (via swivel) zcToken holders to redeem their tokens for underlying tokens after maturity has been reached.
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
t
address
Address of the redeeming user
a
uint256
Amount of zcTokens being redeemed
redeemVaultInterest
function redeemVaultInterest(
address u,
uint256 m,
address t
) external returns (uint256)
Allows Vault owners (via Swivel) to redeem any currently accrued interest
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
t
address
Address of the redeeming user
calculateReturn
function calculateReturn(
address u,
uint256 m,
uint256 a
) internal returns (uint256)
Calculates the total amount of underlying returned including interest generated since the matureMarket
function has been called
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
a
uint256
Amount of zcTokens being redeemed
cTokenAddress
function cTokenAddress(
address u,
uint256 m
) external returns (address)
Return the ctoken address for a given market
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
custodialInitiate
function custodialInitiate(
address u,
uint256 m,
address z,
address n,
uint256 a
) external returns (bool)
Called by swivel IVFZI && IZFVI
Call with underlying, maturity, mint-target, add-notional-target and an amount
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
z
address
Recipient of the minted zcToken
n
address
Recipient of the added notional
a
uint256
Amount of zcToken minted and notional added
custodialExit
function custodialExit(
address u,
uint256 m,
address z,
address n,
uint256 a
) external returns (bool)
Called by swivel EVFZE FF EZFVE
Call with underlying, maturity, burn-target, remove-notional-target and an amount
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
z
address
Owner of the zcToken to be burned
n
address
Target to remove notional from
a
uint256
Amount of zcToken burned and notional removed
p2pZcTokenExchange
function p2pZcTokenExchange(
address u,
uint256 m,
address f,
address t,
uint256 a
) external returns (bool)
Called by swivel IZFZE, EZFZI
Call with underlying, maturity, transfer-from, transfer-to, amount
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
f
address
Owner of the zcToken to be burned
t
address
Target to be minted to
a
uint256
Amount of zcToken transfer
p2pVaultExchange
function p2pVaultExchange(
address u,
uint256 m,
address f,
address t,
uint256 a
) external returns (bool)
Called by swivel IVFVE, EVFVI
Call with underlying, maturity, remove-from, add-to, amount
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
f
address
Owner of the notional to be transferred
t
address
Target to be transferred to
a
uint256
Amount of notional transfer
transferVaultNotional
function transferVaultNotional(
address u,
uint256 m,
address t,
uint256 a
) external returns (bool)
External method giving access to this functionality within a given vault
Note that this method calculates yield and interest as well
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
t
address
Target to be transferred to
a
uint256
Amount of notional to be transferred
transferVaultNotionalFee
function transferVaultNotionalFee(
address u,
uint256 m,
address f,
uint256 a
) external returns (bool)
Transfers notional fee to the Swivel contract without recalculating marginal interest for from
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
f
address
Owner of the amount
a
uint256
Amount to transfer
pause
function pause(
bool b
) external returns (bool)
Called by admin at any point to pause / unpause market transactions
Parameters:
b
bool
Boolean which indicates the markets paused status
Events
Create
event Create(
)
Mature
event Mature(
)
RedeemZcToken
event RedeemZcToken(
)
RedeemVaultInterest
event RedeemVaultInterest(
)
CustodialInitiate
event CustodialInitiate(
)
CustodialExit
event CustodialExit(
)
P2pZcTokenExchange
event P2pZcTokenExchange(
)
P2pVaultExchange
event P2pVaultExchange(
)
TransferVaultNotional
event TransferVaultNotional(
)
Last updated