我有一个使用区 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/