c9639c3860
* tests: add solidity test suite * tests: remove require strings * Update tests-solidity/init-test-node.sh * Update tests-solidity/init-test-node.sh Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
84 lines
2.6 KiB
JavaScript
84 lines
2.6 KiB
JavaScript
const { MAX_UINT64 } = require('@aragon/contract-helpers-test/numbers')
|
|
|
|
const getEvent = (receipt, event, arg) => { return receipt.logs.filter(l => l.event == event)[0].args[arg] }
|
|
|
|
const { deploy } = require('./helpers/deploy')(artifacts)
|
|
const { DEFAULT_STAKE_AMOUNT, DEFAULT_LOCK_AMOUNT, EMPTY_DATA, ZERO_ADDRESS, ACTIVATED_LOCK } = require('./helpers/constants')
|
|
|
|
contract.skip('Staking app, gas measures', accounts => {
|
|
let staking, token, lockManager, stakingAddress, tokenAddress, lockManagerAddress
|
|
let owner, user1, user2
|
|
|
|
const approveAndStake = async (amount = DEFAULT_STAKE_AMOUNT, from = owner) => {
|
|
await token.approve(stakingAddress, amount, { from })
|
|
await staking.stake(amount, EMPTY_DATA, { from })
|
|
}
|
|
|
|
const approveStakeAndLock = async (
|
|
manager,
|
|
lockAmount = DEFAULT_LOCK_AMOUNT,
|
|
stakeAmount = DEFAULT_STAKE_AMOUNT,
|
|
from = owner
|
|
) => {
|
|
await approveAndStake(stakeAmount, from)
|
|
await staking.allowManagerAndLock(lockAmount, manager, lockAmount, ACTIVATED_LOCK, { from })
|
|
}
|
|
|
|
before(async () => {
|
|
owner = accounts[0]
|
|
user1 = accounts[1]
|
|
user2 = accounts[2]
|
|
})
|
|
|
|
beforeEach(async () => {
|
|
const deployment = await deploy(owner)
|
|
token = deployment.token
|
|
staking = deployment.staking
|
|
lockManager = deployment.lockManager
|
|
|
|
stakingAddress = staking.address
|
|
tokenAddress = token.address
|
|
lockManagerAddress = lockManager.address
|
|
})
|
|
|
|
// increases 1185 gas for each lock
|
|
it('measures unlockedBalanceOf gas', async () => {
|
|
await approveStakeAndLock(lockManagerAddress)
|
|
|
|
const r = await staking.unlockedBalanceOfGas()
|
|
const gas = getEvent(r, 'LogGas', 'gas')
|
|
console.log(`unlockedBalanceOf gas: ${gas.toNumber()}`)
|
|
})
|
|
|
|
// 110973 gas
|
|
/*
|
|
it('measures lock gas', async () => {
|
|
await approveAndStake()
|
|
|
|
const r = await staking.lockGas(DEFAULT_LOCK_AMOUNT, lockManagerAddress, ACTIVATED_LOCK, { from: owner })
|
|
const gas = getEvent(r, 'LogGas', 'gas')
|
|
console.log('lock gas:', gas.toNumber())
|
|
})
|
|
*/
|
|
|
|
// 27601 gas
|
|
it('measures transfer gas', async () => {
|
|
await approveStakeAndLock(lockManagerAddress)
|
|
|
|
const r = await staking.transferGas(owner, lockManagerAddress, DEFAULT_LOCK_AMOUNT)
|
|
const gas = getEvent(r, 'LogGas', 'gas')
|
|
console.log('transfer gas:', gas.toNumber())
|
|
})
|
|
|
|
/*
|
|
it('measures unlock gas', async () => {
|
|
await approveStakeAndLock(user1)
|
|
|
|
const r = await staking.unlockGas(owner, user1, { from: user1 })
|
|
const gas = getEvent(r, 'LogGas', 'gas')
|
|
console.log(`unlock gas: ${gas.toNumber()}`)
|
|
await approveStakeAndLock(lockManagerAddress)
|
|
})
|
|
*/
|
|
})
|