Wrap Module
Last updated
Last updated
The WrapModuleV2 (Etherscan) is a smart contract that enables the wrapping of ERC20 and Ether positions via third-party protocols. The WrapModule works in conjunction with WrapAdapters, in which the wrapAdapterID
/ integrationNames
are stored on the integration registry. Examples of wrap actions include wrapping DAI to cDAI (Compound) or DAI to aDAI (Aave).
function wrap(ISetToken _setToken, address _underlyingToken, address _wrappedToken, uint256 _underlyingUnits, string calldata _integrationName)
Manager only. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.
function wrapWithEther(ISetToken _setToken, address _wrappedToken, uint256 _underlyingUnits, string calldata _integrationName)
Manager only. Instructs the SetToken to wrap Ether into a wrappedToken via a specified adapter. Since SetTokens only hold WETH, in order to support protocols that collateralize with Ether the SetToken's WETH must be unwrapped first before sending to the external protocol.
function unwrap(ISetToken _setToken, address _underlyingToken, address _wrappedToken, uint256 _wrappedUnits, string calldata _integrationName)
Manager only. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.
function unwrapWithEther(ISetToken _setToken, address _wrappedToken, uint256 _wrappedUnits, string calldata _integrationName)
Manager only. Instructs the SetToken to wrap an underlying asset into a wrappedToken via a specified adapter.
function initialize(ISetToken _setToken)
Manager only. Initializes this module to the SetToken.
Parameter Name
Type
Description
_setToken
ISetToken
Instance of the SetToken
_underlyingToken
address
Address of the component to be wrapped
_wrappedToken
address
Address of the desired wrapped token
_underlyingUnits
uint256
Quantity of underlying units in Position units
_integrationName
string
Name of wrap module integration (mapping on integration registry)
Parameter Name
Type
Description
_setToken
ISetToken
Instance of the SetToken
_wrappedToken
address
Address of the desired wrapped token
_underlyingUnits
uint256
Quantity of underlying units in Position units
_integrationName
string
Name of wrap module integration (mapping on integration registry)
Parameter Name
Type
Description
_setToken
ISetToken
Instance of the SetToken
_underlyingToken
address
Address of the component to be wrapped
_wrappedToken
address
Address of the desired wrapped token
_wrappedUnits
uint256
Quantity of wrapped units in Position units
_integrationName
string
Name of wrap module integration (mapping on integration registry)
Parameter Name
Type
Description
_setToken
ISetToken
Instance of the SetToken
_wrappedToken
address
Address of the desired wrapped token
_wrappedUnits
uint256
Quantity of wrapped units in Position units
_integrationName
string
Name of wrap module integration (mapping on integration registry)
Parameter Name
Type
Description
_setToken
ISetToken
Address of the SetToken