Query Withdrawable Margin Amount
Description
You could query the withdrawable amount of base tokens and SLD tokens by calling this interface.
User Interface
TODO(Snapshots)
Function Description
Contract Address
MVault contract (referenced by General Info section)
Contract Name
MVault.sol
Function
function queryMarginBalance() public view returns (
uint256 baseMarginAmount,
uint256 sldMarginAmount
)
Function Selector
0xea17f924
Invocation Type
Ethereum Call
Passing Parameters
None
Return Value
uint256 baseMarginAmount: withdrawable token margin amount uint256 sldMarginAmount: withdrawable SLD token margin amount
ABI Description
{
"inputs": [],
"name": "queryMarginBalance",
"outputs": [
{
"internalType": "uint256",
"name": "baseMarginAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "sldMarginAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
Examples
Calling Examples
// This example is written by using Web3.js
// More details on Web3.js could be found here - https://web3js.readthedocs.io/
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");
// Need MVault contract address
const CONTRACT_ADDRESS = "Replace with MVault contract address";
const ABI = [ {
"inputs": [],
"name": "queryMarginBalance",
"outputs": [
{
"internalType": "uint256",
"name": "baseMarginAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "sldMarginAmount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}];
var contract = new web3.eth.Contract(ABI, CONTRACT_ADDRESS);
contract.methods.queryMarginBalance().call({
}, function(error, result){
if(!error) {
console.log('Response:', result);
} else {
console.log(error);
}
});
HTTP Request Example
Query Margins
POST
(BSC Mainnet) https://bsc-dataseed.binance.org/
Make a contract call to get deposited funds details of Shield Protocol V1. More details on how to make a contract call request via BSC RPC could be found here, https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction
Request Body
jsonrpc
string
"2.0"
method
string
"eth_call"
params
array
the signed transaction data coerced into string array, for instance,
id
number
request sequence id, you could use timestamp as id
{
"jsonrpc": "2.0",
"id": 1234,
"result": "0x00000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000006c6b935b8bbd400000"
}
Request Body Example:
{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [
{
"from": "0x0000000000000000000000000000000000000000",
"to": "0x85B18E8b86F998835099e6a021e2b1e8d5BcA9C7",
"data": "0xea17f924"
},
"latest"
],
"id": 1234
}
CURL Example:
curl --location --request POST 'https://data-seed-prebsc-1-s1.binance.org:8545/' \
--header 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [
{
"from": "0x0000000000000000000000000000000000000000",
"to": "0x85B18E8b86F998835099e6a021e2b1e8d5BcA9C7",
"data": "0xea17f924"
},
"latest"
],
"id": 1234
}'
Last updated