- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个智能合约,它检查实际 block 号是否高于固定 block 号以执行某些功能,我需要编写一个单元测试来验证该行为。我在 Regtest 模式下使用 RSK 来执行测试,我需要在不实际等待时间过去的情况下增加 block 号。
智能合约使用区 block 号,
我需要增加 block 号而不实际等待时间过去。
context('once deployed', function () {
it('can only be released after cliff', async function () {
// TODO here I need to increment time or block number
await this.lockup.release();
});
)};
我怎样才能在像上面这样的松露( Mocha )测试中做到这一点?
最佳答案
快速说明,强调这一点不是 可能在
“实际” RSK 区 block 链(主网和测试网),
因为它涉及“假”采矿。
然而,在 Regtest 中,这个 是 确实有可能:
(1)
使用 evm_mine
JSON-RPC 方法来挖掘 block 。
function evmMine () {
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);
});
});
};
await evmMine(); // Force a single block to be mined.
这与以太坊开发者工具中使用的方法是一致的,例如伽纳彻。
evm_increaseTime
增加 block 时间的 JSON-RPC 方法:
function evmIncreaseTime(seconds) {
return new Promise((resolve, reject) => {
web3.currentProvider.send({
method: "evm_increaseTime",
params: [seconds],
jsonrpc: "2.0",
id: new Date().getTime()
}, (error, result) => {
if (error) {
return reject(error);
}
return asyncMine().then( ()=> resolve(result));
});
});
}
await evmIncreaseTime(600); // Force block to be mined such that ~10 minutes has passed
关于javascript - 当我在 RSK Regtest 上开发时,如何提高 block 号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65885291/
我目前正在开发一个比特币应用程序,它涉及运行一个完整的比特币节点。 当我测试我的源代码时,我决定使用比特币注册测试模式。 这是我如何启动我的比特币节点: ./bitcoind -regtest -rp
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 2 年前。 Improve this ques
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 2 年前。 Improve this ques
我有一个智能合约,它检查实际 block 号是否高于固定 block 号以执行某些功能,我需要编写一个单元测试来验证该行为。我在 Regtest 模式下使用 RSK 来执行测试,我需要在不实际等待时间
我正在创建一个 DApp,它连接到部署在由 RSKj Java 应用程序运行的本地测试 RSK 区块链(regtest)上的智能合约。我打算通过连接到 Metamask 的 Web3 发送交易。在 D
我是一名优秀的程序员,十分优秀!