From f4b69a06f90494abd43e2b37a2614cc33cda2509 Mon Sep 17 00:00:00 2001 From: Erik Dubovyk Date: Wed, 11 Sep 2024 23:30:35 +0300 Subject: [PATCH 1/4] fix Receiver implementer --- test/abstract/FlowBasicTest.sol | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/abstract/FlowBasicTest.sol b/test/abstract/FlowBasicTest.sol index a9169283..e82ac1ac 100644 --- a/test/abstract/FlowBasicTest.sol +++ b/test/abstract/FlowBasicTest.sol @@ -11,9 +11,16 @@ import {STUB_EXPRESSION_BYTECODE, REVERTING_MOCK_BYTECODE} from "./TestConstants import {EvaluableV2} from "rain.interpreter.interface/lib/caller/LibEvaluable.sol"; import {CloneFactory} from "rain.factory/src/concrete/CloneFactory.sol"; import {LibUint256Matrix} from "rain.solmem/lib/LibUint256Matrix.sol"; +import {LibLogHelper} from "test/lib/LibLogHelper.sol"; +import {SignedContextV1} from "rain.interpreter.interface/interface/IInterpreterCallerV2.sol"; +import {LibStackGeneration} from "test/lib/LibStackGeneration.sol"; +import {Address} from "openzeppelin-contracts/contracts/utils/Address.sol"; abstract contract FlowBasicTest is FlowUtilsAbstractTest, InterpreterMockTest { using LibUint256Matrix for uint256[]; + using LibLogHelper for Vm.Log[]; + using LibStackGeneration for uint256; + using Address for address; CloneFactory internal immutable iCloneFactory; IFlowV5 internal immutable iFlowImplementation; @@ -114,6 +121,7 @@ abstract contract FlowBasicTest is FlowUtilsAbstractTest, InterpreterMockTest { vm.assume(account != address(vm)); vm.assume(sentinel != uint256(uint160(account))); vm.assume(account != address(expression)); + vm.assume(!account.isContract()); // The console. vm.assume(account != address(0x000000000000000000636F6e736F6c652e6c6f67)); } From d8dc511fed084ba30c7c431df828f89c1cded0b4 Mon Sep 17 00:00:00 2001 From: Erik Dubovyk Date: Fri, 13 Sep 2024 21:51:26 +0300 Subject: [PATCH 2/4] fix typo, naming and solidity version replacing '^' with '=' in pragma directives --- test/abstract/FlowTransferOperation.sol | 60 ++++++++++++------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/test/abstract/FlowTransferOperation.sol b/test/abstract/FlowTransferOperation.sol index 0db76ddc..1111364c 100644 --- a/test/abstract/FlowTransferOperation.sol +++ b/test/abstract/FlowTransferOperation.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: CAL -pragma solidity = 0.8.19; +pragma solidity ^0.8.19; import {Test, Vm} from "forge-std/Test.sol"; import { @@ -44,24 +44,24 @@ abstract contract FlowTransferOperation is Test { address addressA, address addressB, uint256 erc721InTokenId, - uint256 erc1155OutAmmount, + uint256 erc1155OutAmount, uint256 erc1155OutTokenId ) internal returns (FlowTransferV1 memory transfer) { - transfer = onlyTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmmount, erc1155OutTokenId); - mockTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmmount, erc1155OutTokenId); + transfer = createTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); + mockTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); } - function onlyTransferRC721ToERC1155( + function createTransferRC721ToERC1155( address addressA, address addressB, uint256 erc721InTokenId, - uint256 erc1155OutAmmount, + uint256 erc1155OutAmount, uint256 erc1155OutTokenId ) internal view returns (FlowTransferV1 memory) { { vm.assume(sentinel != erc721InTokenId); vm.assume(sentinel != erc1155OutTokenId); - vm.assume(sentinel != erc1155OutAmmount); + vm.assume(sentinel != erc1155OutAmount); assumeAddressNotSentinel(addressA); assumeAddressNotSentinel(addressB); } @@ -76,7 +76,7 @@ abstract contract FlowTransferOperation is Test { from: addressB, to: addressA, id: erc1155OutTokenId, - amount: erc1155OutAmmount + amount: erc1155OutAmount }); return FlowTransferV1(new ERC20Transfer[](0), erc721Transfers, erc1155Transfers); @@ -86,7 +86,7 @@ abstract contract FlowTransferOperation is Test { address addressA, address addressB, uint256 erc721InTokenId, - uint256 erc1155OutAmmount, + uint256 erc1155OutAmount, uint256 erc1155OutTokenId ) internal { vm.mockCall(iTokenB, abi.encodeWithSelector(bytes4(keccak256("safeTransferFrom(address,address,uint256)"))), ""); @@ -101,7 +101,7 @@ abstract contract FlowTransferOperation is Test { vm.expectCall( iTokenC, abi.encodeWithSelector( - IERC1155.safeTransferFrom.selector, addressB, addressA, erc1155OutTokenId, erc1155OutAmmount, "" + IERC1155.safeTransferFrom.selector, addressB, addressA, erc1155OutTokenId, erc1155OutAmount, "" ) ); } @@ -110,11 +110,11 @@ abstract contract FlowTransferOperation is Test { internal returns (FlowTransferV1 memory transfer) { - transfer = onlyTransferERC20ToERC721(addressA, addressB, erc20InAmount, erc721OutTokenId); + transfer = createTransferERC20ToERC721(addressA, addressB, erc20InAmount, erc721OutTokenId); mockTransferERC20ToERC721(addressA, addressB, erc20InAmount, erc721OutTokenId); } - function onlyTransferERC20ToERC721( + function createTransferERC20ToERC721( address addressA, address addressB, uint256 erc20InAmount, @@ -163,11 +163,11 @@ abstract contract FlowTransferOperation is Test { uint256 erc721InTokenId, uint256 erc721OutTokenId ) internal returns (FlowTransferV1 memory transfer) { - transfer = onlyTransferERC721ToERC721(addressA, addressB, erc721InTokenId, erc721OutTokenId); + transfer = createTransferERC721ToERC721(addressA, addressB, erc721InTokenId, erc721OutTokenId); mockTransferERC721ToERC721(addressA, addressB, erc721InTokenId, erc721OutTokenId); } - function onlyTransferERC721ToERC721( + function createTransferERC721ToERC721( address addressA, address addressB, uint256 erc721InTokenId, @@ -213,23 +213,23 @@ abstract contract FlowTransferOperation is Test { ); } - function transfersERC20toERC20(address addressA, address addressB, uint256 erc20BInAmmount, uint256 erc20OutAmmount) + function transfersERC20toERC20(address addressA, address addressB, uint256 erc20BInAmount, uint256 erc20OutAmount) internal returns (FlowTransferV1 memory transfer) { - transfer = onlyTransfersERC20toERC20(addressA, addressB, erc20BInAmmount, erc20OutAmmount); - mockTransfersERC20toERC20(addressA, addressB, erc20BInAmmount, erc20OutAmmount); + transfer = createTransfersERC20toERC20(addressA, addressB, erc20BInAmount, erc20OutAmount); + mockTransfersERC20toERC20(addressA, addressB, erc20BInAmount, erc20OutAmount); } - function onlyTransfersERC20toERC20( + function createTransfersERC20toERC20( address addressA, address addressB, - uint256 erc20BInAmmount, - uint256 erc20OutAmmount + uint256 erc20BInAmount, + uint256 erc20OutAmount ) internal view returns (FlowTransferV1 memory transfer) { { - vm.assume(sentinel != erc20BInAmmount); - vm.assume(sentinel != erc20OutAmmount); + vm.assume(sentinel != erc20BInAmount); + vm.assume(sentinel != erc20OutAmount); assumeAddressNotSentinel(addressA); assumeAddressNotSentinel(addressB); } @@ -237,9 +237,9 @@ abstract contract FlowTransferOperation is Test { { ERC20Transfer[] memory erc20Transfers = new ERC20Transfer[](2); erc20Transfers[0] = - ERC20Transfer({token: address(iTokenA), from: addressA, to: addressB, amount: erc20BInAmmount}); + ERC20Transfer({token: address(iTokenA), from: addressA, to: addressB, amount: erc20BInAmount}); erc20Transfers[1] = - ERC20Transfer({token: address(iTokenB), from: addressB, to: addressA, amount: erc20OutAmmount}); + ERC20Transfer({token: address(iTokenB), from: addressB, to: addressA, amount: erc20OutAmount}); transfer = FlowTransferV1(erc20Transfers, new ERC721Transfer[](0), new ERC1155Transfer[](0)); } } @@ -247,16 +247,16 @@ abstract contract FlowTransferOperation is Test { function mockTransfersERC20toERC20( address addressA, address addressB, - uint256 erc20BInAmmount, - uint256 erc20OutAmmount + uint256 erc20BInAmount, + uint256 erc20OutAmount ) internal { vm.mockCall(address(iTokenA), abi.encodeWithSelector(IERC20.transferFrom.selector), abi.encode(true)); vm.expectCall( - address(iTokenA), abi.encodeWithSelector(IERC20.transferFrom.selector, addressA, addressB, erc20BInAmmount) + address(iTokenA), abi.encodeWithSelector(IERC20.transferFrom.selector, addressA, addressB, erc20BInAmount) ); vm.mockCall(address(iTokenB), abi.encodeWithSelector(IERC20.transfer.selector), abi.encode(true)); - vm.expectCall(address(iTokenB), abi.encodeWithSelector(IERC20.transfer.selector, addressA, erc20OutAmmount)); + vm.expectCall(address(iTokenB), abi.encodeWithSelector(IERC20.transfer.selector, addressA, erc20OutAmount)); } function transferERC1155ToERC1155( @@ -267,7 +267,7 @@ abstract contract FlowTransferOperation is Test { uint256 erc1155OutTokenId, uint256 erc1155OutAmount ) internal returns (FlowTransferV1 memory transfer) { - transfer = onlyTransferERC1155ToERC1155( + transfer = createTransferERC1155ToERC1155( addressA, addressB, erc1155BInTokenId, erc1155BInAmount, erc1155OutTokenId, erc1155OutAmount ); MockTransferERC1155ToERC1155( @@ -275,7 +275,7 @@ abstract contract FlowTransferOperation is Test { ); } - function onlyTransferERC1155ToERC1155( + function createTransferERC1155ToERC1155( address addressA, address addressB, uint256 erc1155BInTokenId, From c37a14c33e49f253fe22a25f169a6b239f243e66 Mon Sep 17 00:00:00 2001 From: Erik Dubovyk Date: Fri, 13 Sep 2024 22:01:17 +0300 Subject: [PATCH 3/4] fix fmt --- test/abstract/FlowTransferOperation.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/abstract/FlowTransferOperation.sol b/test/abstract/FlowTransferOperation.sol index 1111364c..e5da247c 100644 --- a/test/abstract/FlowTransferOperation.sol +++ b/test/abstract/FlowTransferOperation.sol @@ -47,7 +47,8 @@ abstract contract FlowTransferOperation is Test { uint256 erc1155OutAmount, uint256 erc1155OutTokenId ) internal returns (FlowTransferV1 memory transfer) { - transfer = createTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); + transfer = + createTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); mockTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); } From 571822f26f343f0e47a3ed58b31e7d0e95521843 Mon Sep 17 00:00:00 2001 From: Erik Dubovyk Date: Sat, 14 Sep 2024 11:08:29 +0300 Subject: [PATCH 4/4] fix typo --- test/abstract/FlowTransferOperation.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/abstract/FlowTransferOperation.sol b/test/abstract/FlowTransferOperation.sol index e5da247c..c37b7939 100644 --- a/test/abstract/FlowTransferOperation.sol +++ b/test/abstract/FlowTransferOperation.sol @@ -48,11 +48,11 @@ abstract contract FlowTransferOperation is Test { uint256 erc1155OutTokenId ) internal returns (FlowTransferV1 memory transfer) { transfer = - createTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); - mockTransferRC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); + createTransferERC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); + mockTransferERC721ToERC1155(addressA, addressB, erc721InTokenId, erc1155OutAmount, erc1155OutTokenId); } - function createTransferRC721ToERC1155( + function createTransferERC721ToERC1155( address addressA, address addressB, uint256 erc721InTokenId, @@ -83,7 +83,7 @@ abstract contract FlowTransferOperation is Test { return FlowTransferV1(new ERC20Transfer[](0), erc721Transfers, erc1155Transfers); } - function mockTransferRC721ToERC1155( + function mockTransferERC721ToERC1155( address addressA, address addressB, uint256 erc721InTokenId,