3. Check Funds

Description

Check detailed funds information of an account, including total amount and available amount of deposited funds.

TBD: Narratives

User Interface

Function Description

Item

Description

Contract Address

Trading contract (referenced by Smart Contract Overview section)

Contract Name

SLDDAIContract.sol

Constant

mapping(address=>AccountInfo) public userAccount;

Struct

struct AccountInfo{ uint256 depositAmount; uint256 availableAmount; }

Function Selector

0xea5eda32

Invocation Type

Ethereum Call

Passing Parameters

User address

Return Value

The amount of deposited funds; The available amount of funds.

ABI Description

[{
	"inputs": [{
		"internalType": "address",
		"name": "",
		"type": "address"
	}],
	"name": "userAccount",
	"outputs": [{
		"internalType": "uint256",
		"name": "depositAmount",
		"type": "uint256"
	}, {
		"internalType": "uint256",
		"name": "availableAmount",
		"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");

const CONTRACT_ADDRESS = "Replace with trading contract address";
const ABI = [{
	"inputs": [{
		"internalType": "address",
		"name": "",
		"type": "address"
	}],
	"name": "userAccount",
	"outputs": [{
		"internalType": "uint256",
		"name": "depositAmount",
		"type": "uint256"
	}, {
		"internalType": "uint256",
		"name": "availableAmount",
		"type": "uint256"
	}],
	"stateMutability": "view",
	"type": "function"
}];

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

contract.methods.userAccount("Replace with User Address").call({
}, function(error, result){
    if(!error) {
      console.log('Response:', result);
    } else {
      console.log(error);
    }
});

HTTP Request Example

Send a Withdrawal Transaction

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

NameTypeDescription

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": "0x32c10ce5f9f47ab82141d73a136823d3e20408e0",
            "data": "0xea5eda32000000000000000000000000834c673130c085057531f227dcbd375d803d9a98"
        },
        "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": "0x32c10ce5f9f47ab82141d73a136823d3e20408e0",
            "data": "0xea5eda32000000000000000000000000834c673130c085057531f227dcbd375d803d9a98"
        },
        "latest"
    ],
    "id": 1234
}'

Last updated