[contracts] Update to new collateral design

This commit is contained in:
Mark Spanbroek 2022-03-15 17:29:56 +01:00 committed by markspanbroek
parent 8d0f9775b5
commit 87bd947d3d
3 changed files with 18 additions and 18 deletions

View File

@ -11,10 +11,10 @@ type
Storage* = ref object of Contract Storage* = ref object of Contract
Id = array[32, byte] Id = array[32, byte]
proc stakeAmount*(storage: Storage): UInt256 {.contract, view.} proc collateralAmount*(storage: Storage): UInt256 {.contract, view.}
proc increaseStake*(storage: Storage, amount: UInt256) {.contract.} proc deposit*(storage: Storage, amount: UInt256) {.contract.}
proc withdrawStake*(storage: Storage) {.contract.} proc withdraw*(storage: Storage) {.contract.}
proc stake*(storage: Storage, account: Address): UInt256 {.contract, view.} proc balanceOf*(storage: Storage, account: Address): UInt256 {.contract, view.}
proc duration*(storage: Storage, id: Id): UInt256 {.contract, view.} proc duration*(storage: Storage, id: Id): UInt256 {.contract, view.}
proc size*(storage: Storage, id: Id): UInt256 {.contract, view.} proc size*(storage: Storage, id: Id): UInt256 {.contract, view.}
proc contentHash*(storage: Storage, id: Id): array[32, byte] {.contract, view.} proc contentHash*(storage: Storage, id: Id): array[32, byte] {.contract, view.}

View File

@ -4,9 +4,9 @@ import dagger/contracts
import dagger/contracts/testtoken import dagger/contracts/testtoken
import ./ethertest import ./ethertest
ethersuite "Staking": ethersuite "Collateral":
let stakeAmount = 100.u256 let collateralAmount = 100.u256
var storage: Storage var storage: Storage
var token: TestToken var token: TestToken
@ -17,16 +17,16 @@ ethersuite "Staking":
token = TestToken.new(!deployment.address(TestToken), provider.getSigner()) token = TestToken.new(!deployment.address(TestToken), provider.getSigner())
await token.mint(accounts[0], 1000.u256) await token.mint(accounts[0], 1000.u256)
test "increases stake": test "increases collateral":
await token.approve(storage.address, stakeAmount) await token.approve(storage.address, collateralAmount)
await storage.increaseStake(stakeAmount) await storage.deposit(collateralAmount)
let stake = await storage.stake(accounts[0]) let collateral = await storage.balanceOf(accounts[0])
check stake == stakeAmount check collateral == collateralAmount
test "withdraws stake": test "withdraws collateral":
await token.approve(storage.address, stakeAmount) await token.approve(storage.address, collateralAmount)
await storage.increaseStake(stakeAmount) await storage.deposit(collateralAmount)
let balanceBefore = await token.balanceOf(accounts[0]) let balanceBefore = await token.balanceOf(accounts[0])
await storage.withdrawStake() await storage.withdraw()
let balanceAfter = await token.balanceOf(accounts[0]) let balanceAfter = await token.balanceOf(accounts[0])
check (balanceAfter - balanceBefore) == stakeAmount check (balanceAfter - balanceBefore) == collateralAmount

View File

@ -1,5 +1,5 @@
import ./contracts/testMarketplace import ./contracts/testMarketplace
import ./contracts/testStaking import ./contracts/testCollateral
import ./contracts/testContracts import ./contracts/testContracts
{.warning[UnusedImport]:off.} {.warning[UnusedImport]:off.}