javascript - 在 RSK Regtest 上开发时如何提高块数?
问题描述
我有一个使用区块编号的智能合约,我需要增加区块编号而无需真正等待时间过去。
在 Regtest 中运行 RSK 节点时这可能吗?我怎样才能用 Javascript 做到这一点?
解决方案
在 Regtest 中,是的,确实有可能:使用evm_mine
JSON-RPC 方法来挖掘块。
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);
});
});
};
请注意,这与以太坊开发工具(例如 Ganache)中使用的方法一致。或者,用于evm_increaseTime
增加块的时间:
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 - 从 js 对象中删除数据
- python-3.x - 在执行 box-cox 和分解之后,想要根据状态找到预测
- c++ - 在现代 CMake 中定义预处理器
- vba - 如何在 Word 2016 中触发鼠标右键单击事件处理程序?
- reactjs - 从反应导航中动态删除一个drawerItem
- bash - 通过 shell 的 Oracle 数据库连接
- oracle - 如何在顶点5创建树形图?
- testing - 自动化服务器运行的 Testcafe 测试随机失败
- c# - 无法加载文件或程序集“ClearScriptV8-32.DLL”或其依赖项之一。指定的模块无法找到
- spring-boot - 需要在 POST 端点中模拟服务方法,跳过 @RequestBody 注释