allowance

Check if token allowance has been provided for pan cake swap router

/bsc/pcs/allowance

POST https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/pcs/allowance

Code sample is given below

Query Parameters

Name
Type
Description

key

string

API Key

Request Body

Name
Type
Description

params

object

{"addr" : "wallet addr", "frm_tkn_addr":"token addr", "gas" : "1", "amt_float" : 1}

{
  "isError": false,
  "isAllowed": false,
  "text": "Sign rawTx and broadcast",
  "rawTx": {
    "from": "0x7acaa0e45241e85e0bf644ccfb1faf5b06458318",
    "value": "0x0",
    "to": "0xf859bf77cbe8699013d6dbc7c2b926aaf307f830",
    "data": "0x095ea7b300000000000000000000000005ff2b0db69458a0750badebc4f9e13add608c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
    "nonce": "0x0",
    "gasLimit": "0x1250d",
    "gasPrice": "0x3b9aca00"
  },
  "rawTxExactAmt": {
    "from": "0x7acaa0e45241e85e0bf644ccfb1faf5b06458318",
    "value": "0x0",
    "to": "0xf859bf77cbe8699013d6dbc7c2b926aaf307f830",
    "data": "0x095ea7b300000000000000000000000005ff2b0db69458a0750badebc4f9e13add608c7f0000000000000000000000000000000000000000000000000de0b6b3a7640000",
    "nonce": "0x0",
    "gasLimit": "0x1250d",
    "gasPrice": "0x3b9aca00"
  },
  "allowance_addr": "0x05fF2B0DB69458A0750badebc4f9e13aDd608C7F",
  "addr": "0x7acAa0e45241E85E0bf644ccfB1faF5B06458318",
  "operation": "ENABLE",
  "frm_tkn_symbol": "BRY"
}

Sample code to check if an address has already provided allowance for CAKE token to Pancake swap

async function allowance(){
    const fetch         = require('node-fetch');
    const _             = require('lodash');
    const ALLOWANCE_URL = "https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/pcs/allowance";
    const API_KEY       = "AIzaSyCngkz41JSdBMlr4iKqAMLiTMHD9TfQvuc";
  
      async function localStylePost(URL, body){
          let txn_response = await fetch(URL, { method : 'post', body : JSON.stringify({ params : body}), headers: { 'Content-Type': 'application/json'}});
          return txn_response.json();    
      }

    const CAKE_TOKEN = "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82";
    const MY_WALLET  = "0x7acAa0e45241E85E0bf644ccfB1faF5B06458318";
    const AMOUNT     = 12345;

    const allowance_req_body  = {
                                    addr : MY_WALLET,
                                    amt_float : AMOUNT,
                                    frm_tkn_addr : CAKE_TOKEN,
                                    gas : "10"
                                };
    
    const allowance_resp      = await localStylePost(ALLOWANCE_URL + "?key=" + API_KEY, allowance_req_body);

    if(allowance_resp.isError){
        console.log("Error " + allowance_resp.errorMsg);
    }else if(allowance_resp.isAllowed){
        console.log(allowance_resp.frm_tkn_symbol + " is already approved");
    }else{
        console.log("RawTxn for infinite approval " + JSON.stringify(allowance_resp.rawTx));
        console.log("\nRawTxn for exact amoount approval " + JSON.stringify(allowance_resp.rawTxExactAmt));
    }

}

Last updated

Was this helpful?