contract BitSongBridge is Pausable, Ownable {
    event hasBeenAdded(
        address sender,
        address recipient,
        string btsgBech32,
        uint256 amount,
        address contractAddress
    );

    address public btsgErc20ContractAddress;
    address public bridgeWalletAddress;

    constructor(address _btsgErc20ContractAddress, address _bridgeWalletAddress ) {
        btsgErc20ContractAddress = _btsgErc20ContractAddress;
        bridgeWalletAddress = _bridgeWalletAddress;
    }

    function deposit(
        uint256 amount,
        string memory target
    ) public whenNotPaused {
        ERC20Token token = ERC20Token(btsgErc20ContractAddress);
        require(token.transferFrom(msg.sender, bridgeWalletAddress, amount), "ERC20 token transfer was unsuccessful");
        emit hasBeenAdded(msg.sender, bridgeWalletAddress, target, amount, btsgErc20ContractAddress);
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function pause() public onlyOwner {
        _pause();
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function unpause() public onlyOwner {
        _unpause();
    }
}
function unpause() public onlyOwner {
    _unpause();
}

/**
 * @dev Returns to normal state.
 *
 * Requirements:
 *
 * - The contract must be paused.
 */