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