11. Get Funding Fee Rate of an Option Transaction

Description

Get funding fee rate of an option transaction .

TBD: Narratives

Function Description

Item

Description

Contract Address

Underlying asset contract (referenced by Smart Contract Overview section)

Contract Name

UnderlyingAsset.sol

Function

function getFundingFeeRate(ContractType _contractType) public view returns (uint256 _fundingFeeRate)

Function Selector

0xc138aa5f

Invocation Type

Ethereum Call

Passing Parameters

1: CALL, 2: PUT

Return Value

Funding fee rate(multiplied by 1E8)

ABI Description

{
  "inputs": [
    {
      "internalType": "enum ISLDCommon.ContractType",
      "name": "_contractType",
      "type": "uint8"
    }
  ],
  "name": "getFundingFeeRate",
  "outputs": [
    {
      "internalType": "uint256",
      "name": "_fundingFeeRate",
      "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 underlying assets contract address";
const ABI = [{
  "inputs": [
    {
      "internalType": "enum ISLDCommon.ContractType",
      "name": "_contractType",
      "type": "uint8"
    }
  ],
  "name": "getFundingFeeRate",
  "outputs": [
    {
      "internalType": "uint256",
      "name": "_fundingFeeRate",
      "type": "uint256"
    }
  ],
  "stateMutability": "view",
  "type": "function"
}];

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

// CALL
contract.methods.getFundingFeeRate(1).call({
}, function(error, result){
    if(!error) {
      console.log('Response:', result);
    } else {
      console.log(error);
    }
});

// PUT
contract.methods.getFundingFeeRate(2).call({
}, function(error, result){
    if(!error) {
      console.log('Response:', result);
    } else {
      console.log(error);
    }
});

HTTP Request Example

Send a call request to get private pool info

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

Make a contract call to get deposited funds details in private pool 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": "0x00000000000000000000000000000000000000000042276639528ca5195640e500000000000000000000000000000000000000000040f62cc1eeed6f34b8e3e500000000000000000000000000000000000000000001313977639f35e49d5d00"
}

Request Body Example:

// CALL
{
    "jsonrpc": "2.0",
    "method": "eth_call",
    "params": [
        {
            "from": "0x0000000000000000000000000000000000000000",
            "to": "0x60e2be64528dbe4e5892254d3dad83809a3f6f3a",
            "data": "0xc138aa5f0000000000000000000000000000000000000000000000000000000000000001"
        },
        "latest"
    ],
    "id": 1234
}

// PUT
{
    "jsonrpc": "2.0",
    "method": "eth_call",
    "params": [
        {
            "from": "0x0000000000000000000000000000000000000000",
            "to": "0x60e2be64528dbe4e5892254d3dad83809a3f6f3a",
            "data": "0xc138aa5f0000000000000000000000000000000000000000000000000000000000000002"
        },
        "latest"
    ],
    "id": 1234
}

CURL Example:

# CALL
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": "0x60e2be64528dbe4e5892254d3dad83809a3f6f3a",
            "data": "0xc138aa5f0000000000000000000000000000000000000000000000000000000000000001"
        },
        "latest"
    ],
    "id": 1234
}'

# PUT
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": "0x60e2be64528dbe4e5892254d3dad83809a3f6f3a",
            "data": "0xc138aa5f0000000000000000000000000000000000000000000000000000000000000002"
        },
        "latest"
    ],
    "id": 1234
}'

Last updated