mirror of
https://github.com/logos-storage/logos-storage-contracts-eth.git
synced 2026-01-04 06:13:09 +00:00
vault: fix accounting of locked value when burning designated tokens
This commit is contained in:
parent
43cd44330b
commit
473a5fec19
@ -208,7 +208,7 @@ abstract contract VaultBase {
|
|||||||
Recipient recipient,
|
Recipient recipient,
|
||||||
uint128 amount
|
uint128 amount
|
||||||
) internal {
|
) internal {
|
||||||
Lock memory lock = _locks[controller][fund];
|
Lock storage lock = _locks[controller][fund];
|
||||||
require(lock.status() == LockStatus.Locked, VaultFundNotLocked());
|
require(lock.status() == LockStatus.Locked, VaultFundNotLocked());
|
||||||
|
|
||||||
Account storage account = _accounts[controller][fund][recipient];
|
Account storage account = _accounts[controller][fund][recipient];
|
||||||
@ -216,6 +216,8 @@ abstract contract VaultBase {
|
|||||||
|
|
||||||
account.balance.designated -= amount;
|
account.balance.designated -= amount;
|
||||||
|
|
||||||
|
lock.value -= amount;
|
||||||
|
|
||||||
_token.safeTransfer(address(0xdead), amount);
|
_token.safeTransfer(address(0xdead), amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -641,7 +641,10 @@ describe("Vault", function () {
|
|||||||
await vault.deposit(fund, account.address, 30)
|
await vault.deposit(fund, account.address, 30)
|
||||||
await vault.transfer(fund, account.address, account2.address, 20)
|
await vault.transfer(fund, account.address, account2.address, 20)
|
||||||
await vault.transfer(fund, account2.address, account3.address, 10)
|
await vault.transfer(fund, account2.address, account3.address, 10)
|
||||||
// some tokens are burned
|
// some designated tokens are burned
|
||||||
|
await vault.designate(fund, account2.address, 10)
|
||||||
|
await vault.burnDesignated(fund, account2.address, 5)
|
||||||
|
// some account is burned
|
||||||
await vault.burnAccount(fund, account2.address)
|
await vault.burnAccount(fund, account2.address)
|
||||||
await expire()
|
await expire()
|
||||||
// some tokens are withdrawn
|
// some tokens are withdrawn
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user