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