Completing the Withdrawal

This is the last step of the withdrawal process, after which, your funds will be returned to your wallet.

This can only be done once the cooldown time is completed

1. (BNT withdrawals only) Approve vBNT

Withdrawing BNT requires an equal number of vBNT to the bnBNT you are withdrawing. For example, withdrawing 10 bnBNT requires 10 vBNT.

For any other token, skip to step 2

The BancorNetwork contract requires approval to perform the transaction with your vBNT tokens.

  • Visit the vBNT contract on etherscan

  • Execute the Approve function (this is a Write function)

_spender

The address of the BancorNetwork found here

_value

The amount you would like to approve (it can be identical or more than the amount of bnBNT you wish to withdraw, BUT NOT LESS) in WEI format as explained here

2. Cooldown ID

This step will explain how to identify the cooldown ID needed to complete the withdrawal.

  • Visit the PendingWithdrawals contract on etherscan

  • Execute the withdrawalRequestIds function (this is a Read function)

Input variable

NameTypeDescription

provider

address

Your wallet address

Output response

NameTypeDescription

cooldownId

uint256

The ID of the existing cooldown requests you have (can be more than 1)

Save the cooldownIds as these represent the inputs needed for the next steps.

3. Identify which cooldown ID to use

This step will explain how to identify which cooldown ID to use.

If you only have a single ID, skip to the next step.

  • Visit the PendingWithdrawals contract on etherscan

  • Execute the withdrawalRequest function (this is a Read function)

Input variable

NameTypeDescription

id

uint256

One of the IDs generated from the previous step

Output response

NameTypeDescription

provider

address

The address that can interact with this cooldown request

poolToken

IPoolToken

The locked bnToken

reserveToken

Token

The underlying token

createdAt

uint32

The time when the request was created

poolTokenAmount

uint256

The locked bnToken amount

reserveTokenAmount

uint256

The expected amount of underlying asset to receive

Using the returned values,

  1. Identify the reserveToken you would like to withdraw

  2. Save the id for the next step

4. Identify if the cooldown period is over

This step will explain how to check if your cooldown is over and you can safely withdraw your tokens.

  • Visit the BancorNetworkInfo contract on etherscan

  • Execute the isReadyForWithdrawal function (this is a Read function)

Input variable

NameTypeDescription

id

uint256

The cooldown ID you wish to finalize

Output response

NameTypeDescription

isReady

bool

True/False indication on the status of the cooldown. (when True, proceed to next step)

5. Complete the withdraw

This step will explain how to complete the withdrawal process and call the withdraw function.

  • Visit the BancorNetwork contract on etherscan

  • Execute the withdraw function (this is a Write function)

Input variable

NameTypeDescription

id

uint256

The cooldown ID you wish to withdraw

Output

This will complete the withdrawal process and return the underlying tokens to your wallet.

Last updated