Failed to call token transfer in the scripts

Hi, I've deployed the code above and I'm trying to deploy it with the migration. The following error appears:

2_deploy_contracts.js

var MyToken = artifacts.require("MyToken.sol");

var MyTokenSale = artifacts.require("MyTokenSale.sol");

var MykycContract = artifacts.require("KycContract.sol");

require("dotenv").config({path: "../test/.env"});

console.log(process.env);

module.exports = async function(deployer){

    let addr = await web3.eth.getAccounts(); //variável que pega as contas inserimos ela no contrato MyTokenSale que é referente a endereço wallet

    await deployer.deploy(MyToken);

    await deployer.deploy(MykycContract); //fazendo o deploy do contrato kyc

    await deployer.deploy(MyTokenSale, 1, addr[0], MyToken.address, MykycContract.address); // a ordem é o rate = 1, wallet = addr[0], IERC20 = MyToken.address, endereço do kycContract = MykycContract.address

    let instance = await MyToken.deployed(); //instancia de publicação do contrato

    await instance.transfer(MyTokenSale.address); //instancia de transferencia

}

Error: Invalid number of parameters for "transfer". Got 1 expected 2!
at module.exports (/root/Projetos/Tokenização/migrations/2_deploy_contracts.js:13:20)
at processTicksAndRejections (node:internal/process/task_queues:93:5)
at Migration._deploy (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:75:1)
at Migration._load (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:56:1)
at Migration.run (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/Migration.js:217:1)
at Object.runMigrations (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:150:1)
at Object.runFrom (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:110:1)
at Object.runAll (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:114:1)
at Object.run (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:79:1)
at runMigrations (/usr/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:258:1)
at Object.run (/usr/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:223:1)
at Command.run (/usr/lib/node_modules/truffle/build/webpack:/packages/core/lib/command.js:172:1)

MyToken.sol:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol";
import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";

contract MyToken is ERC20PresetMinterPauser, ERC20Capped {
    constructor () ERC20PresetMinterPauser("MyToken", "TKN") ERC20Capped(1000000 * (10 ** uint256(decimals()))) {
    }
    function decimals() public view virtual override returns(uint8){
        return 9;
    }
      function  _mint(address account, uint256 amount) internal virtual override(ERC20, ERC20Capped){
          super._mint(account, amount);
      }
      function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override(ERC20, ERC20PresetMinterPauser){
          super._beforeTokenTransfer(from, to, amount);
      }
    }```

Hi, welcome! :wave:

I think just like the error message said, you need to pass two parameters when you try to call transfer, one is the recipient address, the other one is the token amount that you want to transfer.