56 lines
1.0 KiB
JavaScript
56 lines
1.0 KiB
JavaScript
// This module is used only for tests
|
|
function send(method, params = []) {
|
|
return new Promise((resolve, reject) => {
|
|
// eslint-disable-next-line no-undef
|
|
web3.currentProvider.send(
|
|
{
|
|
jsonrpc: '2.0',
|
|
id: Date.now(),
|
|
method,
|
|
params,
|
|
},
|
|
(err, res) => {
|
|
return err ? reject(err) : resolve(res)
|
|
},
|
|
)
|
|
})
|
|
}
|
|
|
|
const takeSnapshot = async () => {
|
|
return await send('evm_snapshot')
|
|
}
|
|
|
|
const traceTransaction = async (tx) => {
|
|
return await send('debug_traceTransaction', [tx, {}])
|
|
}
|
|
|
|
const revertSnapshot = async (id) => {
|
|
await send('evm_revert', [id])
|
|
}
|
|
|
|
const mineBlock = async (timestamp) => {
|
|
await send('evm_mine', [timestamp])
|
|
}
|
|
|
|
const increaseTime = async (seconds) => {
|
|
await send('evm_increaseTime', [seconds])
|
|
}
|
|
|
|
const minerStop = async () => {
|
|
await send('miner_stop', [])
|
|
}
|
|
|
|
const minerStart = async () => {
|
|
await send('miner_start', [])
|
|
}
|
|
|
|
module.exports = {
|
|
takeSnapshot,
|
|
revertSnapshot,
|
|
mineBlock,
|
|
minerStop,
|
|
minerStart,
|
|
increaseTime,
|
|
traceTransaction,
|
|
}
|