小编Ire*_*ios的帖子

如何计算 RSK 上每笔交易的平均 Gas 成本?

我想计算过去三个月内RSK上所有交易支付的平均汽油费。我尝试使用Web3.js库查询 RSK 区块链。为了获取单个区块高度的交易数据,我必须这样做:

const txsPerBlock = await web3.getBlockTransactionCount(block.height);
const txs = await Promise.all(
    [...Array(txsPerBlock).keys()].map(
        (i) => web3.eth.getTransactionFromBlock(block.height, i))
);
Run Code Online (Sandbox Code Playgroud)

然后计算平均gas费用:

const averageGasFee = txs.reduce(
    (p, c) => p + Number(c.gasPrice) * c.gas,
    0
) / txs.length;
Run Code Online (Sandbox Code Playgroud)

然而,在 3 个月内,RSK 上约有 230,000 个区块,其中每个区块约有 3 笔交易。因此,我必须轮询大约 600,000 笔交易,而这需要很长时间才能完成。我等了一个小时然后取消了剧本。有没有更好的方法来查询 RSK 区块链并计算如此大量的区块和交易的平均交易 Gas 费用?

javascript web3js rsk

10
推荐指数
2
解决办法
1637
查看次数

如何通过 Hardhat 测试 RSK 测试网部署的智能合约?

我正在使用 Hardhat 在 RSK 测试网上部署和测试我的智能合约。这是hardhat.config.js我正在使用的设置:

require('@nomiclabs/hardhat-waffle');

const mnemonic = fs.readFileSync('.mnemonic', 'utf8').toString().trim();
const minimumGasPriceTestnet = 65164000;
const TESTNET_GAS_MULT = 1;
module.exports = {
  solidity: '0.7.3',
  defaultNetwork: 'rsktestnet',
  networks: {
    hardhat: {},
    rsktestnet: {
      chainId: 31,
      url: 'https://public-node.testnet.rsk.co/',
      gasPrice: Math.floor(minimumGasPriceTestnet * TESTNET_GAS_MULT),
      gasMultiplier: TESTNET_GAS_MULT,
      accounts: {
        mnemonic,
        initialIndex: 0,
        count: 10,
      },
    },
  },
};

Run Code Online (Sandbox Code Playgroud)

不幸的是,我的测试失败,并且收到以下错误消息:

Error: Timeout of 20000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/ales/Work/IOV/demo-code-snippets/hardhat-tutorial/ethers-waffle/test/Token.js)
          at listOnTimeout …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js rsk hardhat

5
推荐指数
1
解决办法
227
查看次数

在部署 RSK 之前,如何在 RSK 上选择自己的智能合约地址?

我注意到一些智能合约\n的地址以 、 或 - 开头,0x00000x1234不确定0x1337部署者是如何做到这一点的。\n\xe2\x80\x8b\n是否可以在 RSK 上执行此操作?

\n

solidity rsk

5
推荐指数
1
解决办法
527
查看次数

标签 统计

rsk ×3

javascript ×2

hardhat ×1

mocha.js ×1

solidity ×1

web3js ×1