5. Withdraw DAI from Public Pool

Description

Withdraw DAIs from public liquidity pool. Once you retrieve your DAIs from the public pool, your reDAIs will be switched to DAIs.

TBD: Narratives

TBD: Lock/Unlock Period Explanation

User Interface

Function Description

Item

Description

Contract Address

Public pool contract (referenced by Smart Contract Overview section)

Contract Name

SLDDAIPools1.sol

Function

function withdraw(uint256 reTokenAmount)

Function Selector

0x3c264195

Invocation Type

Ethereum Transaction

Passing Parameters

Amount of DAIs to withdraw from public pool; actual number multiplied by 1E18

Return Value

None

Event Emitted

event Withdraw(address indexed account, uint256 amount);

Event Signature

0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364

Transaction Sample(BSC testnet)

ABI Description

{
	"inputs": [{
		"internalType": "uint256",
		"name": "reTokenAmount",
		"type": "uint256"
	}],
	"name": "withdraw",
	"outputs": [{
		"internalType": "uint256",
		"name": "reAmount",
		"type": "uint256"
	}],
	"stateMutability": "nonpayable",
	"type": "function"
}

Examples

Calling Examples

var Web3 = require('web3');
const BigNumber = require('bignumber.js');

// BSC Mainnet: https://bsc-dataseed.binance.org
// BSC Testnet: https://data-seed-prebsc-1-s1.binance.org:8545
const  web3 = new Web3("https://data-seed-prebsc-1-s1.binance.org:8545");

const CONTRACT_ADDRESS = "Replace with Public Pool Contract Address";
const ABI = [{
	"inputs": [{
		"internalType": "uint256",
		"name": "reTokenAmount",
		"type": "uint256"
	}],
	"name": "withdraw",
	"outputs": [{
		"internalType": "uint256",
		"name": "reAmount",
		"type": "uint256"
	}],
	"stateMutability": "nonpayable",
	"type": "function"
}];

// Withdraw Deposit 1 DAI to public pool.
const DEPOSIT_AMOUNT = 1e18;

var contract = new web3.eth.Contract(ABI, CONTRACT_ADDRESS);

contract.methods.withdrawvide(new BigNumber(DEPOSIT_AMOUNT).toString()).send({
    from: "CALLER_ADDRESS",
}, function(error, result){
    if(!error) {
      console.log('Response:', result);
    } else {
      console.log(error);
    }
});

HTTP Request Example

Send a Deposit Transaction

POST (BSC Mainnet) https://bsc-dataseed.binance.org/

Make a deposit transaction to Shield Protocol V1 on BSC network. More details on how to send a transaction via BSC RPC could be found here, https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction

Request Body

NameTypeDescription

jsonrpc

string

"2.0"

method

string

"eth_sendRawTransaction"

params

array

the signed transaction data coerced into string array

id

number

request sequence id, you could use timestamp as id

{
  "id":64,
  "jsonrpc": "2.0",
  "result": "0x146695866343024d1ad9854a72904d16abec8b1597e098619d2addbd44b14e4c"
}

Last updated