首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在“硬帽子”节点中找不到函数选择器

在“硬帽子”节点中找不到函数选择器
EN

Ethereum用户
提问于 2023-01-21 06:42:43
回答 1查看 78关注 0票数 0

我试图使用getTokenDepositAmount(uint inputToken)从前端(Reactjs)调用一个智能契约,但我在浏览器控制台中得到了这个错误:

代码语言:javascript
复制
Error: call revert exception [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (method="getTokenDepositAmount(uint256)", data="0x", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.7.0)
    at Logger.makeError (index.ts:269:1)
    at Logger.throwError (index.ts:281:1)
    at Interface.decodeFunctionResult (interface.ts:427:1)
    at Contract.<anonymous> (index.ts:400:1)
    at Generator.next (<anonymous>)
    at fulfilled (index.ts:1:1)

在“硬帽子”节点控制台中,我得到了以下信息:

代码语言:javascript
复制
eth_call
  Contract call:       UniswapClone#<unrecognized-selector>
  From:                0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
  To:                  0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0

  Error: Transaction reverted: function selector was not recognized and there's no fallback function
      at UniswapClone.<unrecognized-selector> (contracts/UniswapClone.sol:12)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at HardhatNode.runCall (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/provider/node.ts:639:20)
      at EthModule._callAction (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/provider/modules/eth.ts:354:9)
      at HardhatNetworkProvider._sendWithLogging (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/provider/provider.ts:139:22)
      at HardhatNetworkProvider.request (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/provider/provider.ts:116:18)
      at JsonRpcHandler._handleRequest (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/jsonrpc/handler.ts:188:20)
      at JsonRpcHandler._handleSingleRequest (/home/rishabh/Documents/projects/uniswap-clone/node_modules/hardhat/src/internal/hardhat-network/jsonrpc/handler.ts:167:17)

Smart合同功能:

代码语言:javascript
复制
function getTokenDepositAmount(uint inputToken) public view returns (uint) {
        uint256 ethReserve = address(this).balance; 
        return ((inputToken * tokenReserve) / ethReserve) + 1;
    }

我在这里没有回复语句,但是我得到了这个错误。有人能告诉我我在这里做错了什么吗?

注意:我已经在本地主机上:8545,并将其中一个帐户从“草帽”节点导入到元数据库中。

编辑

下面是我调用函数的代码:

代码语言:javascript
复制
async function fetchDepositTokenAmount() {
    console.log(contract);
    const depositAmount = await contract.getTokenDepositAmount(
      ethers.utils.parseEther("1")
    );
    console.log("deposit amount: ", depositAmount);
  }
EN

回答 1

Ethereum用户

发布于 2023-01-22 07:48:12

你试过预先兑换金额了吗?

代码语言:javascript
复制
async function fetchDepositTokenAmount() {
    console.log(contract);
    let amount =  ethers.utils.parseEther("1");
    const depositAmount = await contract.getTokenDepositAmount(amount);
    console.log("deposit amount: ", depositAmount);
  }

现在该起作用了。希望能帮上忙

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/143408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档