0

why it's only showing withdraw transaction, show deposit transactions, show both the transactions, check the condition : why it's showing the status: failed

  import axios from 'axios';

  const options = {
  method: 'POST',
  url: 'https://polygon-mainnet.g.alchemy.com/v2/{apikey}',
  headers: {accept: 'application/json', 'content-type': 'application/json'},
  data: {
    id: 1,
    jsonrpc: '2.0',
    method: 'alchemy_getAssetTransfers',
    params: [
      {
        fromBlock: '0x0',
        toBlock: 'latest',
        category: ["external", "internal", "erc20", "erc721", "erc1155"],
        contractAddresses: ['0xc2132d05d31c914a87c6611c10748aeb04b58e8f'],
        withMetadata: true,
        excludeZeroValue: false,
        maxCount: '0x0A',
        fromAddress: '0x1581efd9b6357fe459c7086ecb2ddb7e972a3c42',
      }
    ]
  }
};

axios
  .request(options)
  .then(async function (response) {
    const transfers = response.data.result.transfers;
    // console.log(transfers)
for (const transfer of transfers) {
  const blockNumber = transfer.blockNum;
  const blockInfo = await getBlockInfo(blockNumber);
  transfer.created_at = blockInfo.timestamp;
  transfer.address = transfer.transfer_type == 'OUT' ? 'To address: ' + transfer.to : 'From address: ' + transfer.from; 
  transfer.status = !transfer.successful ? 'FAILED' : "COMPLETED";
  transfer.network = 'polygon-mainnet';
  transfer.transaction_type = transfer.transfer_type == 'OUT' ? 'DEPOSIT' : "WITHDRAW";
  transfer.usd_value = transfer.value;
  delete transfer.value;
  delete transfer.erc721TokenId;
  delete transfer.erc1155Metadata;
  delete transfer.tokenId;
  delete transfer.rawContract;
  delete transfer.blockNum;
  delete transfer.uniqueId; 
  delete transfer.asset;
  delete transfer.category;
  delete transfer.metadata;

  transfer.crypto_symbol = 'USDT';
  
  // transfer.tx_hash = transfer.uniqueId;
  // delete transfer.uniqueId;
}
console.log(transfers);


})
  .catch(function (error) {
    console.error(error.response.data);
  });

async function getBlockInfo(blockNumber) {
  const options = {
    method: 'POST',
    url: 'https://polygon-mainnet.g.alchemy.com/v2/{apikey}',
    headers: {accept: 'application/json', 'content-type': 'application/json'},
    data: {
      id: 1,
      jsonrpc: '2.0',
      method: 'eth_getBlockByNumber',
      params: [blockNumber, true],
    }
  };
  const response = await axios.request(options);
  return response.data.result;
}

ON Output

{
hash: '0x8f65a33e13600a270fdbdbab56473118973987736e2c5450a7a8a671cf15a3df',
from: '0x1581efd9b6357fe459c7086ecb2ddb7e972a3c42',
to: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
created_at: '0x644a5af6',
address: 'From address: 0x1581efd9b6357fe459c7086ecb2ddb7e972a3c42',
status: 'FAILED',
network: 'polygon-mainnet',
transaction_type: 'WITHDRAW',
usd_value: 0,
crypto_symbol: 'USDT'
}

Endpoint Used Alchemy_getAssetTransfers. This is the code to retrieve user transaction history using alchemy api on polygon network. But while running the transaction status is showing failed and it's only showing Withdraw transactions.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Utkarsh Hadgekar
  • 19
  • 1
  • 1
  • 2

0 Answers0