33 lines
999 B
Nim
33 lines
999 B
Nim
import pkg/chronos
|
|
import pkg/stint
|
|
import dagger/contracts
|
|
import dagger/contracts/testtoken
|
|
import ./ethertest
|
|
|
|
ethersuite "Staking":
|
|
|
|
let stakeAmount = 100.u256
|
|
|
|
var storage: Storage
|
|
var token: TestToken
|
|
|
|
setup:
|
|
let deployment = deployment()
|
|
storage = Storage.new(!deployment.address(Storage), provider.getSigner())
|
|
token = TestToken.new(!deployment.address(TestToken), provider.getSigner())
|
|
await token.mint(accounts[0], 1000.u256)
|
|
|
|
test "increases stake":
|
|
await token.approve(storage.address, stakeAmount)
|
|
await storage.increaseStake(stakeAmount)
|
|
let stake = await storage.stake(accounts[0])
|
|
check stake == stakeAmount
|
|
|
|
test "withdraws stake":
|
|
await token.approve(storage.address, stakeAmount)
|
|
await storage.increaseStake(stakeAmount)
|
|
let balanceBefore = await token.balanceOf(accounts[0])
|
|
await storage.withdrawStake()
|
|
let balanceAfter = await token.balanceOf(accounts[0])
|
|
check (balanceAfter - balanceBefore) == stakeAmount
|