当编译安全帽项目时,当它显示Nothing to Compile时。
{
"name": "HardhAtToken",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@nomiclabs/hardhat-ethers": "^2.0.6",
"@nomiclabs/hardhat-waffle": "^2.0.3",
"chai": "^4.3.6",
"ethereum-waffle": "^3.4.4",
"ethers": "^5.6.6",
"hardhat": "^2.9.6-dev.1"
},
"dependencies": {
"glob": "^7.2.0"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 Node.js 构建一个去中心化应用程序。我需要 node.js 应用程序从前端接收消息,使用 web3.js 签署消息并将签名发送回前端。
我正在考虑将预定义的私钥作为环境变量传递给 node.js 应用程序。然后使用私钥实例化Web3并调用web3.personal.sign对消息进行签名。我需要在服务器端进行签名过程,所以我不认为使用像 Metamask 这样的客户端钱包是适用的。
我是区块链和 Web3 开发的新手,所以我不确定我的要求是否可行。
我试图构建一个可以与区块链交互的网络应用程序,我使用 Brownie 作为 Solidity 框架和 ReactJS。我安装了useDapp来连接我的钱包。但在第一个简单的用法中我得到了这个错误:
编译有问题:
./node_modules/@usedapp/core/dist/esm/src/abi/multicall/constants.js 中的错误 3:29-44
在“ethers”中找不到导出“utils”(导入为“utils”)(可能导出:AbiCoder、AbstractProvider、AbstractSigner、AlchemyProvider、AnkrProvider、BaseContract、BaseWallet、Block、BrowserProvider、CloudflareProvider、ConstructorFragment、Contract、ContractEventPayload、ContractFactory、 ContractTransactionReceipt、ContractTransactionResponse、EnsResolver、ErrorFragment、EtherSymbol、EtherscanProvider、EventFragment、EventLog、FallbackProvider、FeeData、FetchCancelSignal、FetchRequest、FetchResponse、FixedNumber、Fragment、FunctionFragment、HDNodeVoidWallet、HDNodeWallet、索引、InfuraProvider、接口、IpcSocketProvider、JsonRpcApiProvider、JsonRpcProvider、JsonR个人电脑签名者, LangEn、日志、LogDescription、MaxInt256、MaxUint256、MessagePrefix、MinInt256、助记符、N、网络、NonceManager、ParamType、PocketProvider、QuickNodeProvider、结果、签名、SigningKey、SocketProvider、事务、TransactionDescription、TransactionReceipt、TransactionResponse、类型、TypedDataEncoder、Utf8ErrorFuncs、 VoidSigner、钱包、WebSocketProvider、WeiPerEther、Wordlist、WordlistOwl、WordlistOwlA、ZeroAddress、ZeroHash、accessListify、断言、assertArgument、assertArgumentCount、assertNormalize、assertPrivate、checkResultErrors、computeAddress、computeHmac、concat、dataLength、dataSlice、decodeBase58、decodeBase64、decodeBytes32String、decodeRlp、解密CrowdsaleJson、decryptKeystoreJson、decryptKeystoreJsonSync、defaultPath、defineProperties、dnsEncode、encodeBase58、encodeBase64、encodeBytes32String、encodeRlp、encryptKeystoreJson、encryptKeystoreJsonSync、ensNormalize、以太、formatEther、formatUnits、fromTwos、getAccountPath、getAddress、getBigInt、getBytes、getBytesCopy、getCreate2Address、获取创建地址、获取默认提供者、 getIcapAddress、getNumber、getUint、hashMessage、hexlify、id、isAddress、isAddressable、isBytesLike、isCallException、isCrowdsaleJson、isError、isHexString、isKeystoreJson、isValidName、keccak256、锁、makeError、掩码、namehash、parseEther、parseUnits、pbkdf2、randomBytes、recoverAddress、解决地址,ripemd160,scrypt,scryptSync,sha256,sha512,solidityPacked,solidityPackedKeccak256,solidityPackedSha256,stripZerosLeft,toBeArray,toBeHex,toBigInt,toNumber,toQuantity,toTwos,toUtf8Bytes,toUtf8CodePoints,toUtf8String,verifyMessage,版本,zeroPadBytes,零填充值)
./node_modules/@usedapp/core/dist/esm/src/abi/multicall2/constants.js 中的错误 3:29-44
在“ethers”中找不到导出“utils”(导入为“utils”)(可能导出:AbiCoder、AbstractProvider、AbstractSigner、AlchemyProvider、AnkrProvider、BaseContract、BaseWallet、Block、BrowserProvider、CloudflareProvider、ConstructorFragment、Contract、ContractEventPayload、ContractFactory、 ContractTransactionReceipt、ContractTransactionResponse、EnsResolver、ErrorFragment、EtherSymbol、EtherscanProvider、EventFragment、EventLog、FallbackProvider、FeeData、FetchCancelSignal、FetchRequest、FetchResponse、FixedNumber、Fragment、FunctionFragment、HDNodeVoidWallet、HDNodeWallet、索引、InfuraProvider、接口、IpcSocketProvider、JsonRpcApiProvider、JsonRpcProvider、JsonR个人电脑签名者, LangEn、日志、LogDescription、MaxInt256、MaxUint256、MessagePrefix、MinInt256、助记符、N、网络、NonceManager、ParamType、PocketProvider、QuickNodeProvider、结果、签名、SigningKey、SocketProvider、事务、TransactionDescription、TransactionReceipt、TransactionResponse、类型、TypedDataEncoder、Utf8ErrorFuncs、 VoidSigner、钱包、WebSocketProvider、WeiPerEther、Wordlist、WordlistOwl、WordlistOwlA、ZeroAddress、ZeroHash、accessListify、断言、assertArgument、assertArgumentCount、assertNormalize、assertPrivate、checkResultErrors、computeAddress、computeHmac、concat、dataLength、dataSlice、decodeBase58、decodeBase64、decodeBytes32String、decodeRlp、解密CrowdsaleJson、decryptKeystoreJson、decryptKeystoreJsonSync、defaultPath、defineProperties、dnsEncode、encodeBase58、encodeBase64、encodeBytes32String、encodeRlp、encryptKeystoreJson、encryptKeystoreJsonSync、ensNormalize、以太、formatEther、formatUnits、fromTwos、getAccountPath、getAddress、getBigInt、getBytes、getBytesCopy、getCreate2Address、获取创建地址、获取默认提供者、 getIcapAddress、getNumber、getUint、hashMessage、hexlify、id、isAddress、isAddressable、isBytesLike、isCallException、isCrowdsaleJson、isError、isHexString、isKeystoreJson、isValidName、keccak256、锁、makeError、掩码、namehash、parseEther、parseUnits、pbkdf2、randomBytes、recoverAddress、解决地址,ripemd160,scrypt,scryptSync,sha256,sha512,solidityPacked,solidityPackedKeccak256,solidityPackedSha256,stripZerosLeft,toBeArray,toBeHex,toBigInt,toNumber,toQuantity,toTwos,toUtf8Bytes,toUtf8CodePoints,toUtf8String,verifyMessage,版本,zeroPadBytes,零填充值)
./node_modules/@usedapp/core/dist/esm/src/constants/abi/index.js 中的错误 7:18-33
在“ethers”中找不到导出“utils”(导入为“utils”)(可能导出:AbiCoder、AbstractProvider、AbstractSigner、AlchemyProvider、AnkrProvider、BaseContract、BaseWallet、Block、BrowserProvider、CloudflareProvider、ConstructorFragment、Contract、ContractEventPayload、ContractFactory、 ContractTransactionReceipt、ContractTransactionResponse、EnsResolver、ErrorFragment、EtherSymbol、EtherscanProvider、EventFragment、EventLog、FallbackProvider、FeeData、FetchCancelSignal、FetchRequest、FetchResponse、FixedNumber、Fragment、FunctionFragment、HDNodeVoidWallet、HDNodeWallet、索引、InfuraProvider、接口、IpcSocketProvider、JsonRpcApiProvider、JsonRpcProvider、JsonR个人电脑签名者, LangEn、日志、LogDescription、MaxInt256、MaxUint256、MessagePrefix、MinInt256、助记符、N、网络、NonceManager、ParamType、PocketProvider、QuickNodeProvider、结果、签名、SigningKey、SocketProvider、事务、TransactionDescription、TransactionReceipt、TransactionResponse、类型、TypedDataEncoder、Utf8ErrorFuncs、 VoidSigner、钱包、WebSocketProvider、WeiPerEther、Wordlist、WordlistOwl、WordlistOwlA、ZeroAddress、ZeroHash、accessListify、断言、assertArgument、assertArgumentCount、assertNormalize、assertPrivate、checkResultErrors、computeAddress、computeHmac、concat、dataLength、dataSlice、decodeBase58、decodeBase64、decodeBytes32String、decodeRlp、解密CrowdsaleJson、decryptKeystoreJson、decryptKeystoreJsonSync、defaultPath、defineProperties、dnsEncode、encodeBase58、encodeBase64、encodeBytes32String、encodeRlp、encryptKeystoreJson、encryptKeystoreJsonSync、ensNormalize、以太、formatEther、formatUnits、fromTwos、getAccountPath、getAddress、getBigInt、getBytes、getBytesCopy、getCreate2Address、获取创建地址、获取默认提供者、 getIcapAddress、getNumber、getUint、hashMessage、hexlify、id、isAddress、isAddressable、isBytesLike、isCallException、isCrowdsaleJson、isError、isHexString、isKeystoreJson、isValidName、keccak256、锁、makeError、掩码、namehash、parseEther、parseUnits、pbkdf2、randomBytes、recoverAddress、解决地址,ripemd160,scrypt,scryptSync,sha256,sha512,solidityPacked,solidityPackedKeccak256,solidityPackedSha256,stripZerosLeft,toBeArray,toBeHex,toBigInt,toNumber,toQuantity,toTwos,toUtf8Bytes,toUtf8CodePoints,toUtf8String,verifyMessage,版本,zeroPadBytes,零填充值)
./node_modules/@usedapp/core/dist/esm/src/helpers/address.js 中的错误 9:29-45
在“ethers”中找不到导出“utils”(导入为“utils”)(可能导出:AbiCoder、AbstractProvider、AbstractSigner、AlchemyProvider、AnkrProvider、BaseContract、BaseWallet、Block、BrowserProvider、CloudflareProvider、ConstructorFragment、Contract、ContractEventPayload、ContractFactory、 ContractTransactionReceipt、ContractTransactionResponse、EnsResolver、ErrorFragment、EtherSymbol、EtherscanProvider、EventFragment、EventLog、FallbackProvider、FeeData、FetchCancelSignal、FetchRequest、FetchResponse、FixedNumber、Fragment、FunctionFragment、HDNodeVoidWallet、HDNodeWallet、索引、InfuraProvider、接口、IpcSocketProvider、JsonRpcApiProvider、JsonRpcProvider、JsonR个人电脑签名者, LangEn、日志、LogDescription、MaxInt256、MaxUint256、MessagePrefix、MinInt256、助记符、N、网络、NonceManager、ParamType、PocketProvider、QuickNodeProvider、结果、签名、SigningKey、SocketProvider、事务、TransactionDescription、TransactionReceipt、TransactionResponse、类型、TypedDataEncoder、Utf8ErrorFuncs、 VoidSigner、钱包、WebSocketProvider、WeiPerEther、Wordlist、WordlistOwl、WordlistOwlA、ZeroAddress、ZeroHash、accessListify、断言、assertArgument、assertArgumentCount、assertNormalize、assertPrivate、checkResultErrors、computeAddress、computeHmac、concat、dataLength、dataSlice、decodeBase58、decodeBase64、decodeBytes32String、decodeRlp、解密CrowdsaleJson、decryptKeystoreJson、decryptKeystoreJsonSync、defaultPath、defineProperties、dnsEncode、encodeBase58、encodeBase64、encodeBytes32String、encodeRlp、encryptKeystoreJson、encryptKeystoreJsonSync、ensNormalize、以太、formatEther、formatUnits、fromTwos、getAccountPath、getAddress、getBigInt、getBytes、getBytesCopy、getCreate2Address、获取创建地址、获取默认提供者、 getIcapAddress、getNumber、getUint、hashMessage、hexlify、id、isAddress、isAddressable、isBytesLike、isCallException、isCrowdsaleJson、isError、isHexString、isKeystoreJson、isValidName、keccak256、锁、makeError、掩码、namehash、parseEther、parseUnits、pbkdf2、randomBytes、recoverAddress、解决地址,ripemd160,scrypt,scryptSync,sha256,sha512,solidityPacked,solidityPackedKeccak256,solidityPackedSha256,stripZerosLeft,toBeArray,toBeHex,toBigInt,toNumber,toQuantity,toTwos,toUtf8Bytes,toUtf8CodePoints,toUtf8String,verifyMessage,版本,zeroPadBytes,零填充值)
这是我的 App.tsx 文件:
import React from 'react';
import logo from './logo.svg';
import './App.css';
import { DAppProvider, ChainId } from "@usedapp/core";
function App() {
return (
<DAppProvider config={{ supportedChains: [ChainId.Goerli] }}>
<div>
Hello!
</div>
</DAppProvider>
);
}
export default App; …Run Code Online (Sandbox Code Playgroud) “迁移”在部署时遇到无效的操作码。尝试:
我的migration.sol代码
// SPDX-License-Identifier: UNLICENSED
//the version of solidity that is compatible
pragma solidity ^0.8.0;
contract Migrations {
address public owner = msg.sender;
uint public last_completed_migration;
modifier restricted() {
require(
msg.sender == owner,
"This function is restricted to the contract's owner"
);
_;
}
function setCompleted(uint completed) public restricted {
last_completed_migration = completed;
}
}
Run Code Online (Sandbox Code Playgroud)
我的松露 config.js 文件
// SPDX-License-Identifier: UNLICENSED
//the version of solidity that is compatible
pragma solidity ^0.8.0;
contract Migrations {
address public owner …Run Code Online (Sandbox Code Playgroud) 我正在使用Truffle和TestRPC开发以太坊合约.但是我无法获得要更新的状态变量.我认为可能只是因为我太早访问它,但其他示例测试似乎工作得很好并且非常相似.
我已经将合同减少到最简单的可能性:
pragma solidity ^0.4.11;
contract Adder {
uint public total;
function add(uint amount) {
total += amount;
}
function getTotal() returns(uint){
return total;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的考验:
var Adder = artifacts.require("./Adder.sol");
contract('Adder', accounts => {
it("should start with 0", () =>
Adder.deployed()
.then(instance => instance.getTotal.call())
.then(total => assert.equal(total.toNumber(), 0))
);
it("should increase the total as amounts are added", () =>
Adder.deployed()
.then(instance => instance.add.call(10)
.then(() => instance.getTotal.call())
.then(total => assert.equal(total.toNumber(), 10))
)
);
});
Run Code Online (Sandbox Code Playgroud)
第一次测试通过了.但第二次测试失败,因为getTotal仍然返回0.
我试图解码类似于以下格式的十六进制字符串:
0x00000000000000000000000000000000000000000000000bf97e2a21966df7fe
Run Code Online (Sandbox Code Playgroud)
我能够使用在线计算器对其进行解码.应该是正确的解码数字220892037897060743166.
但是,当我尝试使用python使用以下代码对其进行解码时,它会返回错误:
"0x00000000000000000000000000000000000000000000000bf97e2a21966df7fe".decode("hex")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-32-1cf86ff46cbc> in <module>()
9 key=keyarr[0]
10
---> 11 "0x00000000000000000000000000000000000000000000000bf97e2a21966df7fe".decode("hex")
/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/hex_codec.py in hex_decode(input, errors)
40 """
41 assert errors == 'strict'
---> 42 output = binascii.a2b_hex(input)
43 return (output, len(input))
44
TypeError: Non-hexadecimal digit found
Run Code Online (Sandbox Code Playgroud)
然后我删除了十六进制数字前面的0x并再次尝试:
"00000000000000000000000000000000000000000000000bf97e2a21966df7fe".decode("hex")
Run Code Online (Sandbox Code Playgroud)
然后输出成为:
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\xf9~*!\x96m\xf7\xfe'
Run Code Online (Sandbox Code Playgroud)
我实际上不明白输出...
如果您想知道这些数字来自何处,它们来自以太坊区块链(ERC20)令牌.
我最近刚刚完成了与Remix IDE的一项相当复杂的合同的工作。我现在将web3附加到前端,但是当我调用应该失败的函数时,它们仍会在Metamask上通过。
在Remix中测试我的合同时,我经常会单击并调用某些包含要求语句的函数,这些语句我知道仅能确认正确记录了合同状态。Remix没有将事务发送到metamask,而是输出了一条错误消息,我也想自己处理事务错误。
我如何检查我的合同通话以查看是否会失败。我必须使用预测气体的方法并以这种方式进行检测吗?如果可以,怎么办?我当前的代码如下:
contract.callFunction(function(error, result) {
if (!error) alert(result);
else alert(error);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码捕获了拒绝元掩码确认为错误,但是应该失败的事务将通过设置了极高的气体限制的元掩码进入。函数callFunction在合同中,不带参数,但对区块链有影响,因此需要交易。该函数的第一行是“ require(state == 1);”。并且我目前将合同设置为状态2,因此我希望交易失败,我只想检测到交易失败。
嘿,我正在开发一个简单的关于稳定性的智能合约,但遇到了麻烦。每次尝试运行setWord函数时,我都会收到一条错误消息:“交易到HelloWorldContract.setWord错误:编码参数错误:SyntaxError:JSON中位置2处的标记h异常”这可能是什么问题?
pragma solidity ^0.4.0;
contract HelloWorldContract{
string word = "Hello World";
address issuer;
function HelloWorldContract(){
issuer = msg.sender;
}
function getWord() constant returns(string) {
return word;
}
function setWord(string newWord) returns(string) {
if(issuer != msg.sender){
return "this is not the creator!";
}
else{
word = newWord;
return "this is the creator!";
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个映射表,其中将多个哈希存储到该表中。我想做的是让用户使用setinstructors()函数添加另一个哈希,然后尝试查看映射表中是否已经存在相同的哈希。如果表中已经存在相同的哈希,则应返回true,否则返回false。这是我的代码:
pragma solidity ^0.4.18;
contract Hash{
bytes32 comphash;
struct hashstruct{
bytes32 fhash;
}
mapping (uint => hashstruct) hashstructs;
uint[] public hashAccts;
function setinstructor(uint _uint,string _fhash) public {
var a = hashstructs[_uint];
a.fhash = sha256(_fhash);
hashAccts.push(_uint) -1;
}
function getInstructor(uint ins) view public returns (bytes32) {
return (hashstructs[ins].fhash);
}
function count() view public returns (uint) {
return hashAccts.length;
}
function setinstructors(string _comphash) public {
comphash = sha256(_comphash);
}
function getInstructors() public constant returns (bytes32) {
return (comphash);
}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在进行一个项目,该项目将以太坊等公共区块链与Hyperledger Fabric等财团区块链进行比较。
我将在两个平台上设计和实施智能合约,以衡量其交易速度和成本。
将对其他内容进行比较,例如隐私,潜在的可伸缩性,治理和共识协议。
希望在Solidity中编写Eth智能合约,在Golang中编写Fabric。我对此的经验极少,因此我只想实现基本的合同合同,在两个平台上执行多个合同并进行比较。
有没有办法对模拟真实事物的智能合约进行虚拟运行?
ethereum ×10
solidity ×6
blockchain ×4
javascript ×2
web3js ×2
cryptography ×1
ethers.js ×1
hardhat ×1
hex ×1
json ×1
node.js ×1
npm ×1
python ×1
reactjs ×1
truffle ×1
typescript ×1
usedapp ×1