错误:通过ropsten infura testnet发送交易时,EVM已恢复交易

如何解决错误:通过ropsten infura testnet发送交易时,EVM已恢复交易

我有一个智能合约,该合约通过remix IDE部署在ropsten测试网上:

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.21 <0.7.0;

contract PrinterMarketplace {
    uint256 public requestCount = 0;
    uint256 public offerCount = 0;
    uint256 public orderCount = 0;

    mapping(uint256 => Request) public requests;
    struct Request {
        uint256 id;
        address payable client;
        string fileHash;
    }
    mapping(uint256 => Offer) public offers;
    struct Offer {
        uint256 id;
        uint256 price;
        string fileHash;
        address payable client;
        address payable provider;
        bool purchased;
    }
    mapping(uint256 => Order) public orders;
    struct Order {
        uint256 id;
        uint256 price;
        address payable client;
        address payable provider;
        bool purchased;
        string fileHash;

    }

    function setRequest(string memory _fileHash) public {
        requestCount++;
        requests[requestCount] = Request(requestCount,msg.sender,_fileHash);
    }

    function setOffer(uint256 _offerPrice,string memory _fileHash,address payable _client,address payable _provider) public {
        offerCount++;
        offers[offerCount] = Offer(
            offerCount,_offerPrice,_fileHash,_client,_provider,false
        );
    }

    /*     function get() public view returns (string memory) {
        return fileHash;
    } */

    function purchaseOffer(
        uint256 _id,uint256 _orderPrice,address payable _provider,string memory _fileHash
    ) public payable {
        orderCount++;
        //fetch the offer
        // Order memory _order = Order(_id,_orderPrice,_owner,true);
        orders[orderCount] = Order(_id,true,_fileHash);
        //pay the seller by sendding them ether
        address(uint160(_provider)).transfer(msg.value);
    }
}

运行我的JavaScript代码时,出现以下错误:

Error in setOffer:  { Error: Transaction has been reverted by the EVM:
{
  "blockHash": "0x71561626c29b157c9e01b6cb143868055a570ce99a4fa0d4a1f4a827ec401ee4","blockNumber": 8562752,"contractAddress": null,"cumulativeGasUsed": 1602671,"from": "0x2692dea243c0341a48ba9017e84d5bc4ab1d2e0d","gasUsed": 23267,"logs": [],"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status": false,"to": "0x8285ed4dbfba6faa5bd9da628579239168dd2e06","transactionHash": "0x4fe04293fbce89472bb8508598fc1598794f1ab20788c234eac1d32fbd9cdcf4","transactionIndex": 4
}
    at Object.TransactionError (/home/emre/CARDAMOM/PrinterApp/node_modules/web3-core-helpers/src/errors.js:93:21)
    at Object.TransactionRevertedWithoutReasonError (/home/emre/CARDAMOM/PrinterApp/node_modules/web3-core-helpers/src/errors.js:105:21)
    at /home/emre/CARDAMOM/PrinterApp/node_modules/web3-core-method/src/index.js:474:48
    at process._tickCallback (internal/process/next_tick.js:68:7)
  receipt:
   { blockHash:
      '0x71561626c29b157c9e01b6cb143868055a570ce99a4fa0d4a1f4a827ec401ee4',blockNumber: 8562752,contractAddress: null,cumulativeGasUsed: 1602671,from: '0x2692dea243c0341a48ba9017e84d5bc4ab1d2e0d',gasUsed: 23267,logs: [],logsBloom:
      '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',status: false,to: '0x8285ed4dbfba6faa5bd9da628579239168dd2e06',transactionHash:
      '0x4fe04293fbce89472bb8508598fc1598794f1ab20788c234eac1d32fbd9cdcf4',transactionIndex: 4 } }

我在etherscan上看到了该事务,但是它被标记为失败。

这是我的js代码:

var Tx = require('ethereumjs-tx').Transaction;
var privateKey = new Buffer('xxxxxxxxxxxxxxxxxxxxxx','hex')

async function writeOfferToContract(_offerprice,_contract,_account) {
    var data = await _contract.methods.setOffer(_offerprice,_account).encodeABI();
    var nonce = await web3.eth.getTransactionCount(_account);
    nonce = '0x' + nonce.toString(16)

    var rawTx = {
        nonce: nonce,//web3.eth.getTransactionCount(_account) + 1,gasPrice: web3.utils.toHex('10000000000'),gasLimit: web3.utils.toHex('3000000'),from: '0x2692DEA243c0341A48ba9017e84d5BC4Ab1D2E0d',value: web3.utils.toHex(_offerprice),data: data,chainId: 3 //ropsten = 3
    }

    var tx = new Tx(rawTx,{ 'chain': 'ropsten' });
    tx.sign(privateKey);

    var serializedTx = tx.serialize();

    if (_offerprice != 'undefined' && _contract != 'undefined') {
        try {

            const receipt = await web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex'),function (err,hash) {
                if (!err)
                    console.log('ERROR:',hash); 
            });
            console.log(receipt)
            console.log('OFFER SUCCESSFULLY WRITTEN IN CONTRACT')
        } catch (error) {
            console.log('Error in setOffer: ',error)
        }
    }
    //console.log('offerPrice: ',_contract.methods.getOfferPrice()) test
}
module.exports = {
    writeOfferToContract
};

对我来说,一切看起来都不错,在这种情况下,我真的不知道该从哪里继续。 有人可以帮我找到问题。我可能不知道,该错误可能与contractAddress:null有关。

我已经附加了etherscan交易

enter image description here

解决方法

我已从以下地址删除:“ 0x2692DEA243c0341A48ba9017e84d5BC4Ab1D2E0d”和chainId:3。 然后将值设置为“ 0”。

现在可以正常工作了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-