// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import {Test} from "forge-std/Test.sol"; import {TezosAdapter} from "../../../contracts/bridge/adapters/non-evm/TezosAdapter.sol"; import {IChainAdapter} from "../../../contracts/bridge/interfaces/IChainAdapter.sol"; contract TezosAdapterTest is Test { TezosAdapter public adapter; address public admin = address(0x1); address public oracle = address(0x2); address public user = address(0x3); function setUp() public { vm.startPrank(admin); adapter = new TezosAdapter(admin); adapter.grantRole(adapter.ORACLE_ROLE(), oracle); vm.stopPrank(); vm.deal(user, 10 ether); } function test_getChainType() public view { assertEq(adapter.getChainType(), "Tezos"); } function test_getChainIdentifier() public view { (uint256 chainId, string memory id) = adapter.getChainIdentifier(); assertEq(chainId, 0); assertEq(id, "Tezos-Mainnet"); } function test_validateDestination_valid() public view { string memory tz1 = "tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb"; assertTrue(adapter.validateDestination(bytes(tz1))); } function test_bridge_nativeAndConfirm() public { bytes memory dest = bytes("tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb"); vm.prank(user); bytes32 requestId = adapter.bridge{value: 1 ether}(address(0), 1 ether, dest, ""); assertEq(uint256(adapter.getBridgeStatus(requestId).status), uint256(IChainAdapter.BridgeStatus.Locked)); vm.prank(oracle); adapter.confirmTransaction(requestId, "opHash123"); assertEq(uint256(adapter.getBridgeStatus(requestId).status), uint256(IChainAdapter.BridgeStatus.Confirmed)); } }