From 0cb7be83447d7de15688bbf3cf09e00349e2bd9e Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Mon, 8 Jul 2024 10:30:28 +0100 Subject: [PATCH 1/2] consistent check for claimed or cancelled --- src/contracts/escrow_library.cairo | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/contracts/escrow_library.cairo b/src/contracts/escrow_library.cairo index a1e6945..b72121a 100644 --- a/src/contracts/escrow_library.cairo +++ b/src/contracts/escrow_library.cairo @@ -120,7 +120,7 @@ mod EscrowLibrary { let contract_address = get_contract_address(); assert(get_caller_address() == gift.sender, 'escr-lib/wrong-sender'); let gift_balance = balance_of(gift.gift_token, contract_address); - assert(gift_balance > 0, 'escr-lib/already-claimed'); + assert(gift_balance >= gift.gift_amount, 'escr-lib/claimed-or-cancel'); if gift.gift_token == gift.fee_token { // Sender also gets the dust transfer_from_account(gift.gift_token, gift.sender, gift_balance); From 86142ed019fd9497f98762f6ef95bd493bc04c26 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Mon, 8 Jul 2024 12:19:07 +0100 Subject: [PATCH 2/2] fix tests --- tests-integration/cancel.test.ts | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/tests-integration/cancel.test.ts b/tests-integration/cancel.test.ts index 54fc26b..e87134a 100644 --- a/tests-integration/cancel.test.ts +++ b/tests-integration/cancel.test.ts @@ -75,33 +75,15 @@ describe("Cancel Gift", function () { ); }); - it(`owner reclaim dust (gift_token == fee_token)`, async function () { + it(`already claimed (gift_token == fee_token)`, async function () { const { factory } = await setupGiftProtocol(); const { gift, giftPrivateKey } = await defaultDepositTestSetup({ factory }); const receiver = randomReceiver(); - - const { transaction_hash: transaction_hash_claim } = await claimInternal({ - gift, - receiver, - giftPrivateKey, - }); - const txFeeCancelGift = BigInt((await manager.getTransactionReceipt(transaction_hash_claim)).actual_fee.amount); - - const escrowAddress = calculateEscrowAddress(gift); - - const balanceSenderBefore = await manager.tokens.tokenBalance(deployer.address, gift.gift_token); - const { transaction_hash } = await cancelGift({ gift }); - - const txFeeCancel = BigInt((await manager.getTransactionReceipt(transaction_hash)).actual_fee.amount); - // Check balance of the sender is correct - await manager.tokens - .tokenBalance(deployer.address, gift.gift_token) - .should.eventually.equal(balanceSenderBefore + gift.fee_amount - txFeeCancel - txFeeCancelGift); - // Check balance gift address address == 0 - await manager.tokens.tokenBalance(escrowAddress, gift.gift_token).should.eventually.equal(0n); + await claimInternal({ gift, receiver, giftPrivateKey }); + await expectRevertWithErrorMessage("escr-lib/claimed-or-cancel", () => cancelGift({ gift })); }); - it(`escr-lib/already-claimed (gift_token != fee_token)`, async function () { + it(`already claimed (gift_token != fee_token)`, async function () { const mockERC20 = await deployMockERC20(); const { factory } = await setupGiftProtocol(); const { gift, giftPrivateKey } = await defaultDepositTestSetup({ @@ -111,6 +93,6 @@ describe("Cancel Gift", function () { const receiver = randomReceiver(); await claimInternal({ gift, receiver, giftPrivateKey }); - await expectRevertWithErrorMessage("escr-lib/already-claimed", () => cancelGift({ gift })); + await expectRevertWithErrorMessage("escr-lib/claimed-or-cancel", () => cancelGift({ gift })); }); });