Swivel

Annotated source of the Swivel.sol smart contract

constructor

  function constructor(
    address m
  ) public

Parameters:

initiate

  function initiate(
    struct Hash.Order[] o,
    uint256[] a,
    struct Sig.Components[] c
  ) external returns (bool)

Allows a user to initiate a position

Parameters:

initiateVaultFillingZcTokenInitiate

  function initiateVaultFillingZcTokenInitiate(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to initiate a Vault by filling an offline zcToken initiate order

This method should pass (underlying, maturity, maker, sender, principalFilled) to MarketPlace.custodialInitiate

Parameters:

initiateZcTokenFillingVaultInitiate

  function initiateZcTokenFillingVaultInitiate(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to initiate a zcToken by filling an offline vault initiate order

This method should pass (underlying, maturity, sender, maker, a) to MarketPlace.custodialInitiate

Parameters:

initiateZcTokenFillingZcTokenExit

  function initiateZcTokenFillingZcTokenExit(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to initiate zcToken? by filling an offline zcToken exit order

This method should pass (underlying, maturity, maker, sender, a) to MarketPlace.p2pZcTokenExchange

Parameters:

initiateVaultFillingVaultExit

  function initiateVaultFillingVaultExit(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to initiate a Vault by filling an offline vault exit order

This method should pass (underlying, maturity, maker, sender, principalFilled) to MarketPlace.p2pVaultExchange

Parameters:

exit

  function exit(
    struct Hash.Order[] o,
    uint256[] a,
    struct Sig.Components[] c
  ) external returns (bool)

Allows a user to exit (sell) a currently held position to the marketplace.

Parameters:

exitZcTokenFillingZcTokenInitiate

  function exitZcTokenFillingZcTokenInitiate(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to exit their zcTokens by filling an offline zcToken initiate order

This method should pass (underlying, maturity, sender, maker, principalFilled) to MarketPlace.p2pZcTokenExchange

Parameters:

exitVaultFillingVaultInitiate

  function exitVaultFillingVaultInitiate(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to exit their Vault by filling an offline vault initiate order

This method should pass (underlying, maturity, sender, maker, a) to MarketPlace.p2pVaultExchange

Parameters:

exitVaultFillingZcTokenExit

  function exitVaultFillingZcTokenExit(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to exit their Vault filling an offline zcToken exit order

This method should pass (underlying, maturity, maker, sender, a) to MarketPlace.exitFillingExit

Parameters:

exitZcTokenFillingVaultExit

  function exitZcTokenFillingVaultExit(
    struct Hash.Order o,
    uint256 a,
    struct Sig.Components c
  ) internal

Allows a user to exit their zcTokens by filling an offline vault exit order

This method should pass (underlying, maturity, sender, maker, principalFilled) to MarketPlace.exitFillingExit

Parameters:

cancel

  function cancel(
    struct Hash.Order o,
    struct Sig.Components c
  ) external returns (bool)

Allows a user to cancel an order, preventing it from being filled in the future

Parameters:

transferAdmin

  function transferAdmin(
    address a
  ) external returns (bool)

Parameters:

scheduleWithdrawal

  function scheduleWithdrawal(
    address e
  ) external returns (bool)

Allows the admin to schedule the withdrawal of tokens

Parameters:

blockWithdrawal

  function blockWithdrawal(
    address e
  ) external returns (bool)

Emergency function to block unplanned withdrawals

Parameters:

withdraw

  function withdraw(
    address e
  ) external returns (bool)

Allows the admin to withdraw the given token, provided the holding period has been observed

Parameters:

setFee

  function setFee(
    uint16 i,
    uint16 d
  ) external returns (bool)

Allows the admin to set a new fee denominator

Parameters:

approveUnderlying

  function approveUnderlying(
    address[] u,
    address[] c
  ) external returns (bool)

Allows the admin to bulk approve given compound addresses at the underlying token, saving marginal approvals

Parameters:

splitUnderlying

  function splitUnderlying(
    address u,
    uint256 m,
    uint256 a
  ) external returns (bool)

Allows users to deposit underlying and in the process split it into/mint zcTokens and vault notional. Calls mPlace.mintZcTokenAddingNotional

Parameters:

combineTokens

  function combineTokens(
    address u,
    uint256 m,
    uint256 a
  ) external returns (bool)

Allows users deposit/burn 1-1 amounts of both zcTokens and vault notional, in the process "combining" the two, and redeeming underlying. Calls mPlace.burnZcTokenRemovingNotional.

Parameters:

redeemZcToken

  function redeemZcToken(
    address u,
    uint256 m,
    uint256 a
  ) external returns (bool)

Allows zcToken holders to redeem their tokens for underlying tokens after maturity has been reached (via MarketPlace).

Parameters:

redeemVaultInterest

  function redeemVaultInterest(
    address u,
    uint256 m
  ) external returns (bool)

Allows Vault owners to redeem any currently accrued interest (via MarketPlace)

Parameters:

validOrderHash

  function validOrderHash(
    struct Hash.Order o,
    struct Sig.Components c
  ) internal returns (bytes32)

Varifies the validity of an order and it's signature.

Parameters:

Return Values:

Initiate

  event Initiate(
  )

Emitted on any initiate*

filled is 'principalFilled' when (vault:false, exit:false) && (vault:true, exit:true) filled is 'premiumFilled' when (vault:true, exit:false) && (vault:false, exit:true)

Exit

  event Exit(
  )

Emitted on any exit*

filled is 'principalFilled' when (vault:false, exit:false) && (vault:true, exit:true) filled is 'premiumFilled' when (vault:true, exit:false) && (vault:false, exit:true)

ScheduleWithdrawal

  event ScheduleWithdrawal(
  )

Emitted on token withdrawal scheduling

BlockWithdrawal

  event BlockWithdrawal(
  )

Emitted on token withdrawal blocking

SetFee

  event SetFee(
  )

Emitted on a change to the feenominators array

Last updated