From 5897aa9541bf18810319e7b705c57652e431bf98 Mon Sep 17 00:00:00 2001 From: Karel Moravec Date: Thu, 24 Oct 2024 22:45:55 +0200 Subject: [PATCH] feat: fix comments --- .../gateway/GatewayMessengerFacet.sol | 2 +- contracts/contracts/lib/LibGateway.sol | 14 +-- contracts/test/helpers/TestUtils.sol | 2 +- contracts/test/integration/L2PlusSubnet.t.sol | 113 ++++++++++-------- contracts/test/unit/CrossMsgHelper.t.sol | 8 +- contracts/test/unit/GenericTokenHelper.t.sol | 8 +- 6 files changed, 83 insertions(+), 64 deletions(-) diff --git a/contracts/contracts/gateway/GatewayMessengerFacet.sol b/contracts/contracts/gateway/GatewayMessengerFacet.sol index 28eb4f17e..2fa1f144f 100644 --- a/contracts/contracts/gateway/GatewayMessengerFacet.sol +++ b/contracts/contracts/gateway/GatewayMessengerFacet.sol @@ -79,7 +79,7 @@ contract GatewayMessengerFacet is GatewayActorModifiers { } // Commit xnet message for dispatch. - bool shouldBurn = LibGateway.commitCrossMessage(committed); + bool shouldBurn = LibGateway.commitValidatedCrossMessage(committed); // Apply side effects, such as burning funds. LibGateway.crossMsgSideEffects({v: committed.value, shouldBurn: shouldBurn}); diff --git a/contracts/contracts/lib/LibGateway.sol b/contracts/contracts/lib/LibGateway.sol index ce22ff80a..062ffaed2 100644 --- a/contracts/contracts/lib/LibGateway.sol +++ b/contracts/contracts/lib/LibGateway.sol @@ -37,7 +37,7 @@ library LibGateway { event NewTopDownMessage(address indexed subnet, IpcEnvelope message, bytes32 indexed id); /// @dev event emitted when there is a new bottom-up message added to the batch. /// @dev there is no need to emit the message itself, as the message is included in batch. - event NewBottomUpMessage(bytes32 indexed id); + event QueuedBottomUpMessage(bytes32 indexed id); /// @dev event emitted when there is a new bottom-up message batch to be signed. event NewBottomUpMsgBatch(uint256 indexed epoch); /// @dev event emmitted when a message is stored in the postbox - to be propagated further. @@ -272,7 +272,7 @@ library LibGateway { batch.blockHeight = epoch; // we need to use push here to initialize the array. batch.msgs.push(crossMessage); - emit NewBottomUpMessage({id: crossMessage.toHash()}); + emit QueuedBottomUpMessage({id: crossMessage.toHash()}); return; } @@ -303,14 +303,14 @@ library LibGateway { // need to push here to avoid a copy from memory to storage batch.msgs.push(crossMessage); - LibGateway.storeBottomUpMsgBatch(newBatch); + LibGateway.storeBottomUpMsgBatch(newBatch); } else { // we append the new message normally, and wait for the batch period // to trigger the cutting of the batch. batch.msgs.push(crossMessage); } - emit NewBottomUpMessage({id: crossMessage.toHash()}); + emit QueuedBottomUpMessage({id: crossMessage.toHash()}); } /// @notice returns the subnet created by a validator @@ -504,7 +504,7 @@ library LibGateway { // commmit the receipt for propagation // slither-disable-next-line unused-return - commitCrossMessage(original.createResultMsg(outcomeType, ret)); + commitValidatedCrossMessage(original.createResultMsg(outcomeType, ret)); } /** @@ -514,7 +514,7 @@ library LibGateway { * @param crossMessage The cross-network message to commit. * @return shouldBurn A Boolean that indicates if the input amount should be burned. */ - function commitCrossMessage(IpcEnvelope memory crossMessage) internal returns (bool shouldBurn) { + function commitValidatedCrossMessage(IpcEnvelope memory crossMessage) internal returns (bool shouldBurn) { GatewayActorStorage storage s = LibGatewayActorStorage.appStorage(); SubnetID memory to = crossMessage.to.subnetId; @@ -626,7 +626,7 @@ library LibGateway { revert("Message not found in postbox"); } - bool shouldBurn = LibGateway.commitCrossMessage(crossMsg); + bool shouldBurn = LibGateway.commitValidatedCrossMessage(crossMsg); // Cache value before deletion to avoid re-entrancy uint256 v = crossMsg.value; diff --git a/contracts/test/helpers/TestUtils.sol b/contracts/test/helpers/TestUtils.sol index 5b52cd439..139d6c0d9 100644 --- a/contracts/test/helpers/TestUtils.sol +++ b/contracts/test/helpers/TestUtils.sol @@ -227,7 +227,7 @@ contract MockIpcContractPayable is IIpcHandler { receive() external payable {} } -contract MockContractFailbackable { +contract MockFallbackContract { // receive() external payable {} fallback() external payable {} } diff --git a/contracts/test/integration/L2PlusSubnet.t.sol b/contracts/test/integration/L2PlusSubnet.t.sol index 18def648b..eb100d64e 100644 --- a/contracts/test/integration/L2PlusSubnet.t.sol +++ b/contracts/test/integration/L2PlusSubnet.t.sol @@ -43,12 +43,12 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { RootSubnetDefinition public rootNetwork; // native subnets - TestSubnetDefinition public nativeSubnet; + TestSubnetDefinition public nativeL2Subnet; TestSubnetDefinition[] public nativeL3Subnets; // token subnets IERC20 public token; - TestSubnetDefinition public tokenSubnet; + TestSubnetDefinition public tokenL2Subnet; TestSubnetDefinition[] public nativeL3SubnetsWithTokenParent; IERC20 public tokenL3; TestSubnetDefinition[] public tokenL3SubnetsWithTokenParent; @@ -65,37 +65,34 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { id: rootNetworkName }); - address[] memory nativeSubnetPath; - nativeSubnet = createNativeSubnet(nativeSubnetPath, rootNetwork.gatewayAddr, rootNetwork.id); + nativeL2Subnet = createNativeSubnet(rootNetwork.gatewayAddr, rootNetwork.id); - nativeL3Subnets.push(createNativeSubnet(nativeSubnet.path, nativeSubnet.gatewayAddr, nativeSubnet.id)); - nativeL3Subnets.push(createNativeSubnet(nativeSubnet.path, nativeSubnet.gatewayAddr, nativeSubnet.id)); + nativeL3Subnets.push(createNativeSubnet(nativeL2Subnet.gatewayAddr, nativeL2Subnet.id)); + nativeL3Subnets.push(createNativeSubnet(nativeL2Subnet.gatewayAddr, nativeL2Subnet.id)); - address[] memory tokenSubnetPath; token = new ERC20PresetFixedSupply("TestToken", "TEST", 1_000_000, address(this)); - tokenSubnet = createTokenSubnet(address(token), tokenSubnetPath, rootNetwork.gatewayAddr, rootNetworkName); + tokenL2Subnet = createTokenSubnet(address(token), rootNetwork.gatewayAddr, rootNetworkName); nativeL3SubnetsWithTokenParent.push( - createNativeSubnet(tokenSubnet.path, tokenSubnet.gatewayAddr, tokenSubnet.id) + createNativeSubnet(tokenL2Subnet.gatewayAddr, tokenL2Subnet.id) ); nativeL3SubnetsWithTokenParent.push( - createNativeSubnet(tokenSubnet.path, tokenSubnet.gatewayAddr, tokenSubnet.id) + createNativeSubnet(tokenL2Subnet.gatewayAddr, tokenL2Subnet.id) ); tokenL3 = new ERC20PresetFixedSupply("TestL3Token", "TEST3", 1_000_000, address(this)); tokenL3SubnetsWithTokenParent.push( - createTokenSubnet(address(tokenL3), tokenSubnet.path, tokenSubnet.gatewayAddr, tokenSubnet.id) + createTokenSubnet(address(tokenL3), tokenL2Subnet.gatewayAddr, tokenL2Subnet.id) ); tokenL3SubnetsWithTokenParent.push( - createTokenSubnet(address(tokenL3), tokenSubnet.path, tokenSubnet.gatewayAddr, tokenSubnet.id) + createTokenSubnet(address(tokenL3), tokenL2Subnet.gatewayAddr, tokenL2Subnet.id) ); printActors(); } function createNativeSubnet( - address[] memory subnetPath, address parentGatewayAddress, SubnetID memory parentNetworkName ) internal returns (TestSubnetDefinition memory) { @@ -103,12 +100,12 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { defaultSubnetActorParamsWith(parentGatewayAddress, parentNetworkName) ); - return createSubnet(subnetPath, subnetActor); + + return createSubnet(parentNetworkName.route, subnetActor); } function createTokenSubnet( address tokenAddress, - address[] memory subnetPath, address parentGatewayAddress, SubnetID memory parentNetworkName ) internal returns (TestSubnetDefinition memory) { @@ -116,7 +113,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { defaultSubnetActorParamsWith(parentGatewayAddress, parentNetworkName, tokenAddress) ); - return createSubnet(subnetPath, subnetActor); + return createSubnet(parentNetworkName.route, subnetActor); } function createSubnet( @@ -151,6 +148,8 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller; address callerAddr; address recipientAddr; + uint256 callerAmount; + uint256 fundAmount; uint256 amount; uint256 expectedAmount; OutcomeType expectedOutcome; @@ -166,7 +165,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: nativeSubnet, + subnet: nativeL2Subnet, subnetL3: nativeL3Subnets[0], caller: caller, callerAddr: address(caller), @@ -174,7 +173,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromChildToParentWithResult(params); @@ -184,7 +185,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: nativeSubnet, + subnet: nativeL2Subnet, subnetL3: nativeL3Subnets[0], caller: caller, callerAddr: address(caller), @@ -192,14 +193,16 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromParentToChildWithResult(params); } function testL2PlusSubnet_Native_SendCrossMessageFromSiblingToSiblingWithOkResult() public { - sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, nativeSubnet, nativeL3Subnets); + sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, nativeL2Subnet, nativeL3Subnets); } // Token supply source subnets @@ -207,7 +210,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: nativeL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -215,7 +218,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromChildToParentWithResult(params); @@ -225,7 +230,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: tokenL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -233,7 +238,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromChildToParentWithResult(params); @@ -243,7 +250,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: nativeL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -251,7 +258,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromParentToChildWithResult(params); @@ -261,7 +270,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: tokenL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -269,18 +278,20 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 3, expectedOutcome: OutcomeType.Ok, - expectedRet: abi.encode(EMPTY_BYTES) + expectedRet: abi.encode(EMPTY_BYTES), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromParentToChildWithResult(params); } function testL2PlusSubnet_Token_SendCrossMessageFromSiblingToSiblingWithOkResult() public { - sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, tokenSubnet, nativeL3SubnetsWithTokenParent); + sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, tokenL2Subnet, nativeL3SubnetsWithTokenParent); } function testL2PlusSubnet_TokenMixed_SendCrossMessageFromSiblingToSiblingWithOkResult() public { - sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, tokenSubnet, tokenL3SubnetsWithTokenParent); + sendCrossMessageFromSiblingToSiblingWithOkResult(rootNetwork, tokenL2Subnet, tokenL3SubnetsWithTokenParent); } // Error scenarios @@ -288,7 +299,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: nativeSubnet, + subnet: nativeL2Subnet, subnetL3: nativeL3Subnets[0], caller: caller, callerAddr: address(caller), @@ -296,7 +307,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 0, expectedOutcome: OutcomeType.ActorErr, - expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector) + expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromChildToParentWithResult(params); @@ -306,7 +319,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: nativeL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -314,7 +327,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 0, expectedOutcome: OutcomeType.ActorErr, - expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector) + expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromChildToParentWithResult(params); @@ -324,7 +339,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: nativeSubnet, + subnet: nativeL2Subnet, subnetL3: nativeL3Subnets[0], caller: caller, callerAddr: address(caller), @@ -332,7 +347,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 0, expectedOutcome: OutcomeType.ActorErr, - expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector) + expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromParentToChildWithResult(params); @@ -342,7 +359,7 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { MockIpcContractResult caller = new MockIpcContractResult(); Params memory params = Params({ root: rootNetwork, - subnet: tokenSubnet, + subnet: tokenL2Subnet, subnetL3: nativeL3SubnetsWithTokenParent[0], caller: caller, callerAddr: address(caller), @@ -350,7 +367,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { amount: 3, expectedAmount: 0, expectedOutcome: OutcomeType.ActorErr, - expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector) + expectedRet: abi.encodeWithSelector(InvalidSubnetActor.selector), + callerAmount: 1 ether, + fundAmount: 100000 }); sendCrossMessageFromParentToChildWithResult(params); @@ -384,11 +403,11 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { // register L3 into L2 subnet registerSubnet(params.subnetL3.subnetActorAddr, params.subnet.gateway); - vm.deal(params.callerAddr, 1 ether); + vm.deal(params.callerAddr, params.callerAmount); vm.prank(params.callerAddr); - fundSubnet(params.root.gateway, params.subnet, params.callerAddr, 100000); - fundSubnet(params.subnet.gateway, params.subnetL3, params.callerAddr, 100000); + fundSubnet(params.root.gateway, params.subnet, params.callerAddr, params.fundAmount); + fundSubnet(params.subnet.gateway, params.subnetL3, params.callerAddr, params.fundAmount); // create the xnet message on the subnet L3 - it's local gateway IpcEnvelope memory crossMessage = TestUtils.newXnetCallMsg( @@ -459,10 +478,10 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { // register L3 into L2 subnet registerSubnet(params.subnetL3.subnetActorAddr, params.subnet.gateway); - vm.deal(params.callerAddr, 1 ether); + vm.deal(params.callerAddr, params.callerAmount); vm.prank(params.callerAddr); - fundSubnet(params.root.gateway, params.subnet, params.callerAddr, 100000); + fundSubnet(params.root.gateway, params.subnet, params.callerAddr, params.fundAmount); IpcEnvelope memory crossMessage = TestUtils.newXnetCallMsg( IPCAddress({subnetId: params.root.id, rawAddress: FvmAddressHelper.from(params.callerAddr)}), @@ -824,9 +843,9 @@ contract L2PlusSubnetTest is Test, IntegrationTestBase { console.log("root actor: %s", rootNetwork.id.getActor()); console.log("--------------------"); - console.log("native L2 subnet name: %s", nativeSubnet.id.toString()); - console.log("native L2 subnet gateway: %s", nativeSubnet.gatewayAddr); - console.log("native L2 subnet actor: %s", (nativeSubnet.subnetActorAddr)); + console.log("native L2 subnet name: %s", nativeL2Subnet.id.toString()); + console.log("native L2 subnet gateway: %s", nativeL2Subnet.gatewayAddr); + console.log("native L2 subnet actor: %s", (nativeL2Subnet.subnetActorAddr)); for (uint256 i; i < nativeL3Subnets.length; i++) { console.log("--------------------"); diff --git a/contracts/test/unit/CrossMsgHelper.t.sol b/contracts/test/unit/CrossMsgHelper.t.sol index 350dcb9fa..6fc368064 100644 --- a/contracts/test/unit/CrossMsgHelper.t.sol +++ b/contracts/test/unit/CrossMsgHelper.t.sol @@ -8,7 +8,7 @@ import "../../contracts/lib/FvmAddressHelper.sol"; import {FvmAddress} from "../../contracts/structs/FvmAddress.sol"; import {Asset} from "../../contracts/structs/Subnet.sol"; import {IpcMsgKind, CallMsg} from "../../contracts/structs/CrossNet.sol"; -import {MockContractFailbackable} from "../helpers/TestUtils.sol"; +import {MockFallbackContract} from "../helpers/TestUtils.sol"; import "@openzeppelin/contracts/utils/Address.sol"; @@ -146,7 +146,7 @@ contract CrossMsgHelperTest is Test { function test_Execute_Works_SendValue() public { address sender = address(this); - address recipient = address(new MockContractFailbackable()); + address recipient = address(new MockFallbackContract()); crossMsg.to.rawAddress = FvmAddressHelper.from(recipient); crossMsg.kind = IpcMsgKind.Call; @@ -166,7 +166,7 @@ contract CrossMsgHelperTest is Test { function test_Execute_Works_FunctionCallWithValue() public { address sender = address(this); - address recipient = address(new MockContractFailbackable()); + address recipient = address(new MockFallbackContract()); crossMsg.to.rawAddress = FvmAddressHelper.from(recipient); crossMsg.kind = IpcMsgKind.Call; @@ -186,7 +186,7 @@ contract CrossMsgHelperTest is Test { function test_Execute_Works_FunctionCallWithoutValue() public { address sender = address(this); - address recipient = address(new MockContractFailbackable()); + address recipient = address(new MockFallbackContract()); crossMsg.kind = IpcMsgKind.Call; crossMsg.to.rawAddress = FvmAddressHelper.from(recipient); diff --git a/contracts/test/unit/GenericTokenHelper.t.sol b/contracts/test/unit/GenericTokenHelper.t.sol index b2383dcf2..280841145 100644 --- a/contracts/test/unit/GenericTokenHelper.t.sol +++ b/contracts/test/unit/GenericTokenHelper.t.sol @@ -9,7 +9,7 @@ import {Asset, AssetKind} from "../../contracts/structs/Subnet.sol"; import {AssetHelper} from "../../contracts/lib/AssetHelper.sol"; import {AssetHelperMock} from "../mocks/AssetHelperMock.sol"; -import {MockContractFailbackable} from "../helpers/TestUtils.sol"; +import {MockFallbackContract} from "../helpers/TestUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; @@ -62,7 +62,7 @@ contract AssetHelperTest is Test { uint256 balance = 1_000_000; uint256 value = 100; AssetHelperMock mock = new AssetHelperMock(); - MockContractFailbackable actor = new MockContractFailbackable(); + MockFallbackContract actor = new MockFallbackContract(); IERC20 token = new ERC20PresetFixedSupply("TestToken", "TEST", balance, address(mock)); @@ -79,7 +79,7 @@ contract AssetHelperTest is Test { function test_call_with_native_zero_balance_ok() public { uint256 value = 0; AssetHelperMock mock = new AssetHelperMock(); - MockContractFailbackable actor = new MockContractFailbackable(); + MockFallbackContract actor = new MockFallbackContract(); Asset memory source = Asset({kind: AssetKind.Native, tokenAddress: address(0)}); @@ -92,7 +92,7 @@ contract AssetHelperTest is Test { function test_call_with_native_ok() public { uint256 value = 10; AssetHelperMock mock = new AssetHelperMock(); - MockContractFailbackable actor = new MockContractFailbackable(); + MockFallbackContract actor = new MockFallbackContract(); vm.deal(address(mock), 1 ether);