laconicd/tests/solidity/suites/staking/test/helpers/deploy.js

36 lines
1.1 KiB
JavaScript
Raw Normal View History

const { bn } = require('@aragon/contract-helpers-test/numbers')
const { DEFAULT_STAKE_AMOUNT } = require('./constants')
module.exports = (artifacts) => {
const StakingFactory = artifacts.require('StakingFactory')
const Staking = artifacts.require('Staking')
const StandardTokenMock = artifacts.require('StandardTokenMock')
const LockManagerMock = artifacts.require('LockManagerMock')
const getEvent = (receipt, event, arg) => { return receipt.logs.filter(l => l.event === event)[0].args[arg] }
const deploy = async (owner, initialAmount = DEFAULT_STAKE_AMOUNT.mul(bn(1000))) => {
const token = await StandardTokenMock.new(owner, initialAmount)
const staking = await deployStaking(token)
const lockManager = await LockManagerMock.new()
return { token, staking, lockManager }
}
const deployStaking = async (token) => {
const factory = await StakingFactory.new()
const receipt = await factory.getOrCreateInstance(token.address)
const stakingAddress = getEvent(receipt, 'NewStaking', 'instance')
const staking = await Staking.at(stakingAddress)
return staking
}
return {
deploy
}
}