如何完成 JustSwap 智能合约的交换方法

问题描述

我正在尝试完成 JustSwap 合约 S-USDT-TRX 代币 (TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE) 但是我在控制台中收到了响应:
REVERT 操作码已执行
我的代码

  const TronWeb = require("tronweb");
  const ethers = require("ethers")
 
  const MAINNET_RPC = "https://api.trongrid.io";
 
  const PLACEHOLDER_PRIVATE_KEY = "YOUR_PRIVATE_KEY";
  
  const HttpProvider = TronWeb.providers.HttpProvider;
  const fullNode = new HttpProvider(MAINNET_RPC);
  const solidityNode = new HttpProvider(MAINNET_RPC);
  const eventServer = new HttpProvider(MAINNET_RPC);

  const tronWeb = new TronWeb(fullNode,solidityNode,eventServer,PLACEHOLDER_PRIVATE_KEY);

  const startJustSwap = async () => {

    try {

      const contractTokenExchangeUSDT = 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE'; //S-USDT-TRX Token
      const parameters = [{type: `uint256`,value: 10000000},{type: `uint256`,value: 1614346581000}];
      const tx = await tronWeb.transactionBuilder.triggerConstantContract(contractTokenExchangeUSDT,`trxToTokenSwapInput(uint256,uint256)`,{},parameters)

      console.log(tx);

    } catch (e) {
      console.log(e);
    }
  };

  startJustSwap();

当我检测到价格时,我得到了很好的结果。例如:


      const tx = await tronWebLocal.transactionBuilder.triggerConstantContract(contractToken,`getTokenToTrxOutputPrice(uint256)`,[{
          type: `uint256`,value: 10000000,}])

但我不能交换。我正在使用这样的连接并收到错误“REVERT 操作码执行”:

const tx = await tronWebLocal.transactionBuilder.triggerConstantContract(contractToken,[{ type: `uint256`,value: },{ type: `uint256`,value: 10}]);

你能帮我写出正确的代码吗?

非常感谢!

解决方法

triggerConstantContract 是触发智能合约的常量,交易出链。你只能通过这个来阅读合同。(在你的情况下说价格)。

试试这个:https://developers.tron.network/reference#triggersmartcontract

格式:tronWeb.transactionBuilder.triggerSmartContract(contractAddress,functions,options,parameter,issuerAddress);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...