Невозможно развернуть контракт Solidity в сети Rinkeby (неверный asm.js: недопустимый член stdlib)

Я изучал Solidity, используя этот курс Стивена Грайдера, и до сих пор все шло хорошо, когда я пытаюсь развернуть мой код в тестовой сети Rinkeby.

Для справки, я использую Node версии 11.15.0 с npm версии 6.7.0 со следующими зависимостями:

"dependencies": {
    "ganache-cli": "^6.4.3",
    "mocha": "^6.1.4",
    "nan": "^2.14.0",
    "scrypt": "^6.0.3",
    "solc": "^0.4.25",
    "truffle": "^4.1.15",
    "truffle-hdwallet-provider": "0.0.4",
    "web3": "^1.0.0-beta.35" }

Я часами переключался между версиями Node.js, npm и всевозможными комбинациями зависимостей, от самых последних версий до версий, указанных в курсе. Хотя я получаю множество проблем, наиболее заметными из них являются две.

(node:32436) V8: C:\Desktop\solidity\inbox\node_modules\solc\soljson.js:3 Invalid asm.js: Invalid member of stdlib

а также

C:\Desktop\solidity\inbox\node_modules\solc\soljson.js:1
var Module;if (!Module)Module=(typeof Module!= = "undefined"?Module:null)||{};var moduleOverrides = {};for(var key in Module){if (Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window== = "object";var ENVIRONMENT_IS_WORKER=typeof importScripts== = "function";var ENVIRONMENT_IS_NODE=typeof process== = "object"&&typeof require== = "function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if (ENVIRONMENT_IS_NODE){if (!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if (!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);if (!ret&&filename!=nodePath["resolve"](filename)){filename=path.joi

Error: CONNECTION ERROR: Couldn't connect to node rinkeby.infura.io/v3/acb10732334e4450ba7dc55e618eb70a.
    at Object.InvalidConnection (C:\Desktop\solidity\inbox\node_modules\truffle-hdwallet-provider\node_modules\web3\lib\web3\errors.js:28:16)
    at HttpProvider.sendAsync (C:\Desktop\solidity\inbox\node_modules\truffle-hdwallet-provider\node_modules\web3\lib\web3\httpprovider.js:129:25)
    at Web3Subprovider.handleRequest (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\subproviders\web3.js:13:17)
    at next (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:95:18)
    at FilterSubprovider.handleRequest (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\subproviders\filters.js:87:7)
    at next (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:95:18)
    at HookedWalletSubprovider.handleRequest (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\subproviders\hooked-wallet.js:109:7)
    at next (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:95:18)
    at Web3ProviderEngine._handleAsync (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:82:3)
    at Web3ProviderEngine._fetchBlock (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:191:8)
    at Web3ProviderEngine._fetchLatestBlock (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:167:8)
    at Web3ProviderEngine._startPolling (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:144:8)
    at Web3ProviderEngine.start (C:\Desktop\solidity\inbox\node_modules\web3-provider-engine\index.js:38:8)
    at new HDWalletProvider (C:\Desktop\solidity\inbox\node_modules\truffle-hdwallet-provider\index.js:46:15)
    at Object.<anonymous> (C:\Desktop\solidity\inbox\deploy.js:6:18)
    at Module._compile (internal/modules/cjs/loader.js:816:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
    at Module.load (internal/modules/cjs/loader.js:685:32)
    at Function.Module._load (internal/modules/cjs/loader.js:620:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:877:12)
    at internal/main/run_main_module.js:21:11

Мой вопрос будет заключаться в том, есть ли какие-либо исправления для любой из этих проблем, основанные на моем коде, или есть более простой способ развертывания в блокчейне? Заранее спасибо.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
0
760
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Error: CONNECTION ERROR: Couldn't connect to node rinkeby.infura.io/v3/acb10732334e4450ba7dc55e618eb70a.

Вы, вероятно, имели в виду https://rinkeby.infura.io/... (Вы пропустили https://.)

Это сработало, спасибо, я не могу поверить, что не заметил этого. Я по-прежнему получаю сообщение об ошибке недопустимого asm.js, но, похоже, это не влияет на программу, поскольку моя программа возвращает действительный хэш.

Zach 21.05.2019 21:19

Удалось ли вам решить недопустимую ошибку asm.js? Что было исправлено?

user1506104 15.01.2021 21:57

Я следую тому же учебнику, что и OP. Если вы используете node v14.15.4 и npm v6.14.10, я хотел бы подтвердить, что следующий пакет.json решил проблему:

{
  "name": "inbox",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "ganache-cli": "^6.4.3",
    "mocha": "^6.1.4",
    "solc": "^0.4.25",
    "truffle-hdwallet-provider": "0.0.4",
    "web3": "^1.0.0-beta.35"
  }
}

Затем перестройте свои зависимости, удалив node_modules вашего проекта, затем запустите

npm install

Может возникнуть проблема с версией соответствующего файла библиотеки, выполните следующую команду.

npm install solc

Моя npm версия 7.20.3

В моем случае проблема заключалась в том, что в раскрывающемся списке сайтов https://infura.io я выбрал MAINNET вместо RINKEBY, который является тестовой сетью ethereum.

Другие вопросы по теме