javascript - 在 RSK Regtest 上开发时如何提前区 block 编号?

标签 javascript rsk

我有一个使用区 block 号的智能合约, 我需要增加 block 号,而不需要真正等待时间过去。

在 Regtest 中运行 RSK 节点时这可能吗?我怎样才能用 JavaScript 做到这一点?

最佳答案

在 Regtest 中,是的,确实有可能: 使用 evm_mine JSON-RPC 方法来挖掘区 block 。

const asyncMine = async () => {
    return new Promise((resolve, reject) => {
        web3.currentProvider.send({
            jsonrpc: "2.0",
            method: "evm_mine",
            id: new Date().getTime()
            }, (error, result) => {
                if (error) {
                    return reject(error);
                }
                return resolve(result);
            });
    });
};

请注意,这与以太坊开发人员工具中使用的方法一致,例如伽纳彻。 或者,使用 evm_increaseTime 来增加 block 的时间:

function increaseTimestamp(web3, increase) {
    return new Promise((resolve, reject) => {
        web3.currentProvider.send({
            method: "evm_increaseTime",
            params: [increase],
            jsonrpc: "2.0",
            id: new Date().getTime()
          }, (error, result) => {
            if (error) {
                return reject(error);
            }
            return asyncMine().then( ()=> resolve(result));
          });
    }); 
}

关于javascript - 在 RSK Regtest 上开发时如何提前区 block 编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65680676/

相关文章:

Javascript - Scriptaculous - 效果回调函数

javascript - 如何转到下一张幻灯片 jQuery

javascript - 在javascript中计算百分比

javascript - Highcharts 堆积区 : legend hover event

checksum - 为什么 web3.js 拒绝有效的 RSK 智能合约地址?

javascript - Three.js - 更新纹理

java - RSK 网络上智能合约的最大大小是多少?

port - 在 Windows 上运行 RSK 节点时如何避免 "PeerDiscoveryException"?

rpc - 如何从 RSKj regtest 区 block 链节点的测试账户发送 web3 交易