标签: blockchain

智能合约可以访问其他区块链的数据吗?

假设我创建了一个 erc20 令牌。现在我想制定一个智能合约,如果用户在另一个区块链(如比特币)上有 X 个硬币,则向用户发送 1 个硬币。那行得通吗?我可以使用卡尔达诺/以太坊/任何其他智能合约从其他区块链读取数据吗?

blockchain ethereum smartcontracts cryptocurrency cardano

2
推荐指数
1
解决办法
666
查看次数

我们可以通过代币名称获取智能合约地址吗

我想像 Etherscan 那样通过代币名称获取智能合约信息,但需要使用我的专用网络。

根据 web3 文档,如果我需要获取与智能合约相关的任何信息,我首先需要有一个智能合约地址和 ABI。但是在编写智能合约时,我没有将其存储在数据库中的命令。

我的主要目标是我需要创建一个浏览器的精确副本,如 Etherscan 和 bscscan.com

blockchain ethereum go-ethereum erc20 ethereumclassic

2
推荐指数
1
解决办法
1767
查看次数

将 Secret 存储在 EVM 区块链中

我正在考虑将秘密存储在区块链中。虽然有一些特定的区块链在处理它,但我想看看以太坊的可行性。

这个想法是将秘密存储为加密格式的状态变量,并且该变量值的可访问性仅限于某人。我的问题是,由于区块链是开放的,每个人都可以,如果有人真的很熟练,那么他/她可以读取每个变量的值。您认为,或者需要进一步做什么,才能使状态变量的值足够安全?

security privacy blockchain ethereum solidity

2
推荐指数
1
解决办法
780
查看次数

为什么我收到以下 Chainlink 错误:无法估计 Gas

我正在尝试使用安全帽遵循此处找到的 Chainlink VRF 教程: https: //docs.chain.link/docs/intermediates-tutorial/,并在调用 rollDice 函数时遇到此问题:

Error: cannot estimate gas; transaction may fail or may require manual gas limit (error={"reason":"cannot estimate gas; transaction may fail or may require manual gas limit","code":"UNPREDICTABLE_GAS_LIMIT","method":"estimateGas","transaction":{"from":"0x014Da1D627E6ceB555975F09D26B048644382Ac6","maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x9502f900"},"maxFeePerGas":{"type":"BigNumber","hex":"0x9502f90e"},"to":"0x5887946875A01D1BB79d6Fb357BceeA5A0096D2e","data":"0xdd02d9e5000000000000000000000000014da1d627e6ceb555975f09d26b048644382ac6","type":2,"accessList":null}}, tx={"data":"0xdd02d9e5000000000000000000000000014da1d627e6ceb555975f09d26b048644382ac6","to":{},"from":"0x014Da1D627E6ceB555975F09D26B048644382Ac6","type":2,"maxFeePerGas":{"type":"BigNumber","hex":"0x9502f90e"},"maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x9502f900"},"nonce":{},"gasLimit":{},"chainId":{}}, code=UNPREDICTABLE_GAS_LIMIT, version=abstract-signer/5.5.0)
    at Logger.makeError (/Users/matt/Desktop/hardhat/randomDay/node_modules/@ethersproject/logger/src.ts/index.ts:225:28)
    at Logger.throwError (/Users/matt/Desktop/hardhat/randomDay/node_modules/@ethersproject/logger/src.ts/index.ts:237:20)
    at /Users/matt/Desktop/hardhat/randomDay/node_modules/@ethersproject/abstract-signer/src.ts/index.ts:301:31
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Promise.all (index 7)
Run Code Online (Sandbox Code Playgroud)

我能够部署到 Kovan 测试网,我能够验证合约,并且我已经发送了合约 LINK 代币,但仍然遇到了问题。合约可以在这里查看:https://kovan.etherscan.io/address/0x7b72d80670512c87605ab8ac7e6113fda9c57de4#code

我正在使用 Chainlink 合约 0.8 版本。

随机日.sol

pragma solidity ^0.8.9;

import "@chainlink/contracts/src/v0.8/VRFConsumerBase.sol";

contract RandomDay is VRFConsumerBase {
    
    uint256 private constant ROLL_IN_PROGRESS = …
Run Code Online (Sandbox Code Playgroud)

blockchain ethereum solidity chainlink

2
推荐指数
1
解决办法
2309
查看次数

如何从 Solidity 中的多个函数返回中仅获取必要的值?

在合同中,我有一个返回多个变量的函数。它返回 7 个变量,但我只需要其中的一个变量。怎样才能只取出必要的呢?我应该获取所有变量并只使用一个吗?

interface IData {
   function getData() external view returns (unit d1, 
                                             string memory d2, 
                                             address d3, 
                                             unit d4, 
                                             string memory d5, 
                                             unit d6, 
                                             address d7);
}

contract Module {
   IData private keepData;
   constructor(address dataAddress) {
      keepData = IData(dataAddress);
   }

   function doSomething() external {
      unit d1;
      string d2;
      address d3;
      unit d4;
      string d5;
      unit d6;
      address d7;
      (d1, d2, d3, d4, d5, d6, d7) = keepData.getData();
      // do something which only requires d5 data.
      // for other 6 …
Run Code Online (Sandbox Code Playgroud)

return blockchain solidity

2
推荐指数
1
解决办法
2040
查看次数

ETH 2.0 和 NEAR 有什么区别?

Etherium 2.0 和 NEAR 在很多方面似乎非常相似。有人可以详细说明两者之间有什么区别吗?

blockchain ethereum nearprotocol near

2
推荐指数
1
解决办法
114
查看次数

Metamask注入的window.ethereum和web3.js之间有什么关系吗?我们可以两者都使用吗?

我正在学习 DApp 编程,出现的一个问题是 Metamask 和 web3.js 注入的 API 之间的区别。据我了解,MetaMask 注入一个有自己的 API 的对象,与 web3.js 库无关。它是否正确?我仍然可以将 web3.js 库与 MetaMask 一起使用吗?在后一种情况下,我该怎么办?如果有人能进一步解释这种差异,我将不胜感激。谢谢!

blockchain ethereum smartcontracts web3js metamask

2
推荐指数
1
解决办法
2613
查看次数

表达式“variableName;”是什么意思 在坚固性?

我在文档中找不到有关此表达式的任何信息。关于Ehternaut重入任务有以下代码。

function withdraw(uint _amount) public {
  if(balances[msg.sender] >= _amount) {
    (bool result,) = msg.sender.call{value:_amount}("");
    if(result) {
      _amount;
    }
    balances[msg.sender] -= _amount;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是什么_amount;意思?

blockchain solidity smartcontracts

2
推荐指数
1
解决办法
187
查看次数

Truffle '“迁移”——cb 不是函数'

我在 Solidity 0.6.6 中编写了一个简单的智能合约,并尝试将其部署到 BSC 测试网。

这就是我的 truffle-config.js 文件中的内容(privateKeys 是一个包含 ['0x + privatekey'] 单个条目的数组:

networks: {
   bscTestnet: {
      provider: () => new HDWalletProvider(
        privateKeys,
        'https://data-seed-prebsc-1-s1.binance.org:8545/'
      ),
      network_id: 97,
      skipDryRun: true
   }
}
Run Code Online (Sandbox Code Playgroud)

当我运行命令“truffle migrate --reset --network bscTestnet”时,出现以下错误:

Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.



Starting migrations...
======================
> Network name:    'bscTestnet'
> Network id:      97
> Block gas limit: 30000000 (0x1c9c380)


1_initial_migration.js
======================

   Deploying 'Migrations'
   ----------------------

Error:  *** Deployment Failed ***

"Migrations" …
Run Code Online (Sandbox Code Playgroud)

javascript npm blockchain truffle bsc

2
推荐指数
1
解决办法
1210
查看次数

错误:小数部分超过了 EithersJS 中的小数

为什么以下代码会因超过小数而返回小数部分错误?它似乎只在低平衡时触发。

如果我的余额是 0.1 以太币或 BNB,我不会看到错误,但如果我的余额是 0.0001,我会看到此错误

错误:小数部分超过小数

var account = accounts[0]
var yourBalance = await provider.getBalance(account)
var fixedBalance= ethers.FixedNumber.fromValue(yourbalance , 18);
var stakedAmount = (fixedBalance * 0.50).toString();
var finalOutput = ethers.utils.parseUnits(stakedAmount , 18);  //this returns Error: fractional component exceeds decimals
Run Code Online (Sandbox Code Playgroud)

javascript blockchain ethers.js

2
推荐指数
1
解决办法
5038
查看次数