From 77f8be3608defb30a47f665dcc6278c6142e5738 Mon Sep 17 00:00:00 2001 From: ninokeldishvili Date: Tue, 5 Nov 2024 18:15:48 +0400 Subject: [PATCH] Add testSetApprovalForAllAndIsApprovedForAll erc1155 --- test/src/concrete/receipt/Receipt.t.sol | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/src/concrete/receipt/Receipt.t.sol b/test/src/concrete/receipt/Receipt.t.sol index 8aa09d93..0bb916d5 100644 --- a/test/src/concrete/receipt/Receipt.t.sol +++ b/test/src/concrete/receipt/Receipt.t.sol @@ -334,4 +334,22 @@ contract ReceiptTest is ReceiptFactoryTest { assertEq(balances[0], amountOne); assertEq(balances[1], amountTwo); } + + function testSetApprovalForAllAndIsApprovedForAll(uint256 fuzzedKeyAlice, uint256 fuzzedKeyBob) public { + // Ensure the fuzzed key is within the valid range for secp256 + address alice = vm.addr((fuzzedKeyAlice % (SECP256K1_ORDER - 1)) + 1); + address bob = vm.addr((fuzzedKeyBob % (SECP256K1_ORDER - 1)) + 1); + vm.assume(alice != bob); + + TestReceipt receipt = createReceipt(alice); + + vm.startPrank(alice); + // Alice approves operator + receipt.setApprovalForAll(bob, true); + assertTrue(receipt.isApprovedForAll(alice, bob)); + + // Alice revokes approval + receipt.setApprovalForAll(bob, false); + assertFalse(receipt.isApprovedForAll(alice, bob)); + } }