Swivel
Annotated source of the Swivel.sol smart contract
constructor
Parameters:
m
address
deployed MarketPlace contract address
initiate
Allows a user to initiate a position
Parameters:
o
struct Hash.Order[]
Array of offline Swivel.Orders
a
uint256[]
Array of order volume (principal) amounts relative to passed orders
c
struct Sig.Components[]
Array of Components from valid ECDSA signatures
initiateVaultFillingZcTokenInitiate
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (premium) being filled by the taker's initiate
c
struct Sig.Components
Components of a valid ECDSA signature
initiateZcTokenFillingVaultInitiate
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (principal) being filled by the taker's initiate
c
struct Sig.Components
Components of a valid ECDSA signature
initiateZcTokenFillingZcTokenExit
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (principal) being filled by the taker's initiate
c
struct Sig.Components
Components of a valid ECDSA signature
initiateVaultFillingVaultExit
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (interest) being filled by the taker's exit
c
struct Sig.Components
Components of a valid ECDSA signature
exit
Allows a user to exit (sell) a currently held position to the marketplace.
Parameters:
o
struct Hash.Order[]
Array of offline Swivel.Orders
a
uint256[]
Array of order volume (principal) amounts relative to passed orders
c
struct Sig.Components[]
Components of a valid ECDSA signature
exitZcTokenFillingZcTokenInitiate
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (interest) being filled by the taker's exit
c
struct Sig.Components
Components of a valid ECDSA signature
exitVaultFillingVaultInitiate
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (principal) being filled by the taker's exit
c
struct Sig.Components
Components of a valid ECDSA signature
exitVaultFillingZcTokenExit
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (principal) being filled by the taker's exit
c
struct Sig.Components
Components of a valid ECDSA signature
exitZcTokenFillingVaultExit
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:
o
struct Hash.Order
Order being filled
a
uint256
Amount of volume (interest) being filled by the taker's exit
c
struct Sig.Components
Components of a valid ECDSA signature
cancel
Allows a user to cancel an order, preventing it from being filled in the future
Parameters:
o
struct Hash.Order
Order being cancelled
c
struct Sig.Components
Components of a valid ECDSA signature
transferAdmin
Parameters:
a
address
Address of a new admin
scheduleWithdrawal
Allows the admin to schedule the withdrawal of tokens
Parameters:
e
address
Address of (erc20) token to withdraw
blockWithdrawal
Emergency function to block unplanned withdrawals
Parameters:
e
address
Address of token withdrawal to block
withdraw
Allows the admin to withdraw the given token, provided the holding period has been observed
Parameters:
e
address
Address of token to withdraw
setFee
Allows the admin to set a new fee denominator
Parameters:
i
uint16
The index of the new fee denominator
d
uint16
The new fee denominator
approveUnderlying
Allows the admin to bulk approve given compound addresses at the underlying token, saving marginal approvals
Parameters:
u
address[]
array of underlying token addresses
c
address[]
array of compound token addresses
splitUnderlying
Allows users to deposit underlying and in the process split it into/mint zcTokens and vault notional. Calls mPlace.mintZcTokenAddingNotional
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
a
uint256
Amount of underlying being deposited
combineTokens
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:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
a
uint256
Amount of zcTokens being redeemed
redeemZcToken
Allows zcToken holders to redeem their tokens for underlying tokens after maturity has been reached (via MarketPlace).
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
a
uint256
Amount of zcTokens being redeemed
redeemVaultInterest
Allows Vault owners to redeem any currently accrued interest (via MarketPlace)
Parameters:
u
address
Underlying token address associated with the market
m
uint256
Maturity timestamp of the market
validOrderHash
Varifies the validity of an order and it's signature.
Parameters:
o
struct Hash.Order
An offline Swivel.Order
c
struct Sig.Components
Components of a valid ECDSA signature
Return Values:
the
struct Hash.Order
hashed order.
## Events
### Cancel
```solidity
event Cancel(
)
```
Emitted on order cancellation
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
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
Emitted on token withdrawal scheduling
BlockWithdrawal
Emitted on token withdrawal blocking
SetFee
Emitted on a change to the feenominators array
Last updated