Constant FARCASTER_TEST
Source const FARCASTER_TEST: &str = "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.21;\n\nimport {Test} from \"forge-std/Test.sol\";\nimport {Migration} from \"../src/abstract/Migration.sol\";\n\ncontract MigrationHarness is Migration {\n constructor(uint24 gracePeriod, address migrator, address initialOwner)\n Migration(gracePeriod, migrator, initialOwner)\n {}\n}\n\ncontract FarcasterNativeSymbolicTest is Test {\n function check_migrateOnlyMigrator(\n uint24 gracePeriod,\n address migrator,\n address initialOwner,\n address caller,\n uint40 timestamp\n ) public {\n vm.assume(timestamp != 0);\n\n MigrationHarness migration = new MigrationHarness(gracePeriod, migrator, initialOwner);\n\n vm.warp(timestamp);\n vm.prank(caller);\n (bool success,) = address(migration).call(abi.encodeCall(Migration.migrate, ()));\n\n assert(success == (caller == migrator));\n if (success) {\n assert(migration.isMigrated());\n assert(migration.migratedAt() == timestamp);\n }\n }\n\n function check_setMigratorOnlyOwner(\n uint24 gracePeriod,\n address migrator,\n address initialOwner,\n address caller,\n address nextMigrator\n ) public {\n MigrationHarness migration = new MigrationHarness(gracePeriod, migrator, initialOwner);\n\n vm.prank(caller);\n (bool success,) =\n address(migration).call(abi.encodeCall(Migration.setMigrator, (nextMigrator)));\n\n assert(success == (caller == initialOwner));\n if (success) {\n assert(migration.migrator() == nextMigrator);\n } else {\n assert(migration.migrator() == migrator);\n }\n }\n}\n";