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

时间:2021-02-26 15:38:09

标签: javascript node.js smartcontracts tron tronweb

我正在尝试完成 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, `trxToTokenSwapInput(uint256,uint256)`, {}, [{ type: `uint256`, value: },{ type: `uint256`, value: 10}]);

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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

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