😀
Nexus Market
  • Introduction
    • 👋Hi !
    • Overview
      • Start BUIDLing
  • Links
    • Money Market App
    • Github
    • Telegram
  • Concepts
    • At a Glance
      • Supply
      • Borrow
      • Repay
      • Withdraw
      • Liquidation
      • Flash Loan
      • Risks
    • Protocol
      • Liquidity Pool
      • Reserve
      • Oracle
      • Governance
      • Incentives
      • Safety Module
  • LST as Collateral
  • Coming Soon
  • Guides
    • User Flows
    • Follow-on Steps
  • Developers
    • Smart Contract
      • Pool
      • L2 Pool
      • Wrapped Token Gateway
      • View Contracts
      • Incentives
      • Tokenisation
      • Interest Rate Strategy
      • Access Control Manager
      • Oracles
      • PoolAddressesProvider
      • Pool Configurator
      • Switch Adapters
    • Safety Module
    • Governance
    • Flash Loan
      • Premium Distribution
      • Example Calculation
  • Credit Delegation
  • Resources
    • Web3
    • Glossary
    • Contracts Dashboard
      • Ethereum Sepolia
      • Base Sepolia
      • BSC Chapel
    • Parameters Dashboard
    • Access Control Dashboard
    • FAQ
      • General
      • Risk
      • Supplying and Earning
      • Borrowing
      • Liquidations
      • Governance
      • Safety Module
      • Developers
      • Other Features
      • Brand-related
Powered by GitBook
On this page
  • Write Methods
  • depositETH
  • withdrawETH
  • repayETH
  • borrowETH
  • withdrawETHWithPermit
  • View Methods
  • getWETHAddress

Was this helpful?

  1. Developers
  2. Smart Contract

Wrapped Token Gateway

PreviousL2 PoolNextView Contracts

Last updated 1 month ago

Was this helpful?

The Nexus Protocol operates exclusively with ERC-20 tokens. To accommodate network gas tokens, the WrappedTokenGateway is a helper contract that enables gas tokens to be wrapped or unwrapped to perform Nexus Pool methods:

  • Supply

  • Borrow

  • Repay

  • Withdraw

The smart contract source code is available on .

Write Methods

depositETH

function depositETH(
    address,
    address onBehalfOf,
    uint16 referralCode
) external payable override

Wraps and supplies gas tokens to the Nexus Protocol. A corresponding amount of the wrapped zTokens are minted to the onBehalfOf address.

The amount of network gas tokens to be supplied is specified in the msg.value field of the transaction.

Input Parameters:

Name
Type
Description

onBehalfOf

address

The address of the user who will receive the zTokens representing the supplied tokens

referralCode

uint16

Inactive, can pass 0 as placeholder

withdrawETH

function withdrawETH(
    address,
    uint256 amount,
    address to
) external override

Withdraws amount of the supplied wrapped gas token, unwraps it and transfers to the to address. If the amount is uint(-1), the entire balance is withdrawn.

The WrappedTokenGateway contract must have an approved token allowance to spend zWETH on behalf of the user, example: IERC20(zWETHAddress).approve(wrappedTokenGatewayAddress, amount)

Input Parameters:

Name
Type
Description

amount

uint256

amount of zWETH to withdraw and receive native ETH

to

address

The address of the user who will receive native ETH

repayETH

function repayETH(
    address,
    uint256 amount,
    uint256 rateMode,
    address onBehalfOf
) external payable override

Repays a borrow position of onBehalfOf's address for the specified amount (or for the whole amount, if amount of uint256(-1) is passed).

The amount of network gas token to be repaid must also be specified in the msg.value field of the transaction.

Input Parameters:

Name
Type
Description

amount

uint256

The amount to repay, or uint256(-1) if the user wants to repay everything

rateMode

uint256

Should always be passed a value of 2 (variable rate mode)

onBehalfOf

address

The address for which msg.sender is repaying

borrowETH

function borrowETH(
    address,
    uint256 amount,
    uint256 interestRateMode,
    uint16 referralCode
) external override

Borrows amount of unwrapped network gas tokens to msg.sender.

Input Parameters:

Name
Type
Description

amount

uint256

The amount of ETH to borrow

interestRateMode

uint256

Should always be passed a value of 2 (variable rate mode)

referralCode

uint16

Integrators are assigned a referral code and can potentially receive rewards

withdrawETHWithPermit

function withdrawETHWithPermit(
    address,
    uint256 amount,
    address to,
    uint256 deadline,
    uint8 permitV,
    bytes32 permitR,
    bytes32 permitS
) external override

Withdraws amount of the supplied wrapped gas token, unwraps it and transfers to the to address. If the amount is uint(-1), the entire balance is withdrawn.

Input Parameters:

Name
Type
Description

amount

uint256

The amount of zWETH to withdraw and receive native ETH

to

address

The address of the user who will receive native ETH

deadline

uint256

Timestamp of signature expiration

permitV

uint8

V parameter of ERC712 permit sig

permitR

bytes32

R parameter of ERC712 permit sig

permitS

bytes32

S parameter of ERC712 permit sig

View Methods

getWETHAddress

function getWETHAddress() external view returns (address)

Get WETH address used by WrappedTokenGatewayV3.

Return Values:

Type
Description

address

The WETH address used by WrappedTokenGatewayV3

The WrappedTokenGateway contract must have an approved to borrow WETH (or corresponding wrapped gas token of the network) on behalf of the the caller, example: IVariableDebtToken(wethAddress).approveDelegation(wrappedTokenGatewayAddress, amount)

reserve
GitHub
credit delegation